• Non ci sono risultati.

Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 23 settembre 2013

N/A
N/A
Protected

Academic year: 2021

Condividi "Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Informatica I / Fondamenti di Programmazione Prova scritta del 23 settembre 2013"

Copied!
1
0
0

Testo completo

(1)

Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Informatica I / Fondamenti di Programmazione

Prova scritta del 23 settembre 2013

Esercizio 1 (17 punti)

Il file "rime.dat" contiene un dizionario (lungo al massimo 1000 parole), in cui per ogni parola l'accento è evidenziato dalla lettera maiuscola, mentre le restanti lettere sono scritte in minuscolo. Si veda l’esempio a lato.

Due parole formano una rima se sono identiche le lettere a partire dalla vocale accentata fino al fondo della parola.

Si scriva un programma in linguaggio C che legga dalla riga di comando un elenco di parole (scritte nello stesso formato del dizionario) e stampi, per ciascuna, le parole contenute nel dizionaro che fanno rima con essa. È richiesto che il dizionario venga caricato in memoria facendo uso di un vettore di strutture in cui siano memorizzate le parole e, per ciascuna, l'indice della lettera dove cade l'accento. Il formato di stampa deve essere quello che si deduce dall'esempio riportato a sinistra. Se nessuna parola del dizionario fa rima, l'elenco sarà vuoto.

Esercizio 2 (13 punti)

Un file contiene le informazioni sulla rosa dei giocatori di una squadra di calcio (uno per riga). Le informazioni presenti sono:

numero di maglia, nome (inteso come cognome e iniziali), ruolo (uno tra: P, D, C e A), luogo di nascita, data di nascita, presenze e numero di gol fatti. I campi sono separati da una virgola seguita da uno o più spazi. Si noti che nome e città di nascita possono contenere spazi.

Come esempio, si consideri il file riportato a lato.

Si scriva una funzione che riceva come parametri il nome di un file siffatto e una data g. La funzione deve restituire (attraverso un terzo parametro) il nome del difensore (ruolo D) che ha segnato più gol che sia nato dopo la data g.

Se nessun difensore nel file nato dopo la data g ha segnato almeno un gol, allora il terzo parametro dovrà assumere il valore "Nessuno". Nel file di esempio, se la data passata alla funzione è 20/11/1985 allora la funzione dovrà restituire "HEURTAUX T", se invece la data è 20/02/1991 la funzione dovrà restituire "Nessuno". Si assumano già disponibili la definizione del tipo struct Data (nel classico formato a tre campi interi) e la funzione int ComparaDate(struct Data d1, struct Data d2), che restituisce -1 se la data d1 è precedente a d2, 0 se le due date sono uguali e 1 se d1 è successiva a d2.

Angelo andAi arcAngelo aspEtto aspettAi cercherO rispEtto strEtto tornAi tornerO

>rime dispEtto anEllo portAi fuggirO

rime per 'dispEtto':

aspEtto rispEtto strEtto

rime per 'anEllo':

rime per 'portAi':

andAi aspettAi tornAi

rime per 'fuggirO':

cercherO tornerO

30, KELAVA I, P, Zagabria, 20/02/1988, 3, 0

5, DANILO L, D, Sao Bernardo do Campo, 10/05/1984, 3, 0 4, NALDO E G P, D, Santo Andre, 25/08/1988, 3, 0

7, BADU E A, C, Bekerum, 02/12/1990, 3, 1 21, LAZZARI A, C, Bergamo, 03/12/1984, 3, 0

70, MAICOSUEL R M, C, Cosmopolis, 16/06/1986, 3, 0 10, DI NATALE A, A, Napoli, 13/02/1977, 3, 1 9, MURIEL L F, A, Santo Tomas, 18/03/1991, 3, 2 8, BASTA D, D, Belgrado, 18/08/1984, 2, 0 11, DOMIZZI M, D, Roma, 28/06/1980, 2, 0

34, GABRIEL SILVA M, D, Piracicaba, 13/05/1991, 2, 0 3, ALLAN M L, C, Rio de Janeiro, 08/01/1991, 2, 0

37, PEREYRA R M, C, San Miguel de Tucuman, 07/01/1991, 2, 0 6, BUBNJIC I, D, Spalato, 17/07/1992, 1, 0

75, HEURTAUX T, D, Lisieux, 03/07/1988, 1, 1 66, PINZI G, C, Roma, 11/03/1981, 1, 0

94, ZIELINSKI P, C, Zabkowice Slaskie, 20/05/1994, 1, 0 99, BENUSSI F, P, Mestre (VE), 15/10/1981, 0, 0

1, BRKIC Z, P, Novi Sad, 09/07/1986, 0, 0

Riferimenti

Documenti correlati

Si scriva una funzione in linguaggio C che riceva come argomenti un vettore di stringhe, contenenti ciascuna il nome di un file del tipo sopra descritto, e un

Si scriva una funzione in linguaggio C che riceva come argomenti il puntatore a un file di testo nel formato sopra descritto (il file è quindi già stato aperto dalla funzione

Si scriva un programma in linguaggio C che riceva sulla riga di comando il nome di un file di dizionario nel formato dell’esempio sopra riportato e il nome di un file

Al termine dell’esecuzione delle operazioni specificate nel file di ingresso il programma dovrà stampare i valori contenuti in tutte e sole le celle di memoria che

Si scriva un programma in linguaggio C che riceva sulla riga di comando il nome di due file come quelli sopra descritti e stampi il numero delle repliche

Poiché gli identificatori (numeri) delle tessere sono univoci e nella griglia è presente una sola posizione vuota, ogni mossa può semplicemente essere indicata

Per fare questo, si scriva un programma in linguaggio C che riceva sulla riga di comando il nome di un file come sopra descritto e stampi l’elenco dei

Successivamente, per ogni cifra del tentativo non ancora utilizzata si cerca lo stesso valore tra le cifre non ancora utilizzate del numero segreto e, se lo si trova,