Paolo Boldi

Domande in preparazione al primo compitino (22 ottobre 2003)

Le seguenti domande sono proposte in preparazione al primo compitino di Informatica Generale. Tenete conto che le domande del compitino saranno in realtà quiz a risposta multipla; le domande che seguono riguardano comunque alcune delle tematiche che verranno toccate negli esercizi del compitino. Le soluzioni sono indicate fra parentesi quadre.

Su richiesta di alcuni studenti, sono anche state aggiunte alcune domande addizionali, il cui grado di difficoltà è leggermente superiore (sia rispetto alle altre, sia rispetto a quelle che troverete nel compitino).

  1. Considerate il seguente programma assembly:
    			LOAD R1, a
    			LOAD R2, b
    		beta:	JZERO R1, alfa
    			DEC R1
    			INC R2
    			INC R2
    			JUMP beta
    		alfa:	STORE R2, c
    		
    Qual è il contenuto finale della locazione c in funzione dei contenuti delle locazioni a e b? [c=b+2a]
  2. Considerate il seguente programma assembly:
    			LOAD R2, #0
    			LOAD R3, #0
    		beta:	LOAD R1, a
    			SUB R1, R2
    			JZERO R1, alfa
    			ADD R3, R2
    			INC R2
    			JUMP beta
    		alfa:	STORE R3, b
    		
    Qual è il contenuto finale della locazione b in funzione del contenuto della locazione a? [b=1+2+...+(a-1)]
  3. Considerate l'espressione 100[base 2]+45[base 16]-6[base 10]=x[base 8]. Calcolate x. [103]
  4. Considerate l'espressione 32[base 16]-51[base 8]=x[base 2]. Calcolate x. [1001]
  5. Considerate l'espressione 35[base 10]=50[base x]. Calcolate x. [7]
  6. Dite quale configurazione di bit ha un byte che contiene il valore -12, se avete usato...
    1. la rappresentazione con modulo e segno; [10001100]
    2. la rappresentazione in complemento a 2. [11110100]
  7. Rappresentate in complemento a 2 in un byte il valore 55[base 8]-A1[base 16]. [10001100]
  8. Due byte consecutivi contengono i valori esadecimali 31 e 12. Se interpretate i due byte come un'unica sequenza di 16 bit contenente un numero naturale, che numero vi sarebbe contenuto, espresso in base otto? [30422]
  9. Un byte contiene un numero naturale che espresso in ottale è 243. Se lo interpretassimo come un numero relativo rappresentato in complemento a 2, di che valore si tratterebbe? [-93]
  10. Quanti sono gli 1 nel (lato destro del)la tabella di verità di (x OR y) AND (y OR NOT z)? [5]
  11. Dite se x OR (NOT x AND y) OR NOT y è una tautologia. [sì]
  12. Applicate le leggi di De Morgan all'espressione NOT(NOT(x) AND (y OR z)). [x OR (NOT y AND NOT z)]

Domande addizionali

  1. Un byte contiene la sequenza binaria 11111100. Quale numero vi è rappresentato nei seguenti casi:
    • se si assume che il valore sia un numero naturale? [252]
    • se si assume che sia un numero intero rappresentato con modulo e segno? [-124]
    • se si assume che sia un numero intero rappresentato in complemento a 2? [-4]
  2. Considerate l'espressione 3A[base 16]-41[base 8]=x[base 2]. Calcolate x. [1101]
  3. Semplificate l'espressione (x AND (x OR y)) OR (NOT y AND NOT (y AND x)). [x OR NOT y]
  4. Scrivete un'espressione booleana che usi AND, OR e NOT e che rappresenti una funzione booleana di tre variabili f(x1,x2,x3) che sia vera quando x1≤x2≤x3 (qui il simbolo ≤ va interpretato nel modo usuale, cioè 0 ≤ 1). [Soluzione: usando il connettivo IMPLICA, la funzione si può descrivere come (x1 IMPLICA x2) AND (x2 IMPLICA x3); riscrivendo questa espressione usando il fatto che x IMPLICA y = NOT x OR (x AND y) si ottiene (NOT x1 OR (x1 AND x2)) AND (NOT x2 OR (x2 AND x3))]
  5. Un byte contiene un numero naturale; la configurazione di bit è 1110x011. Sapendo che il numero contenuto nel byte è divisibile per 5, determinate se x=0 oppure x=1. [x=1]
  6. Due byte di memoria contengono le configurazioni 00000100 e 10110101, rispettivamente. Viene calcolata la somma dei valori contenuti, e il risultato viene posto in un terzo byte. La configurazione risultante in questo byte è 10111001. I valori rappresentati sono numeri naturali oppure numeri interi in complemento a 2? [È impossibile rispondere a questa domanda: la somma è corretta in entrambi i casi]
  7. Considerate l'espressione 51[base 8]+16[base 16]=D1[base 16]-x[base 8]. Calcolate x. [222]
  8. Si dice che il motivo per cui si è diffuso l'uso della base 10 sia legato al fatto che abbiamo 10 dita. Un marziano arrivato sulla terra legge l'equazione x^2-22x+51=0 (dove x^2 significa x al quadrato). La risolve, e ottiene la soluzione x=13. Quante dita ha il marziano? [Soluzione: Il fatto che la soluzione sia x=13 significa che, per il marziano, l'equazione 13^2-22*13+51=0 è vera. Ovviamente, questa equazione non è vera in qualunque base (per esempio, non è vera in base 10). Supponendo che il marziano abbia D dita, l'equazione va interpretata come (D+3)^2-(2D+2)*(D+3)+(5D+1)=0. Risolvendo quest'equazione in D si ottengono le soluzioni D=-1 e D=4. Quindi il marziano ha 4 dita (non può, ovviamente, averne -1!)]