Appello 20 Febbraio 2014 Fila B

Esame di Fondamenti di Informatica, CdL Ing. Meccanica A.A. 2013/2014
Docente: Prof. Ivan Bruno
Appello: 20 Febbraio 2014
N. compito _B _
Cognome:
Nome:
.
Nr. Matricola
Nota: negli esercizi 1, 2, 3 cerchiare la risposta Rn che si ritiene corretta; la risposta errata
comporta 0 punti per l’esercizio. Viene richiesto espressamente lo svolgimento di tutti i passaggi e
non solo il risultato. Nel testo degli esercizi i valori C,N,M corrispondono rispettivamente ai
seguenti valori: codifica ASCII delle prime lettere di Cognome e Nome (maiuscole) e prima cifra
≠0 della Matricola a partire da destra. La codifica ASCII è ottenibile in decimale sommando 64
alla posizione della lettera nell’alfabeto di 26 lettere (A=65,Z=90).
1. (Punti 3) Quanti bit di indirizzo servono per accedere ad uno spazio di memoria di 512MByte
dove la cella di memoria è di 8 bit?
Soluz: L’indirizzamento complessivo deve permettere di numerare 512Mbyte/8bit, ovvero con
1byte=8bit un numero di celle pari a 512M e quindi per un totale di 512*220 = 29*220 = 229. In
totale occorrono 29 bit.
Risposte:
R1)
R2)
R3)
R4)
R5)
R6)
R7)
19 bit
21 bit
20 bit
10 bit
18 bit
16 bit
Nessuna risposta valida
2. (Punti 3) Quale è il registro della CPU che si interfaccia con il Bus Address?
Risposte:
R1)
R2)
R3)
R4)
R5)
MAR
PC
MDR
IP
nessuna risposta valida
3. (Punti 3) Si consideri una CPU con indirizzamento a 32 bit. Quali di queste affermazioni sul PC
(program counter) sono vere?
a)
b)
c)
d)
e)
il PC contiene l’indirizzo della prossima istruzione da eseguire
il PC contiene l’indirizzo di memoria dell’istruzione in esecuzione
il PC viene aggiornato solo dopo che si è verificato un salto
il PC tiene traccia dell’esecuzione del programma
il PC viene sempre incrementato di 1
1
Risposte:
R1)
R2)
R3)
R4)
R5)
R6)
R7)
a,b,c
a,d
a,e
b,e
b,c
d,e
nessuna risposta valida
4. (Punti 3) Mettendo su una riga uno accanto all’altro i seguenti raggruppamenti di bit: 1 nibble,
5 word, 4 Kilobyte ed (3M+1) Mbyte, di quanti bit è formata la stringa risultante? (M prima
cifra da destra !=0 della matricola) (si veda file delle soluzioni)
Risposte:
N° di bit:____________________
5. (Punti 5) Rappresentare in virgola mobile a 16 bit [S C M] il numero decimale
X=(N*100)/C+((M/C)*100) usando: un bit di segno, 5 bit per la caratteristica e 10 bit per la
mantissa. Codificare tutta la rappresentazione in una stringa esadecimale. Valutare l’errore
assoluto e percentuale. (si veda file delle soluzioni)
Risposta:
X = ([…]s [……………]c [………………………………]m)2 = (…………)16
EA = …………. E% = …………%
6. (Punti 6) Valutare il comportamento della seguente funzione in linguaggio C assumendo il
vettore V con i seguenti N=5 numeri: {15, 18, 3, 25, 7}. Scrivere il vettore V e il valore della
variabile d al termine di questo algoritmo. (si veda file delle soluzioni)
int funz( int* V, int N )
{
int a,b,c,d;
for ( a = 0; a < N-1; a++)
{
c = a;
for (b=a+1; b<N; b++){
if ( V[b] > V[c] )
c = b;
}
d=V[c];
V[c]=V[a];
V[a]=d;
}
return d;
}
Risposta:
V={______________________}
d=_____
2
7. (Punti 4) Effettuare l’operazione A-B con A=C1(C2(C)) e B=N utilizzando la forma
complemento a 2 a 8 bit. Scrivere il risultato (binario), la codifica in base 16 e valutare
l’eventuale condizione di errore. (Nota: C e N sono la codifica ASCII delle prime lettere di
Cognome e Nome maiuscole) (si veda file delle soluzioni)
Risultato = (……………......………)2 = ( __ __ )16
errore = [sì][no]
8. (Punti 5) Moltiplicare per (16)10 il numero binario ottenuto dal seguente procedimento:
(C∙28+N+M)10 AND (1FFF)16. Riportare in base 2 e 16 il valore di (C∙28+N+M). Rappresentare
il risultato della moltiplicazione a 16 bit in base 2 ed in base 16. (Consiglio: convertire in
decimale, effettuare la moltiplicazione e poi riconvertire in base 2 risulta più veloce che
operare la moltiplicazione in base 2) (si veda file delle soluzioni)
Risposta:
(C∙28+N+M)10 = (...................................……………......………)2 = ( __ __ __ __ )16
Risultato = (...................................……………......………)2 = ( __ __ __ __ )16
3