Registros en Técnicas de Programación

14
TEMA: “REGISTROS”

Transcript of Registros en Técnicas de Programación

TEMA:“REGISTROS”

Es una estructura de datos compuesta por campos de diferentes tipos.

DEFINICIÓN:

Es una colección de campos lógicamente relacionados. Los registros pueden ser todos de longitud fija; por ejemplo, los registros de empleados pueden contener el mismo numero de campos, cada uno de la misma longitud para nombre, dirección, feche, etc. También pueden ser de longitud variable.

3

Su sintaxis es:

record declaraciones de campos end

Donde declaraciones de campos consta de una secuencia de lista de identificadores de campos seguida por un símbolo de dos puntos(:) y el tipo.

4

Ejemplo:

Record nombre : packed array [1 . . 20 ] of char; horas : real; salario : real End

type complejo = record real, imaginaria : real; end var z : complejo

5

OPERACIONES DEFINIDAS

Las operaciones definidas para el tipo de registro son:

1. Asignación 2. Selección de un componente del

registro3. Lectura de una archivo de registros4. Estructura de un archivo de registros

6

ASIGNACIÓN

Dos variables registro del mismo tipo de registro se pueden asignar una a otra.

Persona1 : = persona2; {valida} Persona2 : = persona1; {valida}

7

La sentencia with ayuda a procesar campos de una variable de registro, de acuerdo a la siguiente sintaxis:

with Variable_Registro do sentencia

8

La sentencia controlada por with es normalmente una sentencia compuesta.

With Personal do beigin Nombre : = ‘Pepe Mortimer’ Horas : = 5000 ; Salario : = 200000 ; Tasas : = 35 ; end;

La sentencia with ahorra esfuerzo de escritura.

9

REGISTROS VARIANTES

Un tipo de registro variante es aquel que incluye campos adicionales que dependen del valor de otro campo. La estructura de un registro que contiene una parte variante consta de una parte fija que viene en prime lugar, seguida de una parte variante.

10

La parte variante se construye mediante la palabra reservada case. Una estructura de datos que acopla perfectamente a un registro con variante es:

Case IdentificadorEtiqueta : TipoIdentificador of Lista_de_constantes : ( ListaCampos ) ; Lista_de_constantes : ( ListaCampos ) ; … Lista_de_constantes : ( ListaCampos ) ;

11

Así, una estructura típica: Profesor 1. Nombre 2. Altura 3. Sexo 4. Fecha de Nacimiento 5. Estado Si está casado o viudo a). Fecha de matrimonio (año, mes y día) Si está divorciado b). Fecha del divorcio (año, mes y día) c). Primer divorcio (verdadero, falso) Si está soltero no hacer nada

12

Se representa por la sintaxis:Type Cadena = packed array { 1... 20} of char ; Estado = (Casado, Viudo, Divorciado, Soltero) ; Fecha = packed record Anyo : 1900… 2002 ; Mes : (Ene, Feb, Mar, Abr …Dic) ; Dia : 1…31 Natural : 1… MaxInt ebd ; Profesor = record Nombre = record NombrePila, Apellido : Cadena 20 ; end ; Altura : Natural ; Sexo : (Macho, Hembra) ; Nacimiento : Fecha ; case EM : Estado of Casado , Viudo : ( FechaM : Fecha) ; Divorciado : (FechaD : Fecha ; PrimerD : Boolean) ; Soltero : ( ) end ; ( Profesor )

13

UNION LIBRE

Cuando se define un registro sin poner una etiqueta que identifique la parte variante, el formato de los campos variantes se denomina unión libre.

Const LongeNombre = 20 ; LongDireccion = 40 ;Type TipoNombre = packed array {1… LongNombre} of char ; TipoDirec = packed array {1…LongDireccion} of char ; RegPersona = record Nombre : TipoNombre case Boolean of true : (Horas, Salario, Tasas : real ) ; false : (Direccion : TipoDirec) end ; { descripcion de registro }

14