Estructurando la información en Pascal (arrays, registros)

En Pascal hay más formas de manejar los datos que simplemente almacenarlos en variables o establecer unas constantes.
Hay además dos tipos de dato muy importantes que son los arrays y los registros.
Un array (tambien se puede llamar vector o matriz) es una porción de memoria que almacenará un número determinado de datos de un mismo tipo.
type
  tNombre = string (30);
var
  Alumnos: array [1..100] of tNombre;

En este ejemplo, tendremos un grupo de 100 datos de tipo tNombre almacenados de forma consecutiva y al que podemos acceder de forma aleatoria. Por ejemplo, podemos escribir el nombre del alumno que se ha guardado en la posicion 20:
writeln (Alumnos[20]);
Puedes pensar en un array como si se tratase de una lista de un tamaño determinado llena de elementos de un solo tipo.
La otra estructura son los registros. Se establecen con la palabra reservada RECORD. Supongamos la siguiente colección de tipos:
type
  tNombre = string (30);
  tEdad = integer;
  tTelefono = integer;

Podemos definir una variable registro de esta forma:
var registro: RECORD
   nombre: tNombre;
   edad: tEdad;
   telefono: tTelefono;
  end;

Dado que para entrar a los campos de un registro hay que indicar la variable que lo contiene, entaríamos al campo nombre mediante “registro.nombre”, y podríamos hacer asignaciones como la siguiente:
registro.nombre := 'pepito grillo';
Obviamente podemos crear arrays y tipos no solo como variables, sino definir tipos arrays y registros, e incluso combinarlos; Por ejemplo:

type
  tNombre = string (30);
  tEdad = integer;
  tTelefono = integer;

  tRegistroAlumno = RECORD
   nombre: tNombre;
   edad: tEdad;
   telefono: tTelefono;
  end;

  tArrayAlumnos = array [1..100] of tRegistroAlumno;

Y con crear una variable de tipo tArrayAlumnos…:
var lista: tArrayAlumnos;
Tendríamos ya creada una lista, y si queremos grabar el alumno Pepito Grillo en la posicion 3, usaríamos una sentencia como esta:
lista[3].nombre := 'pepito grillo';
Es evidente como hacer en el resto de casos.
Hemos soslayado ya la idea de como construir tambien una lista estática de N elementos de cualquier tipo: usando un array podemos hacer una lista de un tipo de elementos, pero ese tipo puede ser un registro que almacene diferentes campos. Tambien dejo un codigo fuente de un programa de ejemplo:
array_record.pas.tar.gz

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s