Fondamenti II (INF)
Sistemi Informativi I(TLC)
Prova di programmazione in C del 28.1.1998
Esercizio n.1
Si scriva in linguaggio C un programma in grado di fornire ricerche di costo logaritmico ad una base dati,
secondo due chiavi di accesso.
I dati sono contenuti in un file testo, che riporta informazioni relative ad un insieme di persone, per
ognuna delle quali sono riportate, su 3 righe successive:



Cognome e nome
data di nascita (formato: gg/mm/aa)
Numero di matricola (5 caratteri)
Il programma, dopo aver acquisito i dati dal file (di cui non si conosce la dimensione), fornisca ricerche di
costo logaritmico secondo due possibili criteri:
 sono dati cognome.e nome.
 e’ dato il numero di matricola.
Esercizio n.2
Sono dati due insiemi di movimenti di cassa, rispettivamente acquisti e vendite, di cui sono riportati, su
un file, i relativi importi. Il file contiene un insieme di interi compresi tra -1000 e +1000 (separati da spazi
o fine riga). Gli interi positivi sono relativi a vendita, i negativi ad acquisti. E’ noto che gli interi non sono
in unmero superiore a 100.
Si scriva un programma in grado di trovare una sequenza ottima di acquisti e vendite. Si considera ottima
la sequenza che, partendo con un importo in cassa pari a C0, consente di minimizzare lo scarto quadratico
medio dell’importo in cassa dopo ogni movimento, rispetto a C0. Sia Ci l’importo in cassa dopo l’i-esimo
movimento della sequenza ottima, e sia N il numero totale di movimenti. Si desidera minimizzare la
sommatoria
S = i=1,N((Ci-C0)2)
Si noti che lo scarto quadratico medio è dato da S/N. Essendo questo costante minimizzare S equivale a
minimizzare lo scarto.
N.B.
L'efficienza della soluzione proposta in termini di velocita' e occupazione di memoria sara' oggetto di valutazione.
E' consentito utilizzare chiamate a funzioni standard di ordinamento per vettori, inserzione/estrazione relative a FIFO, LIFO,
liste ed altre strutture dati, considerate come esterne. Di queste e' richiesto il prototipo, la conoscenza dei tipi di dato usati
come parametri, ed una breve spiegazione della funzione realizzata (es. un commento in "C"). Tali funzioni dovranno essere
incluse nella versione del programma sottoposta a verifica