You are on page 1of 3

Università degli Studi di Cagliari

Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica


Un esercizio semplice
FONDAMENTI DI INFORMATICA 1
 Dimostrare che A * A’ = 0 e A + A’ = 1
http://www.diee.unica.it/~marcialis/FI1
 Si usino le tabelle di verità
A.A. 2008/2009

A A’ A * A’ A + A’
0 1 0 1
Docente: Gian Luca Marcialis
1 0 0 1

Esercitazione
ALGEBRA DI BOOLE
CODIFICA BINARIA DELL’INFORMAZIONE
Fondamenti di Informatica 1 - A.A. 2008/09 - Ing. Gian Luca Marcialis 2

Il teorema di De Morgan Semplificazione di espressioni booleane

 Si verifichi l’uguaglianza (A + B)’ = A’ * B’ utilizzando  Si semplifichi la seguente espressione applicando le


 le proprietà dell’algebra booleana proprietà e i teoremi dell’algebra booleana:
 le tabelle di verità  A*B’ + C*A’ + A*C
 Soluzione  Soluzione:
 = C * (A’ + A) + A*B’ = {prop. distributiva}
 Per la proprietà dell’elemento complementare: (A+B)’ * (A+B) = 0
 = C + A*B’ {prop. El. Complementare + neutro}
 Quindi anche A’ * B’ * (A+B) = 0
 Verificare che il numero di operatori booleani richiesti dopo la
 Sviluppando l’espressione precedente: semplificazione sia inferiore a quello iniziale
 A’ * B’ * A + A’ * B’ * B = A’ * A * B + A’ * B’ * B = 0 + 0 = 0 c.v.d. − Inizialmente: 3 AND, 2 OR, 2 NOT
− Semplificando: 1 AND, 1 OR, 1 NOT

Fondamenti di Informatica 1 - A.A. 2008/09 - Ing. Gian Luca Marcialis 3 Fondamenti di Informatica 1 - A.A. 2008/09 - Ing. Gian Luca Marcialis 4
Dal compito del 8/7/2008 Dal compito del 4/2/2009

 Semplificare la seguente espressione con i teoremi  Date tre variabili booleane, che descrivono tre eventi relativi all’esame di
Fondamenti di Informatica 1:
dell’algebra booleana:  Scritto_Soddisfacente == 1  voto conseguito allo scritto > 20
 Orale_Superato == 1  orale OK
 A*B’ + B*C + A*C’  Scritto_Insufficiente == 1  voto conseguito allo scritto < 16
 Soluzione  Esprimere la variabile Esame_Superato in funzione delle precedenti,
secondo le regole di Fondamenti di Informatica 1
 = A * (B’ + C’) + B*C = {commutatività + distributività}  Soluzione:
 Esame_Superato = Scritto_Soddisfacente + Orale_Superato * Scritto_Insufficiente’
 = A * (B*C)’ + B*C = { De Morgan}  Infatti Esame_Superato == 1 quando:
 = (A + B*C) * ((B*C)’ + B*C) = {distributività + el. complementare} − Lo scritto ha voto > 20  Scritto_Soddisfacente == 1
− Oppure,
 = A + B*C • Lo scritto ha voto >= 16  Scritto_Insufficiente’ == 1
• E l’orale è stato superato Orale_Superato == 1
 Verificare l’uguaglianza con le tavole di verità  Nota bene: la forma ottenuta è del tipo C + A*B’ (vedi slide n. 4)

Fondamenti di Informatica 1 - A.A. 2008/09 - Ing. Gian Luca Marcialis 5 Fondamenti di Informatica 1 - A.A. 2008/09 - Ing. Gian Luca Marcialis 6

Esercizi di aritmetica binaria Aritmetica in virgola fissa

 Convertire 1011, espresso in cifre binarie, nella  Esprimere 13.7510 in binario


rappresentazione decimale  Soluzione
 Soluzione  Si separano parte intera e parte frazionaria
 Si usa l’algoritmo di conversione:  Per la parte intera si usa l’algoritmo delle divisioni successive,
 X = 1*23 + 0*22 + 1*21 + 1*20 = 8 + 0 + 2 + 1 = 1110 ottenendo: 13 = 1101
 Convertire il decimale 11 in binario  Per la parte frazionaria si usa l’algoritmo delle moltiplicazioni
successive 0.75 = 0.11
 Soluzione:
− Ottenuto come segue: 0.75 * 2 = 1.5; 0.5 * 2 = 1.0
 Algoritmo delle divisioni successive. Il resto corrisponde alle cifre − Poiché la parte frazionaria dopo l’ultima iterazione è zero,
binarie a partire da quella meno significativa l’algoritmo termina
 11/2={quoz. 5, resto 1}; 5/2 = {2, 1}; 2/2 = {1, 0}; 1/2 = {0, 1}  Quindi: 13.7510 = 1101.112

Fondamenti di Informatica 1 - A.A. 2008/09 - Ing. Gian Luca Marcialis 7 Fondamenti di Informatica 1 - A.A. 2008/09 - Ing. Gian Luca Marcialis 8
Alcuni semplici algoritmi in pseudo-
Conversione in virgola mobile codice: l’algoritmo del prodotto

 Esprimere il valore dell’esercizio precedente in virgola  Si supponga di implementare l’algoritmo del prodotto di due valori X e N come N
volte la somma di X
mobile secondo la convenzione 1.b * 2E  In altri termini, la seguente sommatoria:
N
 ‘b’ è la parte della mantissa che precede l’1 più Y = ∑ X = X + X + ... + X = X ⋅ N
significativo, unico valore in parte intera  Soluzione i =1
 Utilizziamo i come indice per contare il numero di volte che sommiamo X con sé stesso
 Soluzione  Ricordando che l’espressione A = A + B significa: “prendo il vecchio valore di A, gli sommo B, ed il risultato
 1101.11 = 1101.11 * 23 * 2-3 = 1.10111 * 23 lo assegno di nuovo ad A”, posso scrivere l’algoritmo come segue:
− Input: X e N; Output Y = X * N
 Esprimendo per esempio l’esponente in segno e valore con tre bit − i=0
− Y=0
(quello più significativo, posto a zero, indica segno positivo): − Ripeti
• Y=Y+X
 1.10111 * 2011 • i=i+1
− Finché i < N
 Si ottiene dunque b  10111, E  011

Fondamenti di Informatica 1 - A.A. 2008/09 - Ing. Gian Luca Marcialis 9 Fondamenti di Informatica 1 - A.A. 2008/09 - Ing. Gian Luca Marcialis 10

L’algoritmo della potenza


 Con lo stesso criterio precedente, voglio implementare l’algoritmo dell’elevamento a
potenza Y = BE
 In questo caso abbiamo una “produttoria”:
E
Y = ∏ B = B ⋅ B ⋅ ... ⋅ B = B E
i =1
 Soluzione
 Appoggiamoci sempre ad i come “contatore”
 L’espressione A = A + B può anche essere A = A * B che significa “prendo il vecchio valore di A, gli
moltiplico B ed il risultato lo assegno ad A”
 Input: B, E; Output: Y = BE
 i=1;
 Y=1
 Finché i<=E
− Y=Y*B
− i=i+1
 Ripeti
 Abbiamo anticipato l’espressione “Finché” così l’algoritmo funziona anche se E = 0.

Fondamenti di Informatica 1 - A.A. 2008/09 - Ing. Gian Luca Marcialis 11

You might also like