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.