Problem

1/10

Matrices (listas). Introducción

Theory Click to read/hide

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.

Problem

Modifique el programa de tal manera que en la quinta línea se ingrese el valor de la variable N desde el teclado, y en la sexta línea se cree una matriz de tamaño N (los valores de los elementos de la matriz pueden ser cualquiera)