Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 26 gennaio 2010
Esercizio 1 (punti 16) Un file contiene informazioni su comune e data di nascita su un insieme di persone¿ le persone sono una per riga e numerate in ordine crescente. Le informazioni sono scritte nel formato che si evince dal seguente esempio.
1. Mario, Rossi; 13/2/1980 Aviano
2. Giuseppe, De Rossi; 12/4/1987 Chiopris-Viscone 3. Giulio Maria, De Verdi; 12/12/1986 Codroipo
4. Francesca, Rossi Gialli; 1/11/1991 Fogliano_Redipuglia 5. Giovanna, Neri; 21/3/1988 Camino_al_Tagliamento
Si noti che nome e cognome (massimo 20 caratteri ciascuno) possono contenere spazi bianchi, mentre il nome del comune (massimo 30 caratteri) non li pu`o contenere.
Si consideri inoltre un vettore, del tipo struct Locazione definito come segue, che determina la provincia di appartenenza di ciascun comune. Come esempio si consideri il vettore a destra.
struct Locazione {
char comune[31];
char provincia[3];
};
comune provincia
Aquileia UD
Aviano PN
Azzano Decimo PN
Camino al Tagliamento UD Capriva del Friuli GO Chiopris-Viscone UD
Codroipo UD
Fogliano Redipuglia GO
Grado GO
Si scriva una funzione C che riceva come parametri il nome di un file di persone nel formato illu- strato, un vettore di Struct Locazione e la sua dimensione, e una stringa contenente una provincia.
La funzione deve stampare sul video nome, cognome e numero tra parentesi delle persone che sono nate in un comune della provincia passata come parametro.
Ad esempio, se la provincia passata come parametro `e "UD", il vettore e il file sono quelli precedenti, allora la funzione deve stampare i seguenti nomi
Giuseppe De Rossi (2) Giulio Maria De Verdi (3) Giovanna Neri (5)
Esercizio 2 (punti 14) Si considerino le seguenti definizioni di tipo che rappresentano ripsettivamente un punto e un cerchio nel piano cartesiano.
struct Punto struct Cerchio
{ {
float x; struct Punto centro;
float y; float raggio;
}; };
Si scriva una funzione C che prenda come parametri un punto p nel piano e un vettore di cerchi (e la sua dimensione) e restituisca il punto che rappresenta il centro del pi`u piccolo cerchio del vettore che contiene il punto p. Nel caso che nessun cerchio appartenente al vettore contenga p la funzione deve restituire il punto (0.0, 0.0), cio`e l’origine degli assi.