Diploma Universitario in Ingegneria Elettronica

Diploma Universitario in Ingegneria Informatica

Fondamenti di Informatica I e II

Prova d'esame del 21 giugno 1999

Domande per chi deve sostenere la prova di Fondamenti I:

1. Rappresentare in complemento a due su 8 bit i seguenti numeri: -1, -128

2. Dire cosa significa numero in virgola mobile normalizzato.

3. Confrontare le due tecniche di input/output: polling e interrupt.

4. Descrivere l'operazione di formattazione di un disco (formattazione fisica e logica)

Domande per chi deve sostenere la prova di Fondamenti II:

5. Si descrivano le funzioni del preprocessore del C;

6. Si descrivano le funzioni di gestione dinamica della memoria fornite dalla libreria standard del C dettagliando il prototipo, significato delle variabili in ingresso e dei valori restituiti;

7. Dare la definizione di albero binario di ricerca, descriverne le proprietà e le principali operazioni.

Esercizio di programmazione da svolgere al computer per Fondamenti I e II:

Scrivere un programma in linguaggio C che sia in grado di memorizzare correttamente su file i dati ricevuti da un sistema di rilevazione dell'inquinamento atmosferico. Durante la comunicazione il sistema invia al computer una sequenza di pacchetti, ognuno dei quali è costituito da 7 caratteri; il primo carattere rappresenta il tipo di dato (O = concentrazione Monossido di Carbonio, S = concentrazione Biossido di Zolfo , F = fine comunicazione), i tre successivi, un numero progressivo di identificazione del pacchetto, gli ultimi tre un numero intero indicante il valore della grandezza misurata.

Per le caratteristiche del protocollo di comunicazione e per i disturbi presenti nell'ambiente in cui è situata l'apparecchiatura, alcuni pacchetti possono essere persi, fermo restando che i pacchetti sono ricevuti ordinati per numero di identificazione.

Il programma, per rispondere a esigenze di velocità, deve memorizzare i dati in memoria centrale in due strutture dati distinte: una per i valori relativi al monossido di carbonio, l'altra per quelli relativi al biossido di zolfo. La comunicazione termina non appena si riceve il pacchetto recante in testa il carattere ``F''.

Alla conclusione della comunicazione le informazioni contenute nelle due strutture dati devono essere salvate su un file binario di nome ``MISURE''. Ciascun record del file conterrà il numero progressivo di identificazione e i relativi valori di monossido di carbonio e di biossido di zolfo; sul file non verranno salvati i dati incompleti, cioè in cui manca uno o entrambi i valori.

Lo studente, al fine di verificare la correttezza del proprio programma, simulerà l'invio dei dati immettendo i pacchetti tramite tastiera.

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 misure. Si memorizzino i dati, in memoria centrale, utilizzando due array di strutture; uno per il monossido di carbonio e l'altro per il biossido di zolfo.

Per chi deve sostenere la prova di Fondamenti II (I+II):

Non si facciano ipotesi sul numero massimo di misure. Si utilizzino, a scelta, una o due liste ordinate allocate dinamicamente per la memorizzazione dei dati. Si liberi tutta la memoria allocata dinamicamente prima di uscire dal programma.