Tuplas o Registros

Anuncio
Práctica 8. TIPOS DE DATOS
ESTRUCTURADOS 2
Tuplas o Registros
2 sesiones
OBJETIVOS:
9 Conocer la importancia que tienen los tipos de datos compuestos como las tuplas.
9 Declaras, definir y utilizar los tipos de datos compuestos.
9 Conocer las operaciones posibles a realizar sobre una tupla.
El término registros es un concepto que se maneja continuamente en la vida diaria; y así estamos
oyendo frecuentemente frase como: oficina de registros, registros de personal, registro de empresas,
registro de estudiantes, etc.
Bajo el punto de vista de la programación el concepto de registro es también de gran utilidad; y en
principio lo definiremos (después daremos una definición más correcta) como una colección fija de
información relativa a un solo objeto, donde unas veces nos referimos a la información como un todo, y
otras veces nos referimos por un nombre, a una parte de esa información. Cada una de estas partes o
items elementales del registro de denomina campo.
Así por ejemplo una fecha compuesta de día, mes y año, se puede considerar como un registro
(fecha) compuesto de tres componentes (campos): día, mes y año.
Igualmente, la información siguiente relativa a una persona:
1) nombre
2) apellidos
3) fecha de nacimiento
4) sexo
5) estado
6) número de teléfono
Se puede considerar como un registro de seis componentes o campos.
Es muy importante distinguir muy bien entre los conceptos : tupla (registro) y tabla (array).
8-1
8-2
Fundamentos de la Programación I
La primera diferencia que existe entre ellos es: los campos de un registro pueden tener diferentes
tipos, mientras que los elementos de un vector deben ser todos del mismo tipo. La segunda diferencia
también fundamental es que, los campos de un registros, deben seleccionarse por nombre, mientras que
los elementos de un vector se seleccionan a través de subíndices y así por ejemplo tendrá sentido
referirnos al j-ésimo elemento de un array, mientras que en el caso de un registro no podremos referirno
al j-ésimo campo, por su orden o situación dentro del registro, sino por su nombre.
Como definición más formal de registro tendríamos que es una estructura compuesta por un
número fijo de componentes, llamados campos, donde cada campo viene definido por su tipo y su
identificador: el identificador de campo.
En pseducódigo lo definiremos de la siguiente manera:
tupla
identificador1 : Tipo1;
identificador2 : Tipo2;
identificador3 : Tipo3;
...
identificadorN : TipoN;
ftupla
Definir las estructuras de datos necesarias para almacenar en memoria la
información de 76 alumnos. De cada alumno se almacenarán los siguientes datos:
Ejercicio Resuelto 1.
nombre y apellidos
domicilio
45 caracteres
45 caracteres
asignatura1
nota1
asignatura2
nota2
.
.
.
asignatura50
nota50
3 caracteres
real
3 caracteres
real
.
.
.
3 caracteres
real
tipo
TCodAsig = tabla [1..3] de caracter:
TCadena = tabla [1..45] de caracter;
TAsignatura = tupla
asig : TCodAsig;
nota : real
f tupla
Tficha = tupla
nombre : Tcadena;
domicilio : Tcadena;
notas : tabla [1..50] de TAsignatura
ftupla
TAlumnos = tabla [1..76] de TFicha
ftipo
var
alumnos: TAlumnos
fvar
Ingeniería Informática
Ingeniería Técnica en Informática de Gestión
Ingeniería Técnica en Informática de Sistemas
Tipos de datos Estructurados 2
8-3
Crea una estructura de datos para guardar los siguientes datos:
Ejercicio Resuelto 2.
- nombre
- apellido1
- apellido2
- nombre_padre
- apellido1_padre
- apellido2_padre
- nombre_madre
- apellido1_madre
- apellido2_madre
- edad
-
-
fecha_alta:
- día
- mes
- año
fecha_nacimiento:
- día
- mes
- año
tipo
TCadena = tabla [1..18] de caracter;
TDatosPerson = tupla
nombre : TCadena;
apellido1 : TCadena;
apellido2 : TCadena;
f tupla
TFecha = tupla
dia : entero;
mes : TCadena;
anyo : entero;
ftupla
TInforme = tupla
persona :TDatosPerson;
padre : TDatosPerson;
madre : TDatosPerson;
edad : entero;
fechaAlta : TFecha;
fechaNac : TFecha;
ftupla
ftipo
var
informe: TInforme;
fvar
Ejercicio Propuesto 1.
Artículos
Supuesta la siguiente tabla (artículos) :
Nombre
Código
Precio
balón de reglamento
4788695176
45,00 €
pandereta
2789681325
7,95 €
teatro de madera
8569723486
29,50 €
piano animalitos
5316895824
34,00 €
sendero musical
6486462625
19,95 €
Definid la estructura adecuada para almacenar dichos datos.
Departamento de Ciencia de la Computación e Inteligencia Artificial
8-4
Fundamentos de la Programación I
Escribe un módulo (acción) en pseudocódigo que lea los datos anteriores y los
guarde en la estructura creada en el ejercicio anterior. Posteriormente incorpora dicho módulo
al siguiente algoritmo.
Ejercicio Propuesto 2.
algoritmo : ejercicio_estructura
#definición de los tipos necesarios
#declaración de las variables necesarias
accion leerEstruc(...)
...
faccion
accion escrEstruct(...)
...
faccion
#petición de datos
leerEstruc(...);
#escritura de los datos
escrEstruc(...);
...
falgoritmo.
Podemos definir un polígono definiendo las coordenadas de cada uno de sus
lados. Diseñar la estructura de datos que permita definir un polígono de lado n –con un
máximo de 30 lados- y crear un algoritmo que permita introducir las coordenadas cartesianas
de cada uno de sus lados. Para construir el algoritmo ayúdate de todos los subalgoritmos que
consideres necesarios.
Ejercicio Propuesto 3.
Escribir un algoritmo que construya una tabla de N fechas (N es un dato) con
la ayuda de los siguientes módulos o subalgoritmos:
Ejercicio Propuesto 4.
-
Módulo leer, que lee N y a continuación las N fechas, colocándolas cada una en una tabla de
registros de fechas con tres campos cada uno
-
Módulo ordenar¸ que clasifica la tabla anterior tomando como campo más importante el año,
luego el mes y finalmente el día.
-
Procedimiento listar, que imprime la tabla mencionada, una vez clasificada.
Podríais validar la fecha con los módulos realizados en prácticas anteriores para tal fin.
El Servicio Metereológico Nacional: recibe de cada observatorio un archivo
con información acerca de las temperaturas máxima y mínimas diarias registradas en ellos.
Con ellos crea una tabla de 100 elementos. Cada elemento está compuesto por los siguientes
campos: código del observatorio, fecha del registro (día, mes y año) temperatura máxima y
temperatura mínima. La tabla no está ordenada. A partir de estos datos se desea realizar un
informe en el que aparezcan las temperaturas medias mensuales.
Ejercicio Propuesto 5.
Ingeniería Informática
Ingeniería Técnica en Informática de Gestión
Ingeniería Técnica en Informática de Sistemas
Descargar