OPERACIONES DE LOS ARREGLOS
Asignación Lectura/Escritura Recorrido (acceso secuencial) Actualizar (añadir, borrar, insertar) Ordenación Búsqueda
Declaración
nom _arreglo = arreglo[liminf..limsup] de tipo
donde :
nom_arreglo : nombre válido del arreglo.
liminf..limsup : límites inferior y superior del rango del arreglo.
tipo : tipo de datos de los elementos del arreglo : entero, real, carácter.
NOMBRES= arreglo [1..10] de carácter
Significa que NOMBRES es un arreglo (array) unidimensional de 10 elementos (1 a 10) de tipo carácter.
Asignación
NOMBRES(8) ‘Ana’
Asigna el valor ‘Ana’ al elemento 8 del vector NOMBRES
Lectura/Escritura de Datos
La Lectura/Escritura de datos en un arreglo u operaciones de entrada/salida normalmente se realizan con estructuras repetitivas, aunque puede también hacerse con estructuras selectivas.
leer A Lectura del vector A
escribir A Escritura del vector A
leer V(5) Leer el elemento V(5) del vector V
Acceso Secuencial al Vector (recorrido)
Se puede acceder a los elementos de un vector para introducir datos (escribir) en el o bien para visualizar su contenido (leer). Estas operaciones se realizan utilizando estructuras repetitivas, cuyas variables de control (por ejemplo I) se utilizan como subíndices del vector (por ejemplo, X(I). El incremento del contador del bucle producirá el tratamiento sucesivo de los elementos del vector.
Ejemplo :
Lectura de 15 valores enteros de un vector denominado TOTAL.
TOTAL= array [1..15] de entero
desde i1 hasta 15 hacer
leer TOTAL(i)
fin _desde
Si se cambian los limite inferior y superior, por ejemplo, 5 y 12, el bucle de lectura sería :
desde i 5 hasta 12 hacer
leer TOTAL(i)
fin_desde
La salida o escritura de vectores se representa de un modo similar.
desde i1 hasta 15 hacer
escribir TOTAL(i)
fin_desde
Visualiza todo el vector completo (un elemento en cada línea independiente).
Actualización de un Vector
Puede constar de tres operaciones más elementales :
a) Añadir elementos (añade un nuevo elemento al final del vector)
Un arreglo A se ha dimensionado a 6 elementos, pero solo se han asignado 4 valores a los elementos A(1), A(2), A(3), A(4), se podrán añadir dos elementos más con una simple acción de asignación.
A(5) 15
A(6) 9
b.- Insertar elementos (introduce un elemento en el interior de un vector)
Ejemplo : Se tiene un arreglo NOM de 6 elementos de nombres de personas, en orden alfabético y se desea insertar un nuevo nombre.
{Calcular la posición ocupada por el elemento a insertar} P
{Inicializar contador de inserciones} i n.
mientras i >= P hacer
{transferir el elemento actual hacia abajo, a la posición i+1}
NOM(i+1) NOM(i)
{decrementar contador}
i i-1
fin_mientras
{Insertar el elemento en la posición P}
NOM(P) ‘nuevo elemento’
{Actualizar el contador de elementos del vector}
n n+1
fin
c) Borrar elementos (Elimina elementos de un vector)
Algoritmo de Borrado
Inicio
{se utilizará una variable auxiliar AUX, que contendrá el valor del elemento que se desea borrar}
AUX NOM(i)
desde ij hasta N-1 hacer
{llevar elemento j+1 hacia arriba}
NOM(i) NOM(i+1)
fin_desde
{actualizar contador de elementos}
{ahora tendrá un elemento menos, N-1}
N N-1
Fin
Referencia a un elemento de Arreglo
variable de arreglo [subíndice]
Ejemplo :
x x[3]9
escribir (x[2])
? 9
1 2 3
Ejercicio :
Se desea la lectura y desplegado de 5 nombres. Resuelva el problema por cada uno de los siguientes criterios :
a) Lectura y desplegado alternados.
b) Todas las lecturas, todos los desplegados.
a) variables :
string : nom
entero : x
Inicio
Para x1 hasta 5 hacer
escribir(‘Nombre ? ‘)
leer(nom)
escribir( ‘La persona número’, x, ‘ se llama : ‘,nom)
Fin
Nota : No se utilizaron arreglos porque no se requería de almacenamiento múltiple.
b) variables :
nom : Arreglo[1..5] de string
x : Entero
Inicio
para x 1 hasta 5 hacer
escribir(‘Dame el nombre número’,x,’ ?’)
leer(nom[x])
para x 1 hasta 5 hacer
escribir(‘La persona número ‘, x,’ se llama : ‘,nom[x])
Fin
Ordenación de Arreglos
Existen diversos métodos para ordenar los elementos de un arreglo. El más conocido de ellos (no el mejor) es el Método de la Burbuja.
El método consiste en hacer un recorrido por el arreglo comparando parejas de elementos ; si estos no están en el orden deseado, se procede a intercambiarlos.
Al finalizar el recorrido se verifica la cantidad de intercambios, si esta es 0 se asume que el arreglo está ordenado ; en caso contrario se inicia nuevamente el recorrido.
Las parejas de elementos que se comparan deben ser contiguos (elemento1 y elemento2, elemento2 y elemento3, etc). El número total de comparaciones es n-1 (donde n es la cantidad de elementos).
Ejemplo :
Se requiere la ordenación de una lista con 5 valores enteros previamente introducidos.
Variables :
LISTA : arreglo[1..5] de entero
x, aux : entero
cambio : boleano
Inicio
Para x 1 hasta 5 hacer
escribir(‘Dame el valor’,x,’ :’)
leer( LISTA[x])
repetir
cambio falso
para x 1 hasta 4 hacer
si LISTA[x] > LISTA[x+1] entonces
aux LISTA[x]
LISTA[x] LISTA[x+1]
LISTA[x+1] aux
cambio verdadero
fin_si_entonces
hasta cambio = falso
escribir(‘Lista ordenada’)
para x 1 hasta 5 hacer
escribir(‘Elemento número’,x,’ es’,LISTA[x])
Fin