• Non ci sono risultati.

Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 22 gennaio 2009 Compito A

N/A
N/A
Protected

Academic year: 2021

Condividi "Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 22 gennaio 2009 Compito A"

Copied!
1
0
0

Testo completo

(1)

Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 22 gennaio 2009

Compito A

Esercizio 1 (punti 15) Un file contiene le informazioni riguardanti degli studenti, uno per riga . In dettaglio, ciascuna riga ` e composta da un intero progressivo, la matricola (7 caratteri), il nome, il cognome, la data di nascita ed un eventuale commento.

Le informazioni sono separate tra loro da una virgola ed uno spazio. Si assuma che il nome e il cognome siano formati al massimo da 20 caratteri e possano contenere spazi bianchi (la matricola invece non contiene spazi). Come esempio, si consideri il seguente file.

1, I-29333, Mario, Rossi, 10/12/1982, trasferito da Padova 2, D-34211, Irene, De Neri, 1/1/1982, iscritta al II anno 3, S-23432, Pier Maria, Bianchi, 12/12/1985,

4, I-35211, Giuseppe, Verdi Chiari, 23/1/1989, in attesa di conferma 5, D-22222, Chiara, Blu, 24/6/1988,

Si scriva una funzione C che prenda come parametro il nome di un file siffatto e restitui- sca attraverso un ulteriore parametro il cognome dello studente pi` u giovane. Nell’esempio, la funzione deve scrivere la stringa Verdi Chiari.

Si assumano gi` a disponibili la definizione del tipo struct Data (nel classico formato a tre campi) e la funzione int ComparaDate(struct Data d1, struct Data d2), che restituisce -1 se la data d1 ` e precedente a d2, 0 se le due date sono uguali e 1 se d1 ` e successiva a d2.

Esercizio 2 (punti 15) Si scriva una funzione C che prenda come parametri una matrice quadrata m di interi e la sua dimensione n (con n al massimo 50). La funzione deve scrivere in due vettori v e f (passati come ulteriori parametri) gli elementi distinti della matrice (in v) e la loro rispettiva frequenza (in f). La funzione deve inoltre restituire la dimensione dei vettori v e f. Ad esempio nel caso della seguente matrice di interi:

m

4×4

=

11 11 2 11 11 11 11 7 11 11 11 2

7 7 2 7

la funzione dovrebbe riempire i vettori v ed f come segue: v = (11, 2, 7) e f = (9, 3, 4) e resti- tuire il valore 3. Infatti, gli elementi distinti presenti nella matrice sono 3 e precisamente 11, 2 e 7, ed hanno frequenza 9, 3 e 4, rispettivamente.

Suggerimento: Si scriva e si utilizzi la funzione ausiliaria int PosizioneElemento(int vet[], int dim, int el)

che verifica se l’elemento el ` e gi` a stato inserito nel vettore vet di dimensione dim. La fun-

zione dovr` a restituire la locazione di el nel vettore se questo ` e presente, altrimenti il valore

convenzionale -1.

Riferimenti

Documenti correlati

La funzione deve inoltre restituire il valore 1 nel caso in cui almeno una delle locazioni del file non sia presente nel vettore; deve restituire 2 nel caso in cui si verifichi

Esercizio 1 (punti 15) Un file contiene delle informazioni riguardanti la media dei voti degli esami sostenuti da alcuni studenti, uno per riga.. In dettaglio, ciascuna riga `e

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

Esercizio 1 (punti 15) Un file contiene una sequenza di interi positivi scritti in varie basi, uno

Definire un programma C che legge i dati relativi agli esami di un dato studente e calcola la media dei

La libreria standard (includere stdlib.h) ha una implementazione del QuickSort pensata per ordinare qualunque tipo di dato.. void qsort( void *buf, size_t num,

La libreria standard (includere stdlib.h) ha una implementazione del QuickSort pensata per ordinare qualunque tipo di dato. void qsort( void *buf, size_t num,

 E' una sequenza di elementi detti membri o campi (fields), che occupano in memoria posizioni sequenziali e che possono essere di tipo