148 Estructuras de datos
Se usarán los siguientes identificadores de variables:
MES: número de mes. Se elige el valor 0 como condición de fin
IM: importe del depósito
DEP: arreglo donde se acumulan los importes de cada mes
L y Z: para controlar la repetición fija
Operaciones con arreglos
RECORRIDO o ACCESO SECUENCIAL:
Consiste en pasar por los sucesivos elementos del arreglo en forma ordenada hasta que no existan
más posiciones disponibles: AR(1), AR(2), AR(3), ...
Esta operación puede realizarse con distintas finalidades:
- para asignarle algún valor a cada elemento
Ejemplos:
AR(2) ← “juan”
leer (AR(2)
TOR(7) ← TOR(7)* 32.5 + EQ
- para usar el valor contenido en cada elemento
Ejemplos:
escribir ZE(12)
M ← TOR(3)
A continuación se presentan fragmentos de algoritmos que implementa un recorrido sobre
un arreglo en memoria como así también su representación (en los gráficos el sentido del recor-
rido se muestra mediante una flecha →):Evidentemente para hacer el recorrido del arreglo lo
que tiene que ir cambiando es la referencia de la posición, es decir el valor del índice. La forma
como se va modificando la referencia origina distintos recorridos del arreglo.
Arreglo unidimensional: sólo es posible un recorrido lineal.
Suponiendo declarado un arreglo de 6 enteros:
Recorrido completo (desde el 1er. al último elemento):
6.3 Arreglo (Array) 149
Usando una repetición fija:
Usando una repetición condicionada
Repetir Para ind ← 1, 6, 1 n ← 1
leer (AR(ind)) Repetir Mientras (n < 6)
fin_para AR(n) ← 3
n ← n+1
El valor del índice lo maneja la variable Fin_mientras
de control de la repetición fija (ind).
En el caso de la repetición condicionada, el valor del índice lo maneja una variable especialmente
definida, cuyo valor condiciona la repetición (n).
Recorrido parcial, a través de algunas posiciones:
1) Posiciones pares, desde el último al primero
Repetir Para L ← 6, 1, -2
Z(L) ← 0
Fin_para
2) Posiciones pares, desde el primero al último
I ← 2I ← 0
Repetir Mientras (I < = 6) Repetir Mientras (I < 6)
Escribir (AR(I) I ← I+2
I ← I + 2 Escribir (AR(I)
Fin_mientras Fin_mientras
3) Posiciones adyacentes, desde la 2da. en adelante para desplazar los valores contenidos
(los dos últimos elementos quedan con igual valor)
Repetir Para M ← 2, 6
AR(M - 1) ← AR(M)
Fin_para
Arreglo bidimensional: es posible recorrerlo en dos sentidos.
- Por filas: cada elemento referenciado pertenece a una misma fila, por lo tanto para recorrerla
deberá ir cambiando la referencia a la columna.
- Por columna: cada elemento referenciado pertenece a una misma columna, por lo tanto para