Corso di Laboratorio di Informatica L-A
Esame del 15 Aprile 2002
Compito A3
È 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]
- richieda in
maniera interattiva un numero float soglia
all'utente. A partire dal vettore stat_piov,
si deve costruire una lista non-ordinata di interi i cui elementi
sono i codici identificativi di quelle città che hanno registrato una
varianza fra le piovosità superiore a soglia.
Si definisce la varianza per ogni città come la sommatoria di [(pi-pm)^2],
con i=1..3, dove pi
è la piovosità del giorno i-esimo e pm
la media aritmetica delle tre piovosità. Si chiami la lista realizzata
alta_varianza;
[si visualizzi la lista
alta_varianza]
- utilizzi una procedura
void visualizzaNo(lista
l, char* x), specificatamente progettata, per stampare a
video, i soli elementi della lista alta_varianza
il cui nome di città associato è diverso
da x;
[si visualizzi
il risultato di tale invocazione]
- 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 alta_varianza.
Si chiami tale lista alta_varianza_stringhe.
[si visualizzi la lista alta_varianza_stringhe
ont>]
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).