Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 1
Algebra di Boole
Il nome viene da George Boole, un matematico che definì delle strutture matematiche, dette appunto algebre di Boole … logica delle proposizioni ….
…. una frase può assumere solo uno dei due valori di verità:
… o è VERA o è FALSA
valori booleani (operandi) booleani (operandi)
solo due valori: vero (1) e falso (0)
Algebra di Boole
Operatori ed Operazioni
… connettivi logici
… permettono di formare frasi più complesse e valutarne la verità
operatori logici
not, ¬, (unario) - Negazione logica
and, , (almeno binario) – Prodotto logico
or, , + (almeno binario) – Somma logica
_
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 3
Negazione (not) - Tavola di verità
0 1
1 0
not x x
Data una generica frase x : l’operatore di negazione not ne inverte il valore
Esempi di not
x: "piove"
not x: "non piove"
Possibili notazioni:
not x oppure
¬x oppure
x _
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 5
Somma (OR) - Tavola di verità
x y x or y
0 0 0
0 1 1
1 0 1
1 1 1
Possibili notazioni: : x or y oppure x y oppure x + y
Data due (o più) generiche frasi x e y la frase risultante dalla loro somma logica è vera se almeno una è vera
Esempi di or
x: “A Benevento c’è l’arco di Traiano" VERO y: "il Napoli gioca in serie B" FALSO z: "Benevento è capitale d'Italia" FALSO w: " L’Italia ha vinto la Coppa del Mondo 2014“ FALSO x or z:
"A Benevento c’è l’arco di Traiano oppure Benevento è capitale d'Italia "
VERO y or w:
"Il Napoli gioca in serie B oppure l’Italia ha vinto la Coppa del Mondo 2014 "
FALSO
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 7
Prodotto (AND) - Tavola di verità
x y x and y
0 0 0
0 1 0
1 0 0
1 1 1
Possibili notazioni: : x and y oppure x y oppure x y
Data due (o più) generiche frasi x e y , la frase risultante dal loro prodotto logico è vera se tutte sono vere
Esempi di and
x: "A Benevento c’è l’arco di Traiano " VERO y: "Napoli è la capitale dell’Italia" FALSO
x and y:
"A Benevento c’è l’arco di Traiano e Napoli è la capitale
dell’Italia " FALSO
x: “la terra è un pianeta" VERO y: “la luna è un satellite della terra" VERO
x and y:
“la terra è un pianeta e la luna è un satellite della terra"
VERO
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 9
Precedenza degli operatori logici
Operatore unario: not Operatore binario: and Operatore binario: or
Esempio
Supponiamo di avere tre informazioni: a, b, c Sia:
a VERA b FALSA c FALSA
quanto vale l’espressione:
a or b and c ?
a or (b and c) = a or (FALSA) = VERA or (FALSA) = VERA
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 11
Esempio: si vuole valutare l’espressione a or b and c
in funzione dei possibili vari valori assunti da a, b, c
1 1
1 1
1
1 0
0 1
1
1 0
1 0
1
0 0
0 0
0
0 0
1 0
0
0 0
0 1
0
1 1
1 1
0
1 0
0 0
1
a or (b and c) b and c
c b
a
Tabella di verità
Esempio: si vuole valutare l’espressione (a or b) and c
in funzione dei possibili vari valori assunti da a, b, c
1 1
1 1
1
0 1
0 1
1
1 1
1 0
1
0 0
0 0
0
0 0
1 0
0
0 1
0 1
0
1 1
1 1
0
0 1
0 0
1
(a or b)and c a or b
c b
a
Tabella di verità
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 13
Valgono le proprietà distributive x and (y or z) = (x and y) or (x and z)
x = “quella penna mi piace“ y = "ho i soldi“ z = “ho la carta di credito"
(" quella penna mi piace" e "ho i soldi") oppure
(" quella penna mi piace" e "ho la carta di credito")
… per comprarla …
“quella penna mi piace" e ( "ho i soldi" oppure “ho la carta di credito")
… per comprarla …
=
Teoremi fondamentali
Identità: 1x=x 0+x=x
Nullo: 0x=0 1+x=1
Idempotenza: xx=x x+x=x
Inverso: (not x)x=0 (not x)+x=1
Commutativa: xy=yx x+y=y+x
Associativa: (xy)z=x(yz) (x+y)+z=x+(y+z) Distributiva: x(y+z)=xy+xz x+(yz)=(x+y)(x+z)
= and + = or = not
-
Principio di dualità:
Principio di dualità:
derivabili l’una dall’altra scambiando:
+ con 0 con 1
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 15
Teorema di De Morgan (x y) = x + y
(x + y) = x y - -
- -
Esempio:
non ((ho i soldi) o (ho la carta di credito))
=
(non ho i soldi) e (non ho la carta di credito)
1 1
0 0
0 0
1 0
0 0
0 1
0 0
1 1
x y (x+y)
y
x
- -
Porte logiche and
or
not
Rappresentazione circuitale delle operazioni logiche
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 17
OR realizzato con interruttori
{aperto = 0, chiuso = 1}
x y x or y aperto aperto aperto chiuso aperto chiuso aperto chiuso chiuso chiuso chiuso chiuso x y x or y
0 0 0
1 0 1
0 1 1
1 1 1
Interruttori in parallelo
or
y pila
x
OR realizzato con interruttori
{aperto = 0, chiuso = 1}
x y x or y aperto aperto aperto chiuso aperto chiuso aperto chiuso chiuso chiuso chiuso chiuso x y x or y
0 0 0
1 0 1
0 1 1
1 1 1
or
y pila
x Interruttori in parallelo
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 19
and realizzato con interruttori
{aperto = 0, chiuso = 1}
x y x and y aperto aperto aperto chiuso aperto aperto aperto chiuso aperto chiuso chiuso chiuso x y x and y
0 0 0
1 0 0
0 1 0
1 1 1
and
Interruttori in serie
x y pila
and realizzato con interruttori
{aperto = 0, chiuso = 1}
x y x and y aperto aperto aperto chiuso aperto aperto aperto chiuso aperto chiuso chiuso chiuso x y x and y
0 0 0
1 0 0
0 1 0
1 1 1
and
x y pila
Interruttori in serie
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 21
Porte logiche
not
x not x 0 1 1 0 x
x y x or y
0 0 0
1 0 1
0 1 1
1 1 1
or x y
x y x and y
0 0 0
1 0 0
0 1 0
1 1 1
and x y
Esempio
y = ((a or b) and (not c)) or (c and d) circuito
d b
a
y
c
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 23
d b
c a
y
1 0
0
0 1
1 1
0
1
Quale è il valore di y se:
a = 1 b = 0 c = 0 d = 0
y = ((a or b) and (not c)) or (c and d)
a b c d (a or b) not c (a or b)and (not c) (c and d) y
0 0 0 0 0 1 0 0 0
0 0 0 1 0 1 0 0 0
0 0 1 0 0 0 0 0 0
0 0 1 1 0 0 0 1 1
0 1 0 0 1 1 1 0 1
0 1 0 1 1 1 1 0 1
0 1 1 0 1 0 0 0 0
0 1 1 1 1 0 0 1 1
1 0 0 0 1 1 1 0 1
1 0 0 1 1 1 1 0 1
1 0 1 0 1 0 0 0 0
1 0 1 1 1 0 0 1 1
1 1 0 0 1 1 1 0 1
1 1 0 1 1 1 1 0 1
1 1 1 0 1 0 0 0 0
1 1 1 1 1 0 0 1 1
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 25
Semplificazione delle espressioni
F = xyz + xyz + xz = (distributiva)
- - -
L’applicazione di teoremi e proprietà dell’algebra di Boole permette la semplificazione delle espressioni, ovvero dei circuiti che le
realizzano Esempio
= xy(z+z) + xz = - - (inverso)
= xy + xz -
= xy1 + xz = - (identità)
Le due funzioni sono equivalenti:
hanno la stessa tabella di verità ma la seconda funzione è realizzabile con un circuito più semplice
F = xyz + xyz + xz
- - -
F = xy + xz
-
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 27
Esercizio
Specificare usando espressioni booleane che:
il valore di una variabile i è nell’intervallo da 1 a 100, estremi inclusi
1. (i>=1) 2. (i<=100)
(i>=1) and (i<=100)
Esercizio
Scrivere un’espressione booleana che determina se:
il valore di una delle due variabili intere j e k è un multiplo dell’altro
(j % k = 0) (k % j = 0)
(j % k = 0) or (k % j = 0) Corretto??
… opportuno imporre che j e k siano diversi da 0
(j ≠ 0) and (k ≠ 0)
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 29
Esercizio
Disegnare il circuito equivalente della seguente espressione logica:
C = (A OR B) OR NOT (A AND B) C = [(A OR B)] OR [NOT (A AND B)]
A B
C
Quanto vale C se A=0 e B=1 ?
C = (0 OR 1) OR NOT (0 AND 1) C = 1 OR NOT (0) = 1
Quanto vale D se A=1, B=0 e C = 0 ?
Esercizio
Disegnare il circuito equivalente della seguente espressione logica:
D = ( A AND (B OR C) ) AND NOT C
Quanto vale D se A=0, B=1 e C = 1 ?
B C A
D
1 1
0
D 1
0 0
0 0
1
D 0
1 0
D = 0
D = 0
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 31
Esercizio
Progettare un dispositivo con tre pulsanti ed una uscita che deve essere Vera ( cioè 1) quando un solo pulsante è premuto
Ciascun Pulsante può assumere un valore in (Alzato, Premuto) Indicando: Alzato = 0 Premuto = 1
ciascuno dei tre pulsanti con A, B, C e l’uscita con Y possiamo costruire una tabella di verità riportante le condizioni per cui deve essere Y=1
A B C Y
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0
Y = ABC + ABC + ABC
- - - - - -
A B C 0
A B C 1 A B C
0
B C A
Y
Y = ABC + ABC + ABC
- - - - - - Esercizio
A B C Y
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0 … Disegnare il corrispondente circuito logico ….
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 33
Esercizio
Progettare un dispositivo in cui tre deviatori (A, B, C) comandano due lampade (L1 e L2) secondo le seguenti regole:
•A=B=C=0 => L1=L2=1 (accese)
•A=0, B=C=1 => L2=1 L1=0
•A=B=C=1 => L1=L2=1
•A=B=0 C=1 => L2=0 L1=1
•in tutti gli altri casi => L1=L2=0
A B C L1 L2 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1
L1 = ABC + ABC + ABC
- - - - -
L2 = ABC + ABC + ABC
- - - -
Esercizio
L1 = ABC + ABC + ABC
- - - - -
L2 = ABC + ABC + ABC
- - - -
… Disegnare il corrispondente circuito logico ….
B C A
L1
L2
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 35
L1 = ABC + ABC + ABC
- - - - -
L2 = ABC + ABC + ABC
- - - - Esercizio
L1 = AB(C + C) + ABC = AB + ABC
- - - - -
L2 = ABC + (A + A)BC = ABC + BC
- - - - - - -
… semplificando ….
… Disegnare il corrispondente circuito logico semplificato ….
B C A
L1 = AB + ABC
- -
L2 = ABC + BC
- - - Esercizio
… circuito equivalente semplificato ….
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 37
Esercizio
Costruire le tabelle delle verità, ed i circuiti logici equivalenti, delle seguenti espressioni logiche:
D = NOT ((A OR C) OR B) OR (A AND C) D = (A OR NOT B) AND NOT C
A B C D
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
… lo studente svolga l’esercizio….
Esercizio
Valutare, tramite tabella di verità, le seguenti espressioni logiche e disegnarne i circuiti relativi:
F = not a and c or ((b or c) and (a and c))
G =(not (a and b or c)) and (b and not c and a)