U nidad 6: A rreglos: U nidimensionales y m ultidim ensionales
ARREGLOS Introducción Primero que todo, es importante conocer el concepto de estructura de datos. Una estructura de datos es "una colección de datos organizados de un modo particular." Las estructuras de datos pueden ser de dos tipos: estáticas y dinámicas. Las estructuras de datos estáticas son aquellas a las que se le asigna una cantidad fija de memoria cuando se declara la variable. Las estructuras de datos dinámicas son aquellas cuya ocupación de memoria puede aumentar o disminuir durante el tiempo de ejecución. Entre las estructuras de datos estáticas podemos encontrar los vectores y los arreglos, tema que estudiaremos a continuación.
Concepto de Arreglo Un array (se suele traducir como arreglo) es una estructura de datos en la que se almacena una colección de datos del mismo tipo, por ejemplo, los salarios de los empleados de una empresa. Un array es una lista de un número determinado de elementos del mismo tipo. Se caracteriza por: • Almacenar los elementos del array en posiciones de memoria continua. • Tener un único nombre de variable (por ejemplo salarios) que represente a todos los elementos. Éstos a su vez se diferencian por un índice o subíndice. • Se puede accesar directa o aleatoriamente los elementos del array. ARRAYS UNIDIMENSIONALES: LOS VECTORES Un array de una dimensión (unidimensional), también llamado vector o fila, es un tipo de datos estructurado compuesto de un número determinado de elementos, de tamaño fijo y elementos homogéneos (del mismo tipo). La característica de tamaño fijo se refiere a que el tamaño del array debe ser conocido en tiempo de compilación. Por ejemplo, si deseamos conservar las puntuaciones de los 50 estudiantes de un examen de informática, se necesita reservar cincuenta posiciones de memoria, dar un nombre al arreglo y a cada uno de los 50 estudiantes asignarles una posición o índice del arreglo.
Ing. N ahiby Castillo
1
U nidad 6: A rreglos: U nidimensionales y m ultidim ensionales
Declaración de un array o vector Siempre se deben declarar luego de las constantes (si existen). Un array o vector se declara por medio del tipo de array. La sintaxis es la siguiente: Type Nombre_array = array [rango del subíndice] of tipo; Nombre_array: Se refiere a un nombre de identificador válido. Tipo_subíndice: Puede ser boolean, char o un rango de tipo enumerado. Tipo: Se refiere al tipo de los elementos del vector. Todos los elementos deben ser del mismo tipo.
Ejemplos: Type X = array [1..8] of real; Type Luces = (Rojo, Verde, Ámbar); Type DiasDeSemana=(Lunes, Martes, Miércoles, Jueves, Viernes, Sabado, Domingo); ConjuntoDias = array Type Salarios = array [A..Z] of real;
Ing. N ahiby Castillo
2
U nidad 6: A rreglos: U nidimensionales y m ultidim ensionales
(En este caso es de tipo real porque el salario es de ese tipo. El subíndice indica que los salarios van de los empleados cuya inicial es A hasta la Z).
Las declaraciones de tipo array no crean ninguna variable específica de tipo array, sino que proporciona información del array como un todo.
Para declarar una variable tipo array, se utiliza la siguiente sintaxis: Type Valores = array [1..10] of real; Var Precios: Valores;
Primeramente se crea el tipo del array y luego se declara la o las variables referenciadas al array.
Lectura y escritura de un vector Lectura Para leer un vector se debe hacer elemento a elemento y se requiere de alguna estructura repetitiva, ya sea un while, repeat o for. Ejemplos: I := 1;
I := 1;
For I:= 1 to n do
While I 100
End;
Escritura Para visualizar un vector, igualmente, es necesario situarlo dentro de una estructura repetitiva. For I := 1 to Numero do Writeln (Notas [I]:3); Writeln; (* Evita que todas las salidas del vector aparezca en la misma línea *). Ing. N ahiby Castillo
3
U nidad 6: A rreglos: U nidimensionales y m ultidim ensionales
ARRAYS BIDIMENSIONALES: TABLAS O MATRICES Un array bidimensional (también llamado tabla o matriz) es un array con dos índices. Al igual que los vectores deben ser ordinales. Se declaran de igual manera que los arrays de una dimensión.
Declaración de un array bidimensional Al igual que en los arrays unidimensionales o vectores, se crean con declaraciones type y var y deben ser de tipo ordinales o subrango. Se deben indicar: • El nombre del array • Tipo del array • Rango permitido Ejemplo: Type Tabla = array [1..25,1..4] of real; Var Grados : Tabla;
Para localizar o almacenar un valor en el array se deben especificar dos posiciones o subíndices, uno para la fila y otro para la columna.
Escritura de una matriz Para escribir un vector, se debe hacer referencia tanto a la fila como a la columna. Así: For fila := 1 to 3 do Begin For Columna := 1 to 4 do Write (A[Fila, Columna]:4); End;
Ing. N ahiby Castillo
4
U nidad 6: A rreglos: U nidimensionales y m ultidim ensionales
Ejemplo: Calcular el promedio de cada estudiante de una lista de veinticinco alumnos de una clase de informática con notas en cuatro asignaturas. Program Promedio; Var Notas: Array [1..25,1..4] of real; I,J: Integer; Suma,Prom: Real; Begin For I := 1 to 25 do Begin Write (`Notas del estudiante: ´,I:1); Writeln (`En una misma línea digite todas las notas´); Suma := 0; For J := 1 to 4 do Begin Read (Notas[I,J]); Suma := Suma + Notas[I,J] End; Readln; Prom := Suma/4; Writeln (`La nota promedio del estudiante `,I:1,´ es `,Prom:1:1) End End.
Ing. N ahiby Castillo
5