Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I
Prova scritta del 16 settembre 2015
Esercizio 1 (14 punti)
Un file di testo contiene un numero imprecisato di parole separate soltanto da spazi, tabulazioni o caratteri di “a capo”. Non sono presenti simboli di interpunzione.
Si scriva un programma in linguaggio C che riceva sulla linea di comando il nome di un file di testo nel formato sopra descritto e scriva sul monitor:
1) la parola più lunga
2) la parola che contiene più vocali
3) il numero più lungo (cioè la parola più lunga contenente solo cifre decimali)
A parità di lunghezza, per ciascuno dei punti precedenti si scriva la parola presente per prima nel file.
Esercizio 2 (16 punti)
Si considerino dei file di testo che rappresentano, ciascuno, i correntisti di una certa banca. Ogni file contiene i nominativi (nomi e cognomi), i codici identificativi (stringhe alfanumeriche senza spazi) e il capitale depositato dal titolare del conto corrente. Il formato può essere dedotto dal seguente esempio:
File credit-one.txt:
CREDIT-ONE
Mario, Rossi, ID7466: 127000
Luigi Francesco, Della Torre, ID566: 13490 Paolo, Di Pasquale Neri, ID1990: 2300
File my-fido.txt:
MY-FIDO
Sara, Bianchi, ID339: 4500
Paolo, Di Pasquale Neri, ID1990: 12000 Filippo, La Libera, ID7466: 56600 Francesco, Forti, ID788: 1000
File wells-fargo.txt:
WELLS-FARGO
Luigi Francesco, Della Torre, ID566: 20100 Filippo, La Libera, ID7466: 5000
La prima riga del file contiene il nome della banca.
Si può assumere che il numero totale di correntisti sia minore o uguale a 500.
Come si può notare dall’esempio, alcuni correntisti hanno utilizzato dei prestanomi, quindi in corrispondenza dello stesso codice identificativo possono comparire, in banche diverse, nomi diversi. Scopo del programma è ricavare la lista dei correntisti reali (in base al codice identificativo, a prescindere dal nome utilizzato) e il totale del capitale depositato.
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 intero che rappresenta la lunghezza di tale vettore, e scriva sul monitor l’elenco dei codici identificativi e dei totali dei depositi sui conti correnti.
Relativamente ai tre file di esempio sopra riportati la funzione deve visualizzare il seguente risultato:
ID7466 188600 ID566 33590 ID1990 14300 ID339 4500 ID788 1000