Logica, Algebra Booleana, Circuiti
Esercizio 107 (91)
Un programma in linguaggio C contiene la seguente condizione:
if ( ! (x==’C’ && y==’I’ && w==’A’ && z==’O’) )
Usando le tecniche dell’algebra Booleana (es. teorema dell’assorbimento, teorema di De Morgan)
riscrivere l’espressione in modo che complessivamente richieda un minor numero di operazioni per
il suo calcolo.
Soluzione
Applicando De Morgan xywz  x  y  w  z L’espressione diventa
if ( (x<>’C’ || y<>’I’ || w<>’A’ || z<>’O’) )
Se x == ‘C’, x significa tutto ciò che non è x e quindi x <> ‘C’
Esercizio 108 (92)
Un circuito logico deve realizzare la seguente funzione booleana:
y  cb  b  (ac  ac )
Si costruisca la tabella di verità del circuito, e si identifichi una versione semplificata della funzione
booleana.
Soluzione
y  cb  b  (ac  ac )  bc  bc (a  a )  bc  bc  b(c  c )  b
Da cui si ricava la tabella della verità molto banale.
Un altro modo di risolverlo poteva essere quello di costruire la tabella della verità sull’espressione
originale o sul primo passaggio
Esercizio 109 (93)
Due circuiti logici, C1 e C2, realizzano rispettivamente le seguenti funzioni:
C1  a b  ab
C 2  ab  a b
Si determini se i due circuiti sono equivalenti (nel senso che realizzano la stessa funzione
booleana), e quale dei due sia più veloce.
Soluzione
Il primo circuito rappresenta la funzione di ex or tra a e b, il secondo la funzione di ex nor.
Sono quindi diversi. Il più veloce dipende dalla logica utilizzata. Ad es se si utilizzano solo And, or
e not, il primo è più veloce.
Esercizio 110 (94) controllare testo
Una funzione booleana F ha la seguente espressione:
F  a  b  c  ab
Si determinino tutti i valori delle variabili indipendenti per i quali si ha F = 0, e si disegni il circuito
logico corrispondente.
Soluzione
F=0 si ha quando F =1
Semplificando l’espressione si ottiene:
F  a  b  c  ab  a  bc  a  b  (a  a )  b(c  1)  1  b  1, sempre
F=1 sempre vuol dire F=0 mai
Il circuito corrispondente si riduce ad F fissa al valore alto (1).