Diploma Universitario in Ingegneria Elettronica
Diploma Universitario in Ingegneria Informatica
Fondamenti di Informatica I e II
Prova d'esame del 20 settembre 1999
Domande per chi deve sostenere la prova di Fondamenti I:
1. Trattare l'argomento relativo ai codici ridondanti; descrivere il codice di parità e il codice ciclico
2. In quali circostanze una variabile locale a una funzione può essere definita static? Quale vantaggio offre questa definizione?
3. Che cosa si intende per ambito o scope di una variabile all'interno di un programma?
4. Che cos'è la ricorsione? Quali vantaggi presenta?
Domande per chi deve sostenere la prova di Fondamenti II:
1 Si definisca il concetto di grafo.
2 Si descrivano almeno due possibili metodi di rappresentazione di un grafo, se ne confrontino vantaggi e svantaggi.
3 Facendo riferimento ad una delle due rappresentazioni prescelte si analizzino i metodi di ricerca in profondità e in ampiezza.
Esercizio di programmazione da svolgere al computer per Fondamenti I e II:
Il file "giacenze.dat" contiene le giacenze di magazzino dei prodotti di un'azienda. Ogni riga del file comprende due campi separati da punto e virgola:
a) codice del prodotto (intero)
b) giacenza (intero)
Scrivere un programma in linguaggio C che legga il contenuto del file e lo memorizzi in un'opportuna struttura di dati. Il programma deve quindi leggere il contenuto di un secondo file di nome "ordini.dat", le cui righe, costituite da due campi separati tramite punto e virgole:
a) codice prodotto (intero)
b) quantità ordinata (intero)
rappresentano ordini di prodotti dell'azienda. Per ogni riga di ordine, occorre aggiornare la giacenza del corrispondente prodotto; al termine si devono memorizzare le nuove giacenze su disco, sovrascrivendo il file originario "giacenze.dat", e visualizzare il codice dei prodotti la cui giacenza ha valore nullo (si suppone che gli ordini siano tali per cui le giacenze finali siano positive o al più nulle).
Il programma deve essere adeguatamente commentato; le prime righe devono contenere i dati anagrafici del candidato, ben evidenziati .
Al termine della prova salvare il programma nel direttorio radice dell'unita' disco F: ; i primi 8 caratteri del nome del candidato rappresenteranno il nome del programma (estensione .C).
Per chi deve sostenere la prova di Fondamenti I:
Si ipotizzi un numero massimo di codici prodotto. Si memorizzino i dati, in memoria centrale, utilizzando un array di strutture.
Per chi deve sostenere la prova di Fondamenti II (I+II):
Non si facciano ipotesi sul numero di prodotti trattati. Si memorizzino i dati in un albero binario di ricerca sfruttando l'allocazione dinamica della memoria. Prima di far terminare il programma si liberi la memoria allocata dinamicamente.