130 Estructuras de datos
1. NM ← “Villa” + “ del ” + “Sur”
2. TOT ← Long (NM)
3. si (DL > “*150#”) entonces ......
fin_si
6.2 Registro (Record o Struct)
Cuando la unidad a procesar es un dato compuesto que está formado por datos de distinto
tipo, la estructura apropiada para contenerlo es el registro. Definimos así:
Un registro es una estructura de datos que puede tomar por valor a un conjunto de distintos o
iguales tipos de datos
Esta estructura es estática, porque el espacio de memoria que se reserva para todos sus com-
ponentes no puede modificarse una vez que se lo haya fijado, y es heterogénea porque sus
componentes pueden ser de diferentes tipos, aunque esto no invalida que puedan ser de igual
tipo.Cada componente o elemento de un registro se llama campo o miembro y se identifica por
un nombre.Los campos de la estructura se corresponden con lugares adyacentes de memoria y
su funcionalidad es la misma que la de una variable. Por lo tanto, trabajaremos con el campo
de un registro de la misma forma que lo haríamos con cualquier variable. Es importante tener
en cuenta, que los campos no están restringidos a datos simples; por el contrario, podrían estar
constituidos por cualquier estructura de datos válida.Ya vimos que del análisis minucioso de la
situación problemática, surgirá el o los datos a tratar (ejemplos presentados en la parte inicial
del capítulo en ¿Por qué utilizar estructuras de datos?. Cuando éstos sean compuestos, habrá
que observar detalladamente sus características para definir la estructura apropiada.
Podemos pensar, por ejemplo, que son datos compuestos que pueden implementarse con un
registro:
un cheque (banco emisor, importe, fecha),
una ficha de empleado (legajo, apellido y nombre, D.N.I., cargo que desempeña)
los datos meteorológicos de un lugar (hora, temperatura, humedad, presión)
la medida de un ángulo expresada en el sistema sexagesimal (grados, minutos, segundos)
un alumno de Informática I (legajo, apellido y nombre, edad, carrera)
una fecha (número del día, nombre del mes, número del año)
una fecha (número del día, número del mes, número del año)
En cambio, NO sería adecuado pensar en implementar con un registro, a los siguientes datos
compuestos:
el personal administrativo de un negocio (son varios empleados)
una comisión de Informática I (son varios alumnos)
las fechas de los feriados de este año (son varias fechas)
los meses del año (son 12 palabras)
los números primos de dos cifras (son varios números enteros, aunque seguramente no
serán más de 90)
Como ya se mencionó, para utilizar un registro habrá que definir un tipo de dato general y luego
reservar lugar de memoria mediante la declaración de una variable de ese tipo especialmente
creado.
6.2 Registro (Record o Struct) 131
6.2.1 Definición de un tipo de dato registro
Definir un tipo de dato registro es establecer la organización de la estructura bajo un nombre
expresamente elegido (Nombre del nuevo tipo).
Se comienza con la denominación de la estructura correspondiente (registro) y a continuación se
describen los campos que la constituyen (identificador y tipo de dato de cada uno) en el orden
que tienen en el conjunto, con lo que queda fijado el tamaño del bloque de memoria que ocupará
la estructura.Notación algorítmica en pseudocódigo:
TIPO
registro Nombre del nuevo tipo
tipo de dato: Nombre 1er.campo
tipo de dato: Nombre 2do.campo
.........................
tipo de dato: Nombre último campo
Con la palabra TIPO se está indicando que lo que sigue, es la definición de un tipo de dato.
Ejemplos:
TIPO
registro dato_alum
caracter(30): m
real: n
lógico: p
registro fecha
entero: dia
entero: mes
entero: anio
registro cheque
caracter(22): bco
real: imp
fecha: fe
caracter(30): ap_nom
TIPO
registro tiempo
real: second
entero: minut
entero: hs
Con las palabras dato_alum, fecha y cheque se ha elegido identificar, en un determinado algorit-
mo, a tres formatos distintos de registro.
Con la palabra tiempo se ha elegido identificar, en un determinado algoritmo, a un formato de
registro.