Esame di Fondamenti di Informatica
(Ing. Gestionale, Logistica e Produzione, Organizzazione) Prova scritta di programmazione (6 luglio 2011)
Realizzare un programma in linguaggio C per gestire un archivio delle regioni e province italiane. Il programma accede ad un file, il cui nome viene passato come primo argomento sulla linea di comando, che contiene l’elenco di alcuni capoluoghi di provincia (uno per riga) affiancati dal nome della regione italiana in cui si trovano. Si supponga che i nomi siano costituiti da sequenze di caratteri prive di spazi (ad esempio l’Emilia Romagna viene rappresentata semplicemente come Emilia_Romagna). I dati sono contenuti nel file senza alcun ordinamento particolare.
Il programma pu`o essere attivato in due modalit`a diverse, in funzione del secondo argomento sulla linea di comando:
• se il secondo argomento sulla linea di comando `e -p (province), allora ci dovr`a essere un terzo argomento corrispondente al nome di una regione: in questo caso dovranno essere stampati tutti i nomi dei capoluoghi di provincia presenti nella regione specificata ed elencati nel file.
• se il secondo argomento sulla linea di comando `e -r (regioni), allora il programma deve stampare il nome di tutte le regioni che compaiono nel file. Le regioni possono essere stampate in qualsiasi ordine, ma non devono essere ripetute.
Esempio. Supponiamo che il file italia.txt contenga i seguenti dati:
Torino Piemonte Milano Lombardia Vercelli Piemonte Brescia Lombardia
Se il programma (denominato citta.exe) venisse invocato come citta italia.txt -p Piemonte
allora esso stamper`a Torino
Vercelli
Se invece venisse invocato come citta italia.txt -r allora esso stamper`a
Piemonte Lombardia
NOTA:il corretto svolgimento della prima funzionalit`a del programma (-p) `e sufficiente al raggiun- gimento della sufficienza.