Informatica B Allievi Meccanici con cognome da Cl a L Recupero della I prova intermedia 26/02/01 Prof. Elisabetta Di Nitto Cognome Nome Matricola Punteggio Dom1 Dom2 Dom3 Es1 Es2 Es3 Es4 totale NOTE: 1) Non si possono consultare testi, appunti o colleghi 2) Non è possibile usare calcolatrici 3) Non è possibile uscire dall aula durante la prova (si esce consegnando o ritirandosi) 4) Non è possibile rivolgere domande ai responsabili presenti in aula (la comprensione e l interpretazione delle specifiche è oggetto di valutazione) 5) E possibile utilizzare la matita 6) Scrivere le risposte su questo fascicolo (eventuali fogli aggiuntivi utilizzati durante lo svolgimento della prova non possono essere consegnati) 7) Tempo a disposizione: un ora e 45 minuti 8) Punteggio massimo conseguibile 12 punti 9) Chi deve recuperare solo la parte di architettura del calcolatore svolga tutte le domande e l esercizio 1. 10) Chi deve recuperare solo la parte di programmazione svolga gli esercizi 2, 3, e 4.
Domande teoriche Rispondere BREVEMENTE alle seguenti domande. Per la risposta si utilizzino gli spazi predisposti dopo ciascuna domanda. Domanda 1 A che cosa serve il Registro Program Counter (PC)? Domanda 2 Si descriva il modello della macchina di Von Neumann Domanda 3 Come è strutturata la memoria centrale di un calcolatore?
Esercizi Esercizio 1 NB: non verranno prese in considerazione risposte prive di passaggi e calcoli intermedi. Dati i numeri A = +7 e B = -37 in base 10 rappresentarli entrambi in base 2 notazione complemento a 2, utilizzando il numero minimo di bit per rappresentare ENTRAMBI gli operandi. Si effettui poi la somma algebrica tra i due numeri in complemento a 2 indicando esplicitamente se si verifica overflow oppure no.
Esercizio 2 Si consideri il seguente programma C. void main() int num, valnulli, cont; cont = 0; valnulli = 0; } printf("inserisci 5 numeri\n"); while(cont < 5) scanf("%d", &num); if(num == 0) valnulli++; cont++; } printf("il numero di valori pari a zero e`: %d\n", valnulli); Si disegni lo schema a blocchi corrispondente. Si scriva la traccia (o tabella) di esecuzione del programma assumendo che i valori di input per il programma sono: 1, 2, 0, 0, 1.
Esercizio 3 Si sviluppi un programma che svolge le seguenti operazioni: Acquisisce una sequenza di 10 caratteri e li memorizza in un array dimensionato in modo opportuno Scandisce l array in ordine inverso e sostituisce ad ogni carattere il carattere che segue nella tabella ASCII. Stampa a video il contenuto dell array Per esempio, se l array acquisito da tastiera è costituito dai caratteri a, c, e, g,... il programma deve stampare: b, d, f, h.
Esercizio 4 Si consideri il seguente frammento di programma: #include <stdio.h> typedef struct int latitudine; int longitudine; int altitudine; } rilievo; rilievo f(int a, rilievo b, char c); void main() rilievo r; char f; int m; /* assegnamento dei valori 35, 40, 1000 ai campi latitudine, longitudine altitudine della variabile r */ /* acquisizione da tastiera del valore da attribuire a f */... } A) Si inseriscano, sotto il commento corrispondente, le istruzioni necessarie per assegnare alla variabile r i valori indicati nel commento. B) Si inserisca, sotto il commento corrispondente, l istruzione per l acquisizione da tastiera del valore di f.