Programas de pascal con arreglos

Solo disponible en BuenasTareas
  • Páginas : 14 (3254 palabras )
  • Descarga(s) : 0
  • Publicado : 21 de octubre de 2010
Leer documento completo
Vista previa del texto
http://sistemas.itlp.edu.mx/tutoriales/pascal/u5_5_2_3.html
5.3.3 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 elidentificador 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 camposseparados 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 registropuede 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, lainstrucció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_ingresodel 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:
ProgramRegistro;
{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...
tracking img