39
Codifica binaria: - valori logici e algebra di Boole - Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin

Ingegneria Meccanica e dei Materiali - fimec.altervista.orgfimec.altervista.org/Informatica_&_Programmazione/Lucidi_Lezioni_ed... · Ingegneria Meccanica e dei Materiali Università

  • Upload
    donhan

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Codifica binaria:- valori logici e algebra di Boole -

Ingegneria Meccanica e dei Materiali

Università degli Studi di Brescia

Prof. Massimiliano Giacomin

Tipologie di codici

Informatica e Programmazione – Università di Brescia 2Docente: M. Giacomin

• Per la rappresentazione di:

– caratteri alfabetici e testi

– valori logici

– numeri naturali

– numeri interi relativi [val assoluto e segno, complemento a due]

– numeri “reali” [virgola fissa e virgola mobile]

– suoni, immagini e sequenze video

• Codici per la rilevazione e correzione di errori

• Codici di compressione (senza | con perdita)

4

Le radici

GEORGE BOOLE (1815-1864)

An Investigation of the Laws of Thought(1854)

ALGEBRA BOOLEANA

Una riflessione sull’algebra “numerica”- Costanti (valori)- Variabili- Operatori

Elementi di Informatica e Programmazione – Università di Brescia 5Docente: M. Giacomin

ESPRESSIONE-(x + y)

• Le variabili denotano (contengono) valori numerici (es. interi)• Operatori binari (es. +) e unari (es. –)• Valore dell’espressione determinabile da valori delle variabili,

mediante applicazione operatori• Equivalenza di espressioni:

-(x + y) = -(x) - y

uguale valore per qualunque coppia di valori assunti da x, y

OBIETTIVO: introdurre un formalismo per esprimere FATTI

Elementi di Informatica e Programmazione – Università di Brescia 6Docente: M. Giacomin

ESEMPIO:- r1 contiene l’età di un utente acquisita da tastiera- si vuole fare in modo che r2 indichi se è maggiorenne

SE(r1>=18)

r2←”VERO”

SE(r1<18)

r2←”FALSO”

I fatti possono essere “veri” o “falsi”

Dato un fatto, dobbiamo codificare i suoi possibili valori logici.

2 “oggetti” da rappresentare

V (vero) F (falso)

E’ quindi sufficiente 1 bit, ad esempio con la codifica:

- falso: 0

- vero: 1

Elementi di Informatica e Programmazione – Università di Brescia 7Docente: M. Giacomin

Valore logico: esprime il “valore di verità” di un determinato fatto

ES: Il voto del compito di informatica è sufficiente (F1)

F1 è vero oppure falso, non entrambi

Valori logici e codifica binaria

• Variabile booleana: variabile binaria che può assumere uno dei due valori logici denotati con 0 e 1 (oppure Falso e Vero)

Variabile booleana

• Così come si usano variabili “numeriche” per memorizzare valorinumerici (es. temperatura_aria) in modo simile si possono usarevariabili booleane per memorizzare il valore di verità di un fatto

Esempio: uso una variabile F1 per il fatto che il compito sia suff. se (voto>=18) allora F1 = V

Definizione

DOMINIO: {0, 1} (oppure: {F, V})

Elementi di Informatica e Programmazione – Università di Brescia 8Docente: M. Giacomin

Espressione booleana (informalmente)

Elementi di Informatica e Programmazione – Università di Brescia 9Docente: M. Giacomin

• I fatti possono essere composti a partire da altri fatti mediantecongiunzione, disgiunzione, negazione, …

“ho_l’automobile e ho_la_benzina”

“ho_l’automobile o ho_la_bicicletta”

“non ho_l’automobile”

• Il loro “valore di verità” dipende da quello dei fatti elementari

ES: se ho_l’automobile è VERO, ho_la_benzina è FALSO,“ho_l’automobile e ho_la_benzina” è FALSO

• Definizione degli operatori booleani…

Operatori booleani

• Così come per le variabili numeriche esistono operatori aritmetici(es: +, -, *, …), allo stesso modo per le variabili booleane esistono operatori booleani

OPERATORI BINARI (due argomenti)

V F

V F

op V F

OPERATORI UNARI (un argomento)

op V FV F

Elementi di Informatica e Programmazione – Università di Brescia 10Docente: M. Giacomin

NOT Negazione Logica not(x), x, ~xAND Prodotto Logico x and y, x • y, xyOR Somma Logica x or y, x + y

Operatori booleani più importanti

x1 x0 x1 • x00 0 0

0 1 0

1 0 0

1 1 1

x1 x0 x1 + x00 0 0

0 1 1

1 0 1

1 1 1

AND OR

Tabelle di verità (NB: 0 equivale a F, 1 equivale a T)

x x

0 1

1 0

NOT

Elementi di Informatica e Programmazione – Università di Brescia 11Docente: M. Giacomin

1. Le costanti 0 e 1 e le variabili (simboli a cui possono

essere associati i valori 0 e 1) sono formule booleane

2. Se E, E1 ed E2 sono formule booleane lo sono anche

(E1+E2), (E1·E2) e (E)3. Non esistono altre formule oltre a quelle che possono

essere generate da un numero finito di applicazioni delle

regole 1 e 2

Formule (o espressioni) booleane (formalmente)Esempi:

x + y

Definizione:

((x+y)·z)

Elementi di Informatica e Programmazione – Università di Brescia 12Docente: M. Giacomin

Riassumendo…

• Per elaborare numeri (es: gli interi relativi)- Costanti (valori)- Variabili- Operatori

•Anche in questo contesto abbiamo gli stessi concetti- FALSO e VERO sono i valori elaborati- ho_l’automobile, … sono variabili che assumono questi valori- (Non ho_l’automobile) o (Non ho_la_bicicletta)

sono ESPRESSIONI costruiti con gli operatori non, o, e

Elementi di Informatica e Programmazione – Università di Brescia 13Docente: M. Giacomin

ESPRESSIONI

Tabelle di verità di formule booleane

Valore di verità per ogni combinazione di valori delle variabili

ESEMPIO

auto·bici

auto bici auto·bici 0 0 1 0 1 1 1 0 1 1 1 0

Elementi di Informatica e Programmazione – Università di Brescia 14Docente: M. Giacomin

Elementi di Informatica e Programmazione – Università di Brescia 15Docente: M. Giacomin

Equivalenza di espressioni booleane (1)

• Espressioni diverse possono indicare il medesimo fatto

“Non (ho_l’automobile e ho_la_bicicletta)”

“(Non ho_l’automobile) o (Non ho_la_bicicletta)”

• Come si può verificare formalmente?Cfr. il concetto di espressioni equivalenti nel contesto “numerico”!

Equivalenza di espressioni booleane (2)

Formule equivalenti: per ogni combinazione di valori delle variabilile formule restituiscono lo stesso valore

ESEMPIO 1

auto·bici = auto+bici

auto bici auto·bici auto·bici auto bici auto+bici 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0

Un modo per verificare l’equivalenza: tabella di verità

Elementi di Informatica e Programmazione – Università di Brescia 16Docente: M. Giacomin

x y x+y x(x+y) 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1

Assorbimento: x(x+y) = x

ESEMPIO 2

Elementi di Informatica e Programmazione – Università di Brescia 17Docente: M. Giacomin

x y x+y x(x+y) F F F F F V V F V F V V V V V V

Assorbimento: x(x +y) = x

NB: potevamo usare anche una diversa simbologia per i valori…

Elementi di Informatica e Programmazione – Università di Brescia 18Docente: M. Giacomin

x y x OR y x AND (x OR y) F F F F F V V F V F V V V V V V

Assorbimento: x AND (x OR y) = x

…o per gli operatori

Elementi di Informatica e Programmazione – Università di Brescia 19Docente: M. Giacomin

x1 + x2 + x2x3 + x2x3 = x1 + x2 + x3

x3 x2 x1 x2 x2x3 x2x3 x1+x2+x2x3+x2x3 x1+x2+x3 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1

ESEMPIO 3

Elementi di Informatica e Programmazione – Università di Brescia 20Docente: M. Giacomin

Il concetto di algebra

• Per elaborare numeri (es: i numeri relativi Z) si utilizzano

operatori che elaborano i valori appartenenti al dominio considerato •L’impianto formale “sottostante” è il concetto di algebra

Elementi di Informatica e Programmazione – Università di Brescia 21Docente: M. Giacomin

- insieme di supporto (i valori utilizzati) - insieme degli operatori fondamentali

(devono essere chiusi rispetto all’insieme di supporto)Es: (Z, {+, -}) è un’algebra, (N, {+, -}) non lo è

Algebra di Boole

•Una specifica algebra che include:

– un insieme di supporto A (l’insieme {0,1} o {V,F})

– due operatori binari: AND (·) e OR (+)

– un operatore unario: NOT (¯)

[operatori definiti da un insieme di assiomi]•E’ lo strumento matematico su cui si fonda il funzionamento dei circuiti digitali

Elementi di Informatica e Programmazione – Università di Brescia 22Docente: M. Giacomin

Forma AND Forma OR

Commutatività AB = BA A+B = B+A

Distributività A+BC=(A+B)(A+C) A(B+C)=AB+AC

Identità 1A = A 0+A = A

Inverso AĀ = 0 A+Ā = 1

Assiomi dell’algebra di Boole

Elementi di Informatica e Programmazione – Università di Brescia 23Docente: M. Giacomin

Forma AND Forma OR

Elemento nullo 0A = 0 1+A = 1Idempotenza AA = A A+A = AAssorbimento A(A+B) = A A+AB=AAssociatività (AB)C=A(BC) (A+B)+C=A+(B+C)De Morgan AB = A+B A+B = A B

Proprietà dell’algebra di Boole (deducibili dagli assiomi)

Altre proprietà della negazione logica

• 1 = 1• 0 = 0

Elementi di Informatica e Programmazione – Università di Brescia 24Docente: M. Giacomin

Equivalenza tra formule booleane via algebra di Boole

auto·bici = auto+bici direttamente dalla proprietà di De Morgan

• ESEMPIO 1 precedente

• ESEMPIO 3 precedente

x1 + x2 + x2x3 + x2x3 = x1 + x2 + x3(x2+x2) = x1 + x2 + x3

Elementi di Informatica e Programmazione – Università di Brescia 25Docente: M. Giacomin

• ESEMPIO 2 precedente

x(x+y) = x direttamente dalla proprietà di assorbimento

x1x2 + x1x2x3 + x1x2 e x1x2

Elementi di Informatica e Programmazione – Università di Brescia 26Docente: M. Giacomin

ESERCIZIO 0

Giustificando in modo preciso la risposta, si dica se le seguenti espressioni booleane sono tra loro equivalenti:

x1x2 + x1x2x3 + x1x2 = x1x2 + x1x2x3 = x1x2 (1 +x3) = x1x2

Elementi di Informatica e Programmazione – Università di Brescia 27Docente: M. Giacomin

ESERCIZIO 0

Giustificando in modo preciso la risposta, si dica se le seguenti espressioni booleane sono tra loro equivalenti:

Soluzione 1

Si costruiscono le tabelle di verità e si verifica che sono equivalenti(serve la tabella di verità completa)

Soluzione 2

Elementi di Informatica e Programmazione – Università di Brescia 28Docente: M. Giacomin

ESERCIZIO 1

Giustificando in modo preciso la risposta, si dica se le seguenti espressioni booleane sono tra loro equivalenti (ovvero, identificano la stessa funzione delle variabili booleane x, y e z):

xy + xy + x y e x + y

Elementi di Informatica e Programmazione – Università di Brescia 29Docente: M. Giacomin

Soluzione 1

Si costruiscono le tabelle di verità e si verifica che sono equivalenti(serve la tabella di verità completa)

Soluzione 2

xy + xy + x y =

xy + xy + x y + x y =

(x+x) y + x(y+y) =

x + y

ESERCIZIO 2

Elementi di Informatica e Programmazione – Università di Brescia 30Docente: M. Giacomin

Giustificando in modo preciso la risposta, si dica se le seguenti espressioni booleane sono tra loro equivalenti (ovvero, identificano la stessa funzione delle variabili booleane x, y e z):

xy + x+z e x+y + x z [5]

Elementi di Informatica e Programmazione – Università di Brescia 31Docente: M. Giacomin

Soluzione

Si costruiscono le tabelle di verità (anche parziali) e si riportano uno

o più casi (non occorre tutti) in cui non danno lo stesso valore,

quindi non sono equivalenti.

Volendo, per trovare un caso ci si può aiutare con l’algebra booleana

notando che i due termini a destra sono equivalenti…

(ma vedi soluzione errata)

P.es. x=0, y=1, z=1 (la prima è 1, la seconda 0)

Elementi di Informatica e Programmazione – Università di Brescia 32Docente: M. Giacomin

Soluzione ERRATA

xy + x+z e x+y + x z

e quindi, verificando che i due termini xy e x+y non sonoequivalenti, concludere che le formule non lo sono.

NB: è vero che le formule non sono equivalenti, ma questometodo non lo dimostra perché in altri casi non funziona

(cfr la regola “i gol in trasferta valgono doppio” nelle coppe)

Elementi di Informatica e Programmazione – Università di Brescia 33Docente: M. Giacomin

NOTA IMPORTANTE

Poichè il dominio non è illimitato, per dimostrare che due formule

NON sono equivalenti non si possono trascurare termini equivalenti!

Esempio

?stabilire se x+1 è equivalente a x+1

� Ovviamente sì (valgono entrambe 1)

x Ma ragionando come in algebra numerica si direbbe che

sono equivalenti sse x=x, cosa non vera!

Elementi di Informatica e Programmazione – Università di Brescia 34Docente: M. Giacomin

Esempio precedente leggermente modificato….

xy + z+z e x+y + z z

xy + z+z e x+y + z z

Sono equivalenti, perché danno 1 in tutti i casi (il II termine è 1),

invece procedendo come prima:

e quindi, verificando che i due termini xy e x+y non sono

equivalenti, si concluderebbe che le formule non lo sono.

VADEMECUM PER TEMI D’ESAME

Elementi di Informatica e Programmazione – Università di Brescia 35Docente: M. Giacomin

A) VERIFICARE CHE DUE FORMULE SONO EQUIVALENTI:

bisogna dimostrare che danno lo stesso valore in tutti i casi

- via tabella di verità, oppure

- dimostrando con proprietà algebriche che sono equivalenti a

due formule sintatticamente uguali

L’algebra booleana consente praticamente tutte le operazioni cui

si è abituati con l’algebra dei numeri, p.es.

- raccogliere termini comuni

- 0*x=0, 1*x=xed anche molte altre (es. prop. De Morgan, 1+x=1, ecc.)

Elementi di Informatica e Programmazione – Università di Brescia 36Docente: M. Giacomin

B) DIMOSTRARE CHE DUE FORMULE NON SONO

EQUIVALENTI:

bisogna e basta trovare un caso in cui danno risultato diverso

- Errore frequente: semplificare un termine e dimostrare che

“i termini rimasti” sono equivalenti. Questo NON dimostra nulla

NB: trovare la risposta esatta con un procedimento sbagliato

è valutato come se la risposta fosse sbagliata!

CODIFICA ED ELABORAZIONE DI

VALORI LOGICI

NEI LINGUAGGI

DI PROGRAMMAZIONE

Linguaggio macchina (cenno)

• Il verificarsi (o meno) di determinate condizioni (es. ultima operazionearitmetica ha dato risultato nullo) sono segnalate ponendo a 1/0 unospecifico bit di un particolare registro

• Sono tipicamente disponibili istruzioni per la manipolazione di bitcorrispondenti agli operatori booleani

Elementi di Informatica e Programmazione – Università di Brescia 38Docente: M. Giacomin

Esempio

and $r1, $r2, $r3 # $r1 = $r2 AND $r3 (bit a bit)

or $r1, $r2, $r3 # $r1 = $r2 OR $r3 (bit a bit)

Linguaggio C

• In C non esiste il tipo booleano e quindi neppure le variabili booleane• Esistono però gli operatori logici…• Cfr. “Operatori” in C

Elementi di Informatica e Programmazione – Università di Brescia 39Docente: M. Giacomin