UNIDAD 6: ARREGLO UNIDIMENSIONAL, MULTIDIMENSIONAL Y SU MANEJO

6.1 Definición de arreglo unidimensional:

    Un array (que algunos autores traducen como "arreglo") es una estructura que se utiliza para guardar una serie de elementos, todos los cuales son del mismo tipo (por ejemplo, 20 números reales).

A la hora de definir un array, deberemos indicar el índice inferior y superior (desde dónde y hasta dónde queremos contar), separados por dos puntos (..), así como el tipo de datos de esos elementos individuales. Por ejemplo, para guardar hasta 200 números enteros, usaríamos:

        lista: array [1..200] of integer

Para mostrar en pantalla el segundo elemento de esa lista de números (o de ese vector) se usaría

        write(lista[2]);

6.2 Arreglo multidimensional:

    Cuando se trata de una matriz de 2, 3 o más dimensiones, podemos indicar los rangos de valores aceptables, separados por comas. Por ejemplo, una matriz de bidimensional de tamaño 3x2 que debiera contener números reales sería:

        matriz1: array [1..3, 1..2] of real

y para ver el elemento (3,1) de la matriz haríamos:

        writeLn (matriz1[3,1]);

6.3: Manejo de arreglos:

    Un ejemplo completo, que guarde varios datos en un array y luego muestre uno de ellos podría ser:

        Program Array00;
            var datos: array[1..4] of integer;

        begin
            datos[1] := 20;
            datos[2] := 12;
            datos[3] := 7;
            datos[4] := 35;

            writeLn('El segundo dato es ',dato[2]);
        end.

Es habitual recorrer todo un array usando un bucle "for", de modo que podamos pedir y mostrar los datos de forma repetitiva. Por ejemplo, podríamos pedir al usuario 5 números y luego mostrarlos en orden inverso, así:

        Program Array01; 

        var
            datos: array[1..5] of integer;
            i: integer;

        begin
            for i := 1 to 5 do
                begin
                    write('Deme el dato ',i,': ');
                    readLn(datos[i]);
                end;

            write('Los datos al reves son: ');
            for i := 5 downto 1 do
                write(datos[i], ' ');

            writeLn;
        end.

Cuando se trabaja con arrays multidimensionales, sean matrices (bidimensionales) o de más dimensiones, es más fácil anidar bucles para acceder a cada uno de los datos del arreglo. Ejemplo:

        program ArrayBi;

        var
            datos: array[1..2, 1..3] of integer;
            fila,columna: integer;
        begin
            for fila := 1 to 2 do
                for columna := 1 to 3 do
                begin
                    write('Deme el dato de la fila ',fila,
                    ' y columna ', columna, ': ');
                    readLn(datos[fila, columna]);
                end;

           writeLn('El dato de la fila 1 y columna 2 es ',
                   datos[1,2]);
        end.

Comentarios