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:

  1. legga i dati di piovosità dal file pioggia.txt e li memorizzi in un array di citta di nome stat_piov;

  2. [si mostri a video l'array così costruito]
  3. 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;

  4. [si visualizzi la lista gennaio_piovoso]
  5. 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;

  6. [si visualizzino i risultati dell'invocazione della procedura]
  7. 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.

  8. [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).