Tema 2: Sentencia for para arreglos unidimensionales y bidimensionales
Arreglos:
-El modo de acceder a cada elemento es con el nombre de variable más el índice correspondiente.
-Los elementos de un arreglo no pueden ser leídos o visualizados en una sola instrucción, el modo de hacerlo es con una estructura repetitiva.
Aplicación de sentencia for para arreglos unidimensionales:
Ejemplo de arreglo:
type vector = array [1 .. 7] of integer;
var arreglo: vector;
La siguiente imagen es la representación del arreglo declarado previamente que tiene 7 lugares para guardar números enteros, con un índice que comienza en 1 y termina en 7:
For aplicado para cargar, mostrar y trabajar con el contenido del arreglo:
Si queremos tener acceso al quinto elemento del vector para asignarle un valor se hace de la siguiente manera:
arreglo[5] := 700;
Por supuesto, como el vector fue declarado de números enteros, sólo podrá asignársele un valor entero. De la misma forma, debido a que se utilizaron números para determinar el índice, se accederá colocando un número en los corchetes.
También puede referenciarse al índice por medio de una variable que coincida con el tipo de dato utilizado para el índice. En caso de que el índice sea numérico, podría utilizarse una variable de tipo integer como índice. Esta es la forma en que generalmente se hará referencia a una posición del vector. Por ejemplo, si se deseara llenar el vector utilizando la estructura repetitiva for (porque sabemos la cantidad de veces que va a repetir) con el número 0 en cada una de sus 7 posiciones:
for i := 1 to 7 do
arreglo[i] := 0;
De esta forma podemos realizar las siguientes operaciones:
Ejemplo de carga del arreglo por teclado:
for i := 1 to 7 do
Begin
readln(arreglo[i]) ;
end;
El usuario ingresa elemento por elemento por teclado hasta llenar el arreglo
Ejemplo de mostrar por pantalla el arreglo por completo:
for i := 1 to 7 do
Begin
write(arreglo[i]) ;
end;
Muestra por pantalla todos los elementos del arreglo uno al lado del otro.
Ejemplo de utilización del contenido:
n:=arreglo[1] +arreglo[4];
A la variable n le asigna la suma del contenido de las posiciones 1 y 4 del arreglo.
El siguiente código suma el contenido de todo el arreglo y lo guarda en la variable n.
n:=0;
for i := 1 to 7 do
Begin
n:=n+arreglo[i];
end;
Aplicación de sentencia for para arreglos bidimensionales:
Ejemplo de arreglo:
type matriz = array [1..3, 1..3] of integer;
var arreglo: matriz;
Esta matriz de 3 filas y 3 columnas correspondería a un esquema gráfico como el siguiente:
Un elemento en una matriz se referencia con todos sus índices: arreglo[3,1] corresponde a la tercera fila, primera columna.
Para recorrer una matriz, es necesario utilizar estructuras repetitivas anidadas, ya que por un lado se debe recorrer el índice de las filas y por otro el de las columnas, como muestra el siguiente ejemplo:
for i := 1 to 3 do
begin
for k := 1 to 3 do
arreglo[i,k] := 0;
end;
Lo que hace es recorrer toda la matriz y la rellena con ceros
De esta forma podemos realizar las siguientes operaciones:
Ejemplo de carga del arreglo por teclado:
for i := 1 to 3 do
begin
for k := 1 to 3 do
readln(arreglo[i,k]);
end;
El usuario ingresa elemento por elemento por teclado hasta llenar el arreglo.
Ejemplo de mostrar por pantalla el arreglo por completo:
for i := 1 to 3 do
begin
for k := 1 to 3 do
write(arreglo[i,k]);
writeln;
end;
Muestra por pantalla todos los elementos del arreglo en formato matriz.
Ejemplo de utilización del contenido:
n:=arreglo[1,2] * arreglo[2,1];
A la variable n le asigna la multiplicación del contenido de las posiciones primera fila, segunda columna y segunda fila, primera columna.
Representación:
El siguiente código suma el contenido de todo el arreglo y lo guarda en la variable n.
n:=0;
for i := 1 to 3 do
begin
for k := 1 to 3 do
n:=n+arreglo[i,k]);
writeln;
end;