Corso di Laboratorio di Informatica L-A
Esame del 15 Aprile 2002
Compito A4
È 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:
-
chieda in maniera
interattiva all'utente di inserire un numero float soglia.
Il programma deve leggere i dati di piovosità dal file pioggia.txt
e inserirli in un array di citta
di nome
media_alta,
se e solo se la media aritmetica della piovosità della città
nei tre mesi è maggiore di soglia;
[si mostri
a video l'array così costruito]
-
a partire dal
vettore media_alta,
costruisca una lista ordinata di interi i cui elementi sono
i codici identificativi di tutte le città incluse nel vettore. Si
chiami tale lista alta_piov;
[si visualizzi
la lista alta_piov]
-
utilizzi una procedura
void
spezza(lista alta_piov, lista newL1, lista newL2, int x),
specificatamente progettata, che dato il numero intero x va a creare due
nuove liste newL1
e
newL2, la
prima che contiene tutti gli elementi di alta_piov
minori o uguali a x, la seconda che
contiene tutti gli elementi di alta_piov
strettamente maggiori
di x; [si
visualizzino le liste newL1
e newL2]
-
FACOLTATIVO. A
partire dal vettore media_alta,
costruisca una lista non-ordinata di stringhe i cui elementi
sono i nomi delle città che hanno avuto nel mese di Gennaio piovosità
superiore a soglia.
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).