LABORATORIO DI INFORMATICA L-A
APPELLO DEL 16/1/2003 - PRIMO TURNO
ESERCIZIO 1
Sono dati due file di testo, denominati STAZIONI.TXT e RILEVAZ.TXT.
Il file STAZIONI.TXT contiene un elenco di stazioni di rilevamento
della temperatura. Il file contiene un massimo di 10 righe e per ogni riga
abbiamo il nome della stazione di lettura. I nomi delle stazioni sono lunghi al
massimo 10 caratteri e non contengono spazi.
Il file RILEVAZ.TXT contiene un elenco di rilevazioni di temperatura
(massimo 50) provenienti dalle varie stazioni di rilevamento.
Per ogni rilevazione abbiamo
- Un numero di stazione (numero intero)
- Un valore di temperatura (numero intero)
Si chiede di scrivere un programma C, denominato meteo,
con le seguenti caratteristiche:
Il programma dovrà essere suddiviso in 3 file.
- funzioni.h: dovrà contenere le definizioni dei tipi e le
dichiarazioni delle funzioni sotto descritte
- funzioni.c: dovrà contenere le definizioni delle funzioni
dichiarate in funzioni.h
- main.c: dovrà contenere solo la funzione main()
Il programma dovrà comprendere:
Tipi di strutture
- stazione che contiene i
dati di una stazione di rilevamento (un nome e un valore intero)
- stazioni che contiene un array di
strutture di tipo stazione e il numero di stazioni effettivamente lette.
- rilevazione che contiene i
dati di una rilevazione di temperatura.
- rilevazioni che contiene un array di
strutture di tipo rilevazioni e il numero di rilevazioni effettivamente lette.
Funzioni e procedure
- funzione denominata leggistaz(): dato il nome
di un file riempie una struttura di tipo stazioni contenente le righe lette dal
file. La funzione restituisce 1 se l'operazione è andata a buon fine,
altrimenti restituisce 0.
- funzione denominata leggiril(): dato il nome
di un file, riempie una struttura di tipo rilevazioni l file.
La funzione restituisce 1 se l'operazione è andata a buon fine, altrimenti
restituisce 0.
- procedura denominata elabora(): sulla base di una
struttura di tipo rilevazioni determina il numero di numero
di rilevazioni per ogni stazione e mette tali valori in
una struttura di tipo stazioni
- funzione denominata scrivi() che scrive in un file di testo,
il cui nome viene passato come parametro, una riga per ogni
stazione di rilevamento. Ogni riga avrà il seguente formato,
- Numero della stazione
- Uno spazio
- Nome della stazione
- Uno spazio
- Numero di rilevazioni per tale stazione
La funzione restituisce 1 se l'operazione è andata a buon fine, altrimenti
restituisce 0.
Il programma, utilizzando le suddette funzioni, dovrà:
- Leggere il file STAZIONI.TXT - usando la funzione leggistaz() ) segnalando a video eventuali problemi
- Leggere il file RILEVAZ.TXT - usando la funzione leggiril() ) segnalando a video eventuali problemi
- Usare la procedura elabora() per determinare il numero di
rilevazioni per ogni stazione
- Scrivere nel file di testo STAT.TXT, usando la funzione scrivi(),
il risultato dell'elaborazione fatta dalla procedura elabora(), segnalando
a video eventuali problemi.