Registros

El esquema de tupla
- Otra forma de construir un dato estructurado a base de agrupar elementos de información es usando el esquema de tupla o agregado.
- En este esquema, el dato esta formado por una colección de componentes, cada uno de los cuales puede ser de un tipo diferente.
- Tupla: colección de elementos componentes, de diferentes tipos, cada uno de los cuales se identifica por un nombre.
- Una tupla puede verse en forma abstracta como un todo, prescindiendo del detalle de sus componentes. Esta posibilidad simplifica la escritura del programa que lo maneja.
Los tipos registro
- Los esquemas de tupla pueden usarse en programas Modula-2 definiéndolos como estructura del tipo registro.
- Un registro (RECORD) es una estructura de datos formada por una colección de elementos de información llamados campos (FIELDS).
Definición de registro
RECORD nombre: TIPO;
nombre: TIPO;
END
Define un campo o elemento componente. Puede usarse para definir el tipo de registro como un tipo con nombre o descripción del tipo de una variable.
Uso de registros
- Se puede operar de dos formas con los registros; Operar con el dato completo u operar con campos por separados.
- La opción de operar con el dato completo es bastante limitada. La UNICA operación admisible es la de asignación
- El valor de un dato de tipo registro puede asignarse directamente a una variable de su mismo tipo.
- Dos estructuras con los mismos campos no son compatibles si sus definiciones se hacen por separado.
- También es posible pasar como argumento un dato de tipo registro a una función o procedimiento, ya que en la definición de los argumentos de un subprograma sus tipos han de designarse mediante identificadores.
- Las operaciones de tratamiento de estructuras registros consisten normalmente en operar con sus campos por separado.
La forma de hacer referencia a un campo es mediante la notación 'registro.campo' - Cada campo se puede usar como cualquier otro dato del correspondiente tipo, es decir, se pueden usar los valores de los campos en expresiones aritméticas, se puede asignar valor a cada uno de los campos como argumentos en llamadas a subprogramas.
La sentencia WITH
Formato
WITH registro DO
secuencia_de_sentencias
END;
En la secuencia de sentencias se puede hacer referencia a los campos del registro escribiendo solo su nombre.
Las sentencias WITH pueden anidarse. Al hacerlo hay que tener en cuenta que su los registros tienen campos con los mismos nombres, se presenta una situación de ambigüedad.
Estructuras combinadas
Se pueden definir estructuras cuyas componentes son a su vez estructuras, sin limite de complejidad de los esquemas de datos resultantes.
Formas de Combinacion
- Las estructuras ARRAY y RECORD se pueden combinar entre si de la forma que se desee.
- Los campos de un registro pueden ser formación y las componentes de una formación puede ser registros. También se pueden definir registros cuyos campos sean a su vez registros o cualquier otro tipo de dato.
- La combinación es admisible cuando un componente de una estructura es a su vez una estructura de datos.
El esquema unión
A veces es deseable que el tipo de un dato varíe según las circunstancias. Si las posibilidades son finitas podremos decir que el tipo de dato corresponde a un esquema que es la unión de los tipos particulares posibles.
tipo_unión = variante | variante2 | variante3 ...
Podemos aplicar los esquemas de unión a
- Datos que pueden representarse de diferentes maneras
- Programas que operan indistintamente con varias clases de datos
- Datos estructurados con elementos opcionales.
Registros con variantes
Los esquemas de unión pueden utilizarse en Modula-2 definiéndolos como registros con variantes.
Un registro con variante tiene unos campos fijos mas una colección de variantes, cada una de las cuales consiste en un grupo particular de campos.
Para almacenar explícitamente la información de la variante concreta que se esta usando utilizamos un campo fijo discriminante (TAG)
Definición de registros con variantes
RECORD
campos_fijos
CASE discriminante : tipo OF
valor : variante |
valor : variante |
...
ELSE
variante
END;
END;
Uso de registros con variantes
Los registros con variantes se utilizan de la misma manera que los registros sin variantes.
La forma de hacer referencia al campo discriminante o a los campos de las variantes es igual que para los campos fijos.
Resumen de reglas para registro
Definición de registro
Tipo_Registro::= RECORD Secuencia_de_lista_de_campos END
Secuencia_de_lista_de_campos ::= Lista_de_campos {Lista_de_campos}
Lista_de_campos::= [Lista_de_verificadores:Esquema_de_tipo
| parte_variante]
parte_variante::= CASE [identificador :] Identificador_de_tipo OF variante {| variante}
[ELSE secuencia_de_listas_de_campos]
END
variante::= Lista_de_valores: Secuencia_de_listas_de_campos
Referencias a variables o componentes
Variable::= (Identificador_de_variable | identificador_de_campo)
{. Identificador_de_campo| [Lista_de_expresiones]}
Esquemas de datos y esquemas de acciones
- Tupla - secuencia: colección de elementos de tipos diferentes, combinados en un orden fijo
- Unión - selección: Selección de un elemento entre varios posibles, de tipos diferentes. Formación
- Iteración: colección de elementos del mismo tipo.












Live in Blogs
Blog Bellezza
City Guides Blog
Cyfuss
Que Cocino
Solo Libros Blog
Enviar un comentario nuevo