Corso di Laboratorio di Informatica L-A
Esame del 15 Aprile 2002
Compito A1
È dato
un file di testo pioggia.txt
che contiene le statistiche di piovosità relative ad un numero di
città imprecisato, comunque non superiore a 20,
una città
per riga. Più precisamente, ogni riga contiene, nell'ordine:
nome della città (non più di 15 caratteri, senza spazi intermedi)
uno e un solo spazio
codice identificativo della città (numero intero)
uno e un solo spazio
millimetri di pioggia caduti sulla città nel mese di Gennaio 2002
(numero float)
uno e un solo spazio
millimetri di pioggia caduti sulla città nel mese di Febbraio 2002
(numero float)
uno e un solo spazio
millimetri di pioggia caduti sulla città nel mese di Marzo 2002
(numero float)
Si chiede di
scrivere un programma C che, dopo aver definito una struct citta
nel modo appropriato rispetto a quanto specificato sopra:
-
legga i dati di
piovosità dal file pioggia.txt
e li memorizzi in un array di citta
di nome
stat_piov;
[si mostri
a video l'array così costruito]
-
a partire dal
vettore stat_piov,
costruisca una lista ordinata crescente di interi i cui elementi
sono i codici identificativi di quelle città che hanno registrato
per il mese di Gennaio un numero di millimetri di pioggia superiore alla
media aritmetica, nella stessa città, dei mesi di Febbraio e di
Marzo. Si chiami tale lista gennaio_piovoso;
[si visualizzi
la lista gennaio_piovoso]
-
utilizzi una procedura
void
intervallo(lista l, int min, int max),
specificatamente progettata, per stampare a video, in ordine decrescente,
i soli elementi della lista gennaio_piovosoil
cui valore è compreso nell'intervallo
[min,
max],
estremi
inclusi;
[si visualizzino
i risultati dell'invocazione della procedura]
-
FACOLTATIVO. A
partire dal vettore stat_piov,
costruisca una lista ordinata di stringhe i cui elementi
sono i soli nomi delle città il cui codice identificativo appartiene
alla lista gennaio_piovoso.
Si chiami tale lista gennaio_piovoso_stringhe.
[si visualizzi
la lista gennaio_piovoso_stringhe]
E' possibile utilizzare
librerie C (ad esempio per stringhe) e si devono utilizzare le librerie
sulle liste presentate a lezione (list.h,
list.c,
element.h).