Almacenamiento de datos
Supongamos que ha desarrollado un juego de computadora llamado "Usuario hostil" en el que los jugadores compiten contra una interfaz de computadora intrincada y hostil. Ahora necesita escribir un programa que rastree las ventas mensuales de este juego durante un período de cinco años. O supongamos que necesita hacer un inventario de los cromos de Hacker Hero.
Muy pronto llegará a la conclusión de que necesita más que simples tipos de datos básicos para almacenar y procesar información.
Matrices (listas). Introducción
Para facilitar el trabajo con una gran cantidad de datos, a un grupo de celdas se le asigna un nombre común. Este grupo de celdas se denomina
matriz
Array – es un grupo de celdas de memoria del mismo tipo, ubicadas una al lado de la otra y que tienen un nombre común. Cada celda del grupo tiene un número único.
Al trabajar con arreglos, debe
aprender a resolver tres tareas:
X asignar memoria del tamaño requerido para una matriz
X escribir datos en la celda deseada
X leer datos de la celda
Matrices en Pascal
Tradicionalmente, Pascal usa matrices estáticas como
var a: matriz [1..10] de enteros;
Los límites de una matriz deben establecerse mediante constantes y no puede cambiar el tamaño de una matriz durante la operación del programa. Pero puede crear un índice no solo de un número entero, sino también, digamos, de un carácter o tipo enumerado. Por ejemplo, para contar la ocurrencia de cada letra, puede usar una matriz
var LettersCount: matriz ['a'..'z'] de enteros;
y trabaja con él al contenido de tu corazón:
Número de Letras['z'] := 1;
Número de letras['d'] := Número de letras['d'] + 1;
Las desventajas de tales arreglos son conocidas: si no se sabe de antemano cuántos elementos se necesitarán usar, entonces se asigna el tamaño máximo de memoria para el arreglo. Como resultado, en la mayoría de los casos "abastecemos para el futuro" y, a veces, esta "reserva" resulta no ser suficiente. Es por eso que estas matrices se denominan estáticas: su tamaño es estático y debe configurarse en la etapa de compilación del programa. Sin embargo, en Pascal existen matrices dinámicas, cuyo tamaño no solo se puede establecer, sino también cambiar en el transcurso del programa. Son estas matrices y las ventajas de usarlas las que se discutirán más adelante.
Crear una matriz
Al crear una matriz, se asigna espacio en la memoria (una cierta cantidad de celdas)
1) Las matrices se pueden creado simplemente listando los elementos:
var a: matriz de enteros;
EstablecerLongitud(a, 3);
a[0] := 1;
a[1] := 2;
a[2] := 3;
2) Las matrices pueden estar compuestas por datos de cualquier tipo: números enteros o reales, cadenas de caracteres
var a: matriz de caracteres;
EstablecerLongitud(a, 3);
a[0] := 'a';
a[1] := 'b';
a[2] := 'c';
3) Una matriz siempre "sabe" tu talla. La función length
se utiliza para determinar el tamaño de una matriz. A menudo, el tamaño de la matriz se almacena en una variable separada para que el programa se pueda cambiar fácilmente para que funcione con un tamaño de matriz diferente. Ejemplo:
N := 10; // en la variable N almacenamos el tamaño del arreglo
EstablecerLongitud(a, N); // establecer matriz y tamaño N
writeln(longitud(a)); //mostrar el tamaño de la matriz
El tamaño de una matriz se puede establecer desde el teclado.