Dpto. Ciencias de la Computación Curso 2004-2005 Laboratorio de Fundamentos de la Programación. Elena García Barriocanal EL TIPO ESTRUCTURADO REGISTRO El tipo RECORD • Colección heterogénea de datos compuesta por campos. • Declaración de un tipo de datos registro TYPE ident= RECORD idCampo1[, idCampo2, ....]: tipo; idCampo3[, idCampo4, ....]: tipo; ... END; • Acceso a los campos de un registro: – Notación punto: IdVar.idCampo – Sentencia WITH: WITH idVar DO {acceso a los campos sin utilizar la notación punto}; • Se pueden asignar unos registros a otros siempre que sean del mismo tipo. TYPE Fecha= record Dia, mes, anio: integer; End; Tipo= (perro, gato, loro, hamster); Mascota= record Nombre: string [10]; Clase: tipo; Edad: integer; End; Persona= record Nombre: string [15]; Direc: string [25]; 1 Dpto. Ciencias de la Computación Curso 2004-2005 Laboratorio de Fundamentos de la Programación. Elena García Barriocanal FNacimiento: fecha; Mascotas: ARRAY [1..numMasc] of mascota; End; Plantilla= ARRAY [1..numEmpl] of persona; ……… var p: persona; emp: plantilla; f: fecha; m: mascota;… …… with m do begin nombre:= ‘capitán’; tipo:= perro; edad:= 4; end; with e[5] do begin nombre:= ‘Miguel’ direc:= ‘C/Estrella nº1’ fNacimiento. Dia:= 26; fNacimiento.mes:= 2; fNacimeinto.anio:= 1973; mascotas[1]:= m; end; 2 Dpto. Ciencias de la Computación Curso 2004-2005 Laboratorio de Fundamentos de la Programación. Elena García Barriocanal 3 Registros con campos variantes • Información común⇒ parte fija • Información que varía según un campo discriminante⇒ parte variante ident= RECORD idCampo1[, idCampo2, ....]: tipo; idCampo3[, idCampo4, ....]: tipo; ... case idCampoVar: tipo of opcion1: (idCampo5[,idCampo6]: tipo;…); .... opcionN: (idCampo8[,idCampo9]: tipo;…); end; END;