Registros(Record).
Un registro es una estructura que consiste de un n�mero fijo de componentes llamados
campos. Los campos pueden ser de diferentes tipos y deben tener un identificador de
campo.
La definici�n de un tipo registro debe consistir de la palabra reservada record,
seguida de una lista de campos y terminada por el identificador reservado end.
formato:
type
tipo_reg = record
lista id1:tipo 1;
lista id2:tipo 2;
.
.
.
lista idn:tipo n
end;
tipo_reg nombre de la estructura o dato registro
lista id lista de uno o m�s nombres de campos
separados por comas
tipo puede ser cualquier tipo de dato est�ndar
o definido por el usuario
Ejemplo :
Type
registro_empleado = Record
nombre : string[30] ;
profesion : string[20] ;
puesto : string[20] ;
sueldo : real
end;
Un registro puede representarse gr�ficamente en funci�n de sus campos.

El registro como un todo tiene el nombre registro_empleado. Este nuevo tipo que
se acaba de definir puede utilizarse en la secci�n Var, para declarar variables
como por ejemplo :
Var
empleado : registro_empleado ;
Para asignar valores a cada campo del registro empleado, puede procederse de la
siguiente manera :
.......................
.......................
.......................
empleado.nombre := 'MENDEZ ROMERO FEDERIC�';
empleado.profesion := 'INGENIERO CIVIL';
empleado.puesto := 'DIRECTOR';
empleado.sueldo := 5000.00 ;
.......................
.......................
.......................
Para simplificar la notaci�n de los registros, se pueden utilizar instrucciones
With Do.
Por ejemplo, la instrucci�n :
WriteLn(empleado.nombre:35,
empleado.puesto:25,
empleado.sueldo:15:0);
puede escribirse :
With empleado Do
WriteLn(nombre:35,puesto:25,sueldo:15:0);
Asimismo, para leer datos usamos :
With empleado Do
begin
Write('NOMBRE : ');
ReadLn(nombre);
Write('PROFESION : ');
ReadLn(profesion);
Write('PUESTO : ');
ReadLn(puesto);
Write('SUELDO MENSUAL : ');
ReadLn(sueldo)
end;
Obs�rvese el siguiente segmento de programa :
..............................
..............................
..............................
Type
fecha = Record
anio : 1900..1989 ;
mes : 1..12 ;
dia : 1..31
end;
datos = Record
nombre : string[30] ;
sueldo : real ;
fecha_ingreso : fecha
end;
Var
personal : datos ;
...............................
...............................
...............................
La asignaci�n del valor 15 al campo dia del registro personal se hace de la
siguiente manera :
personal.fecha_ingreso.dia := 15 ;
donde :
personal.fecha_ingreso
hace referencia al campo fecha_ingreso del registro personal, mientras que :
dia
se refiere al campo dia del campo fecha_ingreso, que a su vez es un registro
de tipo fecha.
Usando la forma With Do quedar�a :
With personal Do With fecha_ingreso Do
dia := 15 ;
que es equivalente a :
With personal, fecha_ingreso Do
dia := 15 ;
o tambi�n a:
with personal Do
with fecha_ingreso Do
dia:=15;
Ejemplo:
Program Registro;
{EL siguiente programa captura 10 empleados y sus
datos personales en un arreglo con la utilizaci�n de
registros}
Uses Crt;
Const
MaxEmpleados=10;
Type
registro_empleado = Record
nombre : string[30];
profesion : string[20];
puesto : string[20];
sueldo : real
end;
Var
registro : registro_empleado;
empleado :array[1..MaxEmpleados] of registro_empleado;
i,col,ren :byte;
begin
ClrScr;
Write(' Nombre Profesi�n Puesto Sueldo');
col:=1;ren:=2;
for i:=1 to MaxEmpleados do
begin
With registro do
begin
gotoxy(col,ren);
ReadLn(empleado[i].nombre);
gotoxy(col+21,ren);
ReadLn(empleado[i].profesion);
gotoxy(col+40,ren);
ReadLn(empleado[i].puesto);
gotoxy(col+59,ren);
ReadLn(empleado[i].sueldo);
inc(ren);
col:=1;
end
end;
ReadKey
end.
|