Unidad 6: Arreglos: Unidimensionales y multidimensionales
Ing. Nahiby Castillo
1 ARREGLOS Introduccin Primero que todo, es importante conocer el concepto de estructura de datos. Una estructura de datos es "una coleccin de datos organizados de un modo particular." Las estructuras de datos pueden ser de dos tipos: estticas y dinmicas. Las estructuras de datos estticas son aquellas a las que se le asigna una cantidad fija de memoria cuando se declara la variable. Las estructuras de datos dinmicas son aquellas cuya ocupacin de memoria puede aumentar o disminuir durante el tiempo de ejecucin. Entre las estructuras de datos estticas podemos encontrar los vectores y los arreglos, tema que estudiaremos a continuacin.
Concepto de Arreglo Un array (se suele traducir como arreglo) es una estructura de datos en la que se almacena una coleccin de datos del mismo tipo, por ejemplo, los salarios de los empleados de una empresa. Un array es una lista de un nmero 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 subndice. Se puede accesar directa o aleatoriamente los elementos del array.
ARRAYS UNIDIMENSIONALES: LOS VECTORES Un array de una dimensin (unidimensional), tambin llamado vector o fila, es un tipo de datos estructurado compuesto de un nmero determinado de elementos, de tamao fijo y elementos homogneos (del mismo tipo). La caracterstica de tamao fijo se refiere a que el tamao del array debe ser conocido en tiempo de compilacin. Por ejemplo, si deseamos conservar las puntuaciones de los 50 estudiantes de un examen de informtica, se necesita reservar cincuenta posiciones de memoria, dar un nombre al arreglo y a cada uno de los 50 estudiantes asignarles una posicin o ndice del arreglo. Unidad 6: Arreglos: Unidimensionales y multidimensionales Ing. Nahiby Castillo 2
Declaracin 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 subndice] of tipo; Nombre_array: Se refiere a un nombre de identificador vlido. Tipo_subndice: 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, Mircoles, Jueves, Viernes, Sabado, Domingo); ConjuntoDias = array Type Salarios = array [A..Z] of real; Unidad 6: Arreglos: Unidimensionales y multidimensionales Ing. Nahiby Castillo 3 (En este caso es de tipo real porque el salario es de ese tipo. El subndice indica que los salarios van de los empleados cuya inicial es A hasta la Z).
Las declaraciones de tipo array no crean ninguna variable especfica de tipo array, sino que proporciona informacin 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 do Repeat Readln(Notas[I]); Begin Read (Notas[I]); Read (Notas [I]); I := I + 1 I := I+1 Until 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 lnea *). Unidad 6: Arreglos: Unidimensionales y multidimensionales Ing. Nahiby Castillo 4 ARRAYS BIDIMENSIONALES: TABLAS O MATRICES Un array bidimensional (tambin 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 dimensin.
Declaracin 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 subndices, 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;
Unidad 6: Arreglos: Unidimensionales y multidimensionales Ing. Nahiby Castillo 5 Ejemplo: Calcular el promedio de cada estudiante de una lista de veinticinco alumnos de una clase de informtica 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 lnea 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.