PRÁCTICA Nş 7: 2 sesiones

(del 14 al 25 de Mayo de 2001)

Estructuras de datos lineales. Listas

0. Objetivo

El objetivo de esta práctica es el trabajo con punteros y vectores para la realización de una pequeña base de datos.

1. Planteamiento de la práctica

Un meteorólogo del centro de predicciones de la Comunitat de València nos pide que realicemos un pequeño programa que obtenga una cierta información de unos ‘extensos’ ficheros de datos de lluvias generados de forma automática por diversos observatorios meteorológicos de la comunidad.

El programa debe gestionar los datos de precipitación registrados durante los últimos años en diez observatorios meteorológicos. Los datos están guardados en dos ficheros de texto. El primero (nombres.txt) contiene la información del observatorio con el siguiente formato:

Código Nombre Funcionamiento Propietario

Donde Código es el código asignado al observatorio,
Nombre es el nombre del observatorio,
Funcionamiento es si el observatorio sigue en funcionamiento o no,
Propietario dice quien gestiona el observatorio (ayuntamiento, estado, autonomía...)

Por ejemplo:

4088E Casas_de_Fernando_Alonso SI AYTO

4089 La_Alberca_de_Záncara NO ESTADO

4090 San_Clemente SI AYTO

4096 Munera_I SI AUTONOMIA

El segundo fichero (datos.txt) contiene la información referente a los datos de precipitación. La información de estos datos viene por meses y con el siguiente formato:

Código XUTM YUTM Altitud Código Año Nşmes Dato Nşmes Dato.....

Donde Código es el código asignado al observatorio,
XUTM es la coordenada X respecto al meridiano cero,
YUTM es la coordenada Y respecto del paralelo cero,
Altitud es la altitud del observatorio respecto del nivel del mar,
Año es el año al que se refieren las observaciones,
Nşmes es el mes del año de la observación, y
Dato es la cantidad de lluvia recogida durante el mes, medida en milímetros (los meses de los que no se tiene información, contienen un –1 en el campo Dato.)

En el fichero encontraremos diferentes líneas referidas al mismo observatorio con datos de diferentes años.

Por ejemplo:

4088E 558137.500000 4355110.500000 725 4088E 1981 1 1.0 2 24.3 3 12.3 4 68.1 5 17.3 6 8.7 7 1.0 8 38.8 9 18.8 10 2.2 11 0.0 12 88.1

4088E 558137.500000 4355110.500000 725 4088E 1982 1 30.0 2 42.0 3 47.8 4 42.8 5 20.8 6 37.3 7 11.8 8 8.4 9 9.8 10 145.6 11 74.6 12 19.7

4088E 558137.500000 4355110.500000 725 4088E 1983 1 0.0 2 18.4 3 25.4 4 21.7 5 10.8 6 3.6 7 6.5 8 40.7 9 -0.3 10 0.3 11 94.2 12 51.7

4090 549101.000000 4360834.000000 722 4090 1990 1 20.4 2 -0.3 3 24.9 4 52.3 5 34.7 6 6.7 7 24.0 8 34.1 9 39.4 10 64.7 11 60.3 12 11.4

4096 545027.500000 4321040.500000 930 4096 1981 1 4.3 2 13.9 3 22.3 4 53.9 5 11.4 6 41.3 7 5.0 8 22.2 9 18.8 10 0.0 11 0.0 12 63.6

4096 545027.500000 4321040.500000 930 4096 1990 1 22.3 2 0.7 3 49.1 4 52.5 5 17.9 6 19.4 7 18.6 8 15.2 9 19.5 10 75.7 11 52.5 12 7.3

4096A 545027.500000 4321040.500000 930 4096A 1981 1 10.5 2 16.2 3 21.0 4 73.0 5 11.0 6 51.0 7 0.0 8 19.8 9 14.5 10 0.0 11 0.0 12 48.0

4096A 545027.500000 4321040.500000 930 4096A 1982 1 36.0 2 33.0 3 32.5 4 24.5 5 15.0 6 22.7 7 21.0 8 -0.3 9 9.5 10 115.0 11 71.5 12 21.5

A partir de esta información el programa debe hacer las siguientes operaciones:

3. Entrega de programas

Al inicio de la sesión de prácticas correspondiente a la semana del 28 de mayo al 1 de junio se entregarán al profesor los archivos correspondientes a la implementación de este programa.

Se deja al alumno que piense si es necesaria la estructuración en diferentes módulos o la implementación concreta de alguna clase.