La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata.

Presentazioni simili


Presentazione sul tema: "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata."— Transcript della presentazione:

1 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata al 13 Marzo 2013

2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Torniamo a Venerdì 11 Ottobre 2

3 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 3 Struttura di un programma C inclusione librerie / per poter invocare funzioni utili (i/o,...) / dichiarazione di variabili globali e funzioni int main ( ) { dichiarazione di variabili locali istruzione 1; / tutti i tipi di operazioni, e cioè: / istruzione 2; / istr. di assegnamento / istruzione 3; / istr. di input / output / istruzione 4; / istr. di controllo (condizionali, cicli) /... istruzione N; } parte esecutiva parte dichiarativa localeparte dichiarativa globale Ogni programma C deve contenere un modulo int main() {...}

4 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 4 Parte dichiarativa: contiene le dichiarazioni degli elementi del programma Dati, ed eventualmente funzioni (ma solo nella parte globale) Parte esecutiva: contiene le istruzioni da eseguire, che ricadono nelle categorie: Istruzioni di assegnamento ( ) Strutture di controllo: Condizionali (if-then-else e switch) Iterative, o cicli (while, do e for) Istruzioni di Input/Output (printf, scanf,...) Struttura di un programma C

5 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Massimo Comune Divisore Definizione Dicesi Massimo Comune Divisore (M.C.D.) il piu grande tra i divisori comuni a due o piu numeri Esempi Dati A=12, B=15 Divisori comuni: 1, 3 - MCD=3 Dati A=10, B=30 e C=20 Divisori comuni: 1, 2, 5, 10 - MCD=10 5

6 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: pseudocodice 1.Leggi A e B 2.min= il minimo tra A e B 3.trovato = 0; MCD = min; 4.Finche trovato != 1 1.Se MCD divide A e B 1.Allora trovato = 1 2.Altrimenti MCD = MCD Stampa MCD 6

7 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: diagramma di flusso 7 Inizio Leggi A e B min=minimo{A,B} trovato = 0 MCD=min trovato!=1? MCD divide A e B MCD divide A e B trovato = 1 Stampa MCD Fine no si MCD=MCD -1

8 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Algebra di Boole Algebra di boole a due valori: algebra di commutazione Operazioni logiche Espressioni logiche Assiomi e proprietà dellalgebra di commutazione 8

9 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 9 Lalgebra di Boole (inventata da G. Boole, britannico, seconda metà 800), o algebra della logica, si basa su operazioni logiche Le operazioni logiche sono applicabili a operandi logici, cioè a operandi in grado di assumere solo i valori vero e falso Si può rappresentare vero con il bit 1 e falso con il bit 0 (convenzione di logica positiva) Cenni allalgebra di Boole

10 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra Booleana: definizione Algebra Booleana B è un sistema algebrico identificato dalla sestupla (B,+,*,,0,1) dove: B è l'insieme su cui vengono definite le operazioni (supporto) +, *, sono le operazioni binarie OR e AND e loperazione unaria NOT 0, 1 sono elementi speciali di B. 0 è lelemento neutro rispetto a + 1 è lelemento neutro rispetto a * Assiomi

11 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra Booleana a due valori: Algebra di Commutazione Tra tutte le algebre booleane, l'algebra booleana a due valori è la più utile. Essa è la base matematica della analisi e progetto di circuiti di commutazione che realizzano i sistemi digitali. [Lee, S.C., Digital Circuit And Logic Design. Englewood Cliffs, NJ: Prentice-Hall, 1976]

12 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 12 Operatori logici binari (con 2 operandi logici) Operatore OR, o somma logica Operatore AND, o prodotto logico Operatore logico unario (con 1 operando) Operatore NOT, o negazione, o inversione Poiché gli operandi logici ammettono due soli valori, si può definire compiutamente ogni operatore logico tramite una tabella di associazione operandi-risultato Operazioni logiche fondamentali

13 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le variabili dellalgebra booleana a due valori possono assumere solo i due valori 0 e 1 precisamente, se x indica una variabile, è x = 0 se e solo se x 1 x = 1 se e solo se x 0 Algebra Booleana a due valori: ({0,1},+,*,,0,1) dove + (OR) e * (AND) sono definiti come Mentre loperazione a un solo elemento (unary operation) detta complementazione o negazione ( NOT ) è definita come Nota: il simbolo associato al NOT è spesso indicato come (esempio x ), ! (esempio !x ) o sopra segnando la variabile * Operazioni logiche fondamentali

14 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 14 Operatori logici di base e loro tabelle di verità A B A and B (prodotto logico) A B A or B (somma logica) A not A (negazione) Le tabelle elencano tutte le possibili combinazioni in ingresso e il risultato associato a ciascuna combinazione

15 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Pausa 5 15 George Boole

16 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 16 Come le espressioni algebriche, costruite con: Variabili logiche (letterali): p. es. A, B, C 0 oppure 1 Operatori logici: and, or, not Esempi: A or (B and C) (A and (not B)) or (B and C) Precedenza: loperatore not precede loperatore and, che a sua volta precede loperatore or A and not B or B and C (A and (not B)) or (B and C) Per ricordarlo, si pensi OR come (più), AND come (per) e NOT come (cambia segno) Espressioni logiche (o Booleane)

17 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE A and B or not C A B C X = A and B Y = not C X or Y and 0 = 0 not 0 = 1 0 or 1 = and 0 = 0 not 1 = 0 0 or 0 = and 1 = 0 not 0 = 1 0 or 1 = and 1 = 0 not 1 = 0 0 or 0 = and 0 = 0 not 0 = 1 0 or 1 = and 0 = 0 not 1 = 0 0 or 0 = and 1 = 1 not 0 = 1 1 or 1 = and 1 = 1 not 1 = 0 1 or 0 = 1 Tabella di verità di unespressione logica

18 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 18 A B NOT ((A OR B) AND (NOT A)) A B C ( B OR NOT C) AND (A OR NOT C) Due esercizi

19 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Vero e falso in C In C non esiste un tipo di dato specico per rappresentare i concetti vero e falso Una condizione assume un valore intero pari a 0 se la condizione è falsa 1 se la condizione è vera In generale, ogni valore diverso da zero è considerato vero ( 3 ) VERO ( 1 ) VERO ( a – a ) FALSO 19

20 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEProblema Si scriva un programma in C che, dato un numero, dica se questo è positivo o negativo 20

21 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONESoluzione 1. Si inserisca N 2. N è maggiore di 0? Vero: N è positivo Falso: N non è positivo 21

22 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 22 In C: positivo int main() { int n; printf (Inserisci un numero\n"); scanf ("%d", &n ); if ( n > 0 ) printf ("Un numero positivo ! \n"); else printf ("Un numero negativo o nullo\n"); printf ("Fine del programma\n"); return 0; } condizione

23 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: caratteri MaIuScOli Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video lequivalente maiuscolo 23

24 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: esecuzione 24

25 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE HELP: errori sullinput 25

26 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: errori sullinput Problema Preso un dato inserito da tastiera Per potervi applicare la trasformazione di nostro interesse Dobbiamo prima verificare che il dato sia coerente con quanto ci aspettiamo Soluzione Definire linsieme dei caratteri validi Verificare lappartenenza del carattere inserito, allinsieme dei caratterei validi 26

27 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEPseudocodice Dati Linsieme dei caratteri ammissibili {a, b, c, …, z} 1. Richiedere linserimento di un carattere 2. Se carattere inserito corretto 3. Allora stampa a video carattere Altrimenti stampa a video un messaggio di errore 27

28 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Dati Linsieme dei caratteri ammissibili {a, b, c, …, z} Il carattere inserito deve essere =>a <= z 28

29 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: solo if 29

30 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Pausa 10 30

31 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere X: =>a Y: <= z X e Y devono essere entrambe vere 31 X Y X and Y (prodotto logico)

32 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: AND 32

33 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: codice ottimizzato 33

34 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: esecuzione 34

35 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 35 A modellare alcune (non tutte) forme di ragionamento A è vero che 1 è maggiore di 2 ? (sì o no, qui è no) 0 B è vero che 2 più 2 fa 4 ? (sì o no, qui è sì) 1 A and B è vero che 1 sia maggiore di 2 e che 2 più 2 faccia 4 ? Si ha che A and B 0 and 1 0, dunque no A or B è vero che 1 sia maggiore di 2 o che 2 più 2 faccia 4 ? Si ha che A or B 0 and 1 1, dunque sì OR, AND e NOT vengono anche chiamati connettivi logici, perché funzionano come le congiunzioni coordinanti o ed e, e come la negazione non, del linguaggio naturale Si modellano ragionamenti (o deduzioni) basati solo sulluso dio, e e non (non è molto, ma è utile) A che cosa servono le espressioni logiche?

36 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 36 Le espressioni logiche (booleane) non modellano: Domande esistenziali: cè almeno un numero reale x tale che il suo quadrato valga 1 ? (si sa bene che non cè) x | x 2 1 è falso Domande universali: ogni numero naturale è la somma di quattro quadrati di numeri naturali ? (si è dimostrato di sì) x | x a 2 b 2 c 2 d 2 è vero (teorema dei 4 quadrati) Più esattamente andrebbe scritto: x a,b,c,d | x a 2 b 2 c 2 d 2 e sono chiamati operatori di quantificazione, e sono ben diversi da or, and e not La parte della logica che tratta solo degli operatori or, and e not si chiama calcolo proposizionale Aggiungendo gli operatori di quantificazione, si ha il calcolo dei predicati (che è molto più complesso) Che cosa non si può modellare tramite espressioni logiche?

37 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 37 Tautologia Una espressione logica che è sempre vera, per qualunque combinazione di valori delle variabili Esempio: principio del terzo escluso: A or not A (tertium non datur, non si dà un terzo caso tra levento A e la sua negazione) Contraddizione Una espressione logica che è sempre falsa, per qualunque combinazione di valori delle variabili Esempio: principio di non contraddizione: A and not A (levento A e la sua negazione non possono essere entrambi veri) Tautologie e Contraddizioni

38 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 38 Due espressioni logiche si dicono equivalenti (e si indica con ) se hanno la medesima tabella di verità. La verifica è algoritmica. Per esempio: A B not A and not B not (A or B) and 1 = 1 not 0 = and 0 = 0 not 1 = and 1 = 0 not 1 = and 0 = 0 not 1 = 0 Espressioni logiche equivalenti modellano gli stessi stati di verità a fronte delle medesime variabili Equivalenza tra espressioni

39 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 39 Proprietà dellalgebra di Boole Lalgebra di Boole gode di svariate proprietà, formulabili sotto specie di identità cioè formulabili come equivalenze tra espressioni logiche, valide per qualunque combinazione di valori delle variabili

40 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra Booleana a due valori: Assiomi Gli operatori descritti godono delle proprietà definite dai seguenti assiomi (postulati di Huntington): Le operazioni di disgiunzione (+) e congiunzione (·) sono commutative, cioè per ogni elemento a,b B a+b = b+a a·b = b·a Esiste un elemento neutro (o identità) rispetto a + (indicato con 0) e un elemento neutro rispetto a · (indicato con 1), cioè: a+0=a a·1=a Le due operazioni sono distributive rispetto allaltra, cioè per ogni a,b,c B, risulta: a+(b·c)=(a+b)·(a+c) a·(b+c)=(a·b)+(a·c) Per ogni a B esiste lelemento a B, detto negazione logica o complemento di a, tale che: a+a =1 a·a =0 Vale per la somma rispetto al prodotto come per il prodotto rispetto alla somma – non esiste precedenza fra le due operazioni, occorre sempre immaginare le parentesi sottintese intorno a ogni applicazione di unoperazione.

41 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Commutazione: Proprietà 1 1: associativa a+(b+c)=(a+b)+c a*(b*c)=(a*b)*c 2: idempotenza a+a=a a*a=a 3: elemento nullo a+1=1 a*0=0 4: unicità elemento inverso: il complemento di a, a, è unico 5: assorbimento a+(a*b)=a a*(a+b)=a

42 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE : Semplificazione a+ab = a+b a*(a+b) = a*b 7: involuzione ((a)) = a 8: Leggi di De Morgan (a+b) = a*b (a*b) = a+b 9: consenso a*b+a*c+b*c = a*b + a*c (a+b)*(a+c)*(b+c)=(a+b)*(a+c) Algebra di Commutazione: Proprietà 2

43 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 43 Trasformare unespressione logica in unaltra, differente per aspetto ma equivalente: not A and B or A (assorbimento) not A and B or (A or A and B) (togli le parentesi) not A and B or A or A and B (commutativa) not A and B or A and B or A (distributiva) (not A or A) and B or A (legge dellelemento 1) true and B or A (vero and B B) B or Aè più semplice dellespressione originale Si può verificare lequivalenza con le tabelle di verità Occorre conoscere unampia lista di proprietà e si deve riuscire a vederle nellespressione (talvolta è difficile) Uso delle proprietà

44 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problemi di fine giornata… Si scriva un programma in C che richiede linserimento di un numero intero positivo, se linserimento e errato ritorna un messaggio di errore Si scriva un programma in C che, dati due caratteri, li ordina in ordine alfabetico inverso 44

45 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed, McGrawHill Capitolo 2 Credits Daniele Braga Cristiana Bolchini htm


Scaricare ppt "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata."

Presentazioni simili


Annunci Google