UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione ed elaborazione automatica dell’informazione Prof. Michele Amoretti Fondamenti di Informatica a.a. 2008/2009 Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Sommario • Codifica dell’informazione • Rappresentazione dell’informazione nei calcolatori - informazioni numeriche - informazioni testuali - suoni - immagini • Algebra booleana Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Codifica dell’informazione Un simbolo è un elemento della comunicazione rappresentante un concetto o quantità (per es. un'idea, un oggetto, una qualità). Un alfabeto è un insieme finito di simboli (diversi tra loro). Es. Alfabeto italiano: {A, B, C, D, …Z} Alfabeto greco: {α, β, γ, δ, ...ω} Alfabeto binario: {0, 1} Una stringa è una sequenza finita di simboli giustapposti. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Codifica dell’informazione Un codice è un insieme di regole che mettono in corrispondenza biunivoca ogni simbolo appartenente ad un alfabeto più ricco con una stringa di simboli appartenente ad un alfabeto più ridotto. Per codifica si intende il processo di trasformazione dell’informazione secondo le regole definite da un certo codice. La decodifica è il processo inverso. Es. Codice Morse Definisce la corrispondenza tra un insieme di stringhe di simboli nell’alfabeto {., _} e l’insieme dei simboli dell’alfabeto inglese. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione dell’informazione nei calcolatori I calcolatori elettronici sono macchine complesse in grado di elaborare velocemente grandi quantità di informazione, ma per farlo richiedono che l’informazione sia espressa secondo un qualche codice che utilizzi i simboli dell’alfabeto più semplice di tutti, quello binario. Perchè? Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione dell’informazione nei calcolatori .. perché dal punto di vista della progettazione e realizzazione circuitale è più conveniente elaborare segnali digitali a 2 livelli, piuttosto che segnali digitali a M>2 livelli o segnali analogici. La figura confronta un segnale analogico e un segnale digitale. Nel primo l’informazione è contenuta nella forma stessa del segnale, mentre nel secondo è contenuta nella particolare sequenza di bit che esso realizza. Nel seguito vedremo come si esprimono informazioni di vario tipo in termini di simboli binari, e come si elaborano. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione dell’informazione nei calcolatori L'unità atomica è il bit – simbolo b. L'insieme di 8 bit è detto byte – simbolo B. 210 B = 1 KB (kilobyte) 220 B = 1 MB (megabyte) 230 B = 1 GB (gigabyte) La memoria dei calcolatori è divisa in celle la cui dimensione W è ormai standard ed è proprio pari a 1 byte. Multipli del byte sono: word (16 bit) double-word (32 bit) quad-word (64 bit) Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione binaria di informazioni numeriche Il calcolatore, come dice il nome stesso, è una macchina che calcola. Qualsiasi informazione in ingresso viene ricondotta a informazione di tipo numerico, su cui il processore (che è il cuore del calcolatore) svolge operazioni aritmetiche. Un processore “a N bit” è in grado di elaborare numeri interi compresi tra 0 e 2N-1 (o tra -2N-1 e 2N-1-1). Di solito N è un multiplo di 8. I processori più potenti oggi sono a 64 bit. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Richiamo su numeri e sistemi di numerazione Numero: descrizione quantitativa degli oggetti contenuti in un dato insieme. Sistema di numerazione: insieme di simboli e regole atti a rappresentare i numeri. Numerazione posizionale: ogni cifra assume un valore che dipende dalla posizione (peso) nella stringa numerica. Es. sistema posizionale decimale 1475 = 1x103 + 4x102 + 7x101 + 5x100 In generale, dato un numero B≥2 detto base e l’insieme β composto da B simboli diversi, β={0,1,2,…,B-1}, si possono scrivere stringhe di n cifre (ciascuna in β) Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Conversione di base Da base B a base 10: (cn-1cn-2…c1c0)B = (cn-1xBn-1 + cn-2xBn-2 +…+ c1xB1 + c0xB0)10 Da base B=2 (sistema binario) a base 10: 100112 = 1x24 + 0x23 + 0x22 + 1x21 + 1x20 = 1910 Da base B=16 (sistema esadecimale) a base 10: 2216 = 2x161 + 2x160 = 3410 Da base B=8 (sistema ottale) a base 10: 4178 = 4x82 + 1x81 + 7x80 = 27110 Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Conversione di base Da base 10 a base 2: ripeti dividere per 2 il numero in base 10 - il resto è ci (i=0,…,n-1) - il quoziente è il nuovo dividendo fino a che l’ultimo quoziente ottenuto non è più divisibile. Es. 3510: (17,1)(8,1)(4,0)(2,0)(1,0)(0,1) 1000112 Da base Bk a base B: reinterpretare la stringa cn-1cn-2…c1c0 in base Bk, sostituendo a ciascun ci della base Bk la corrispondente rappresentazione in base B. Es. 1AB0716 = (0001 1010 1011 0000 0111)2 Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Aritmetica binaria Somma: come nel sistema decimale, da destra verso sinistra, tenendo conto dei riporti. 0+0=0 0+1=1 1+0=1 1+1=0 con riporto di 1 Sottrazione: come nel sistema decimale, da destra verso sinistra, tenendo conto dei prestiti. 0-0=0 0-1=1 con prestito di 1 1-0=1 1-1=0 Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Aritmetica binaria Moltiplicazione: come nel sistema decimale, si calcolano i prodotti parziali e l’esecuzione della loro somma. 0×0=0 0×1=0 1×0=0 1×1=1 Divisione: come nel sistema decimale, si procede per sottrazioni tra parti del dividendo e del divisore. 0/0 indefinito 0/1=0 1/0 errore 1/1=1 Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Numeri binari negativi Rappresentazione in modulo e segno: il bit più significativo rappresenta il segno del numero (1 sta per negativo, 0 per positivo). Rappresentazione in complemento a 1: il cambiamento di segno viene ottenuto complementando ciascun bit. Rappresentazione in complemento a 2: il cambiamento di segno viene ottenuto complementando a 1 e aggiungendo 1. In genere si adotta quest’ultima perché non introduce la doppia rappresentazione dello zero (+0 e -0) e perché consente di effettuare le sottrazioni come se fossero delle somme. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Numeri binari negativi Es. Usando 3 bit e la notazione in complemento a 2 si possono rappresentare i seguenti numeri: (3 – 2)10 è 011 + 110 = 001 Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Numeri in virgola fissa La stringa cn-1cn-2…c1c0 ,c-1c-2…c-m è composta da una parte intera (a sinistra della virgola) e da una parte frazionaria (a destra della virgola). Conversione della parte frazionaria da base B a base 10: c-1xB-1 + c-2xB-2 +…+ c-mxB-m Conversione della parte frazionaria da base 10 a base 2: ripeti moltiplicare per 2 il numero in base 10 - la parte intera del risultato è ci (i=-1,…,-m) - la parte frazionaria del risultato è il nuovo moltiplicando fino a che la parte frazionaria risulta 0. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Numeri in virgola fissa Es. Conversione di 5,7510 Parte intera: 510 1012 Parte frazionaria: 0,75*2 = 1,5 la prima cifra binaria dopo la virgola è 1 0,5*2 = 1,0 la seconda cifra dopo la virgola è 1 Quindi 5,7510 101,112 Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Numeri in virgola mobile Usando la cosiddetta notazione in virgola mobile (floating point) o scientifica, un numero viene espresso da tre elementi: B (base) E (esponente) M (mantissa) M×BE Questo metodo di scrittura permette di rappresentare un larghissimo insieme numerico all'interno di un determinato numero di cifre, cosa che la virgola fissa non concede. Es. 5,7510 si scrive 5,75×100, o meglio ancora .575×101 Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Numeri in virgola mobile Es. Usando la notazione scientifica normalizzata, in base B=2, è il numero 5,7510 diventa: +.10111 × 2+3 Con 16 bit, si potrebbe usare la seguente rappresentazione: Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Numeri in virgola mobile Forma normalizzata: • si sceglie di avere la seguente relazione: 0 ≤ M < 1 • l’esponente è espresso in complemento a B • la mantissa è espressa in modulo e segno Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Standard IEEE-754/85 Singola precisione (n=32 bit): Il segno è 0 per il + e 1 per il – La mantissa di 23 bit è in notazione normalizzata implicita, cioè si intende 0,{i 23 bit della mantissa} L’esponente di 8 bit è in notazione polarizzata (biased) con costante di polarizzazione (bias) pari a 127; in dettaglio: 00000000 00000001 … 01111111 … 11111110 11111111 config. riservata è -126 è0 è +127 config. riservata Doppia precisione (n=64 bit): come sopra ma con 52 bit per la mantissa e 11 bit per l’esponente, con bias pari a 1023. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Limiti della rappresentazione binaria di numeri decimali Attenzione! Certi numeri che in base 10 hanno una quantità finita di cifre dopo la virgola, potrebbero averne una quantità infinita se convertiti in un’altra base, e in particolare nella base 2. Es. 0,110 0,0001100110011..2 I processori possono gestire operandi di dimensione limitata, per cui effettuano dei troncamenti quando i numeri decimali hanno rappresentazione binaria con troppe cifre dopo la virgola. E’ possibile quindi che poi la riconversione in decimale non dia il risultato atteso. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione binaria di informazioni testuali Per rappresentare dati testuali in binario, il sistema assegna a ciascuna lettera o simbolo stampabile un numero univoco, quindi memorizza internamente tale simbolo usando l’equivalente binario del numero. Es. Simbolo, valore decimale, valore binario A, 0, 00000000 B, 1, 00000001 C, 2, 00000010 D, 3, 00000011 .. .. .. Z, 26, 00011010 .. .. .. @, 128, 10000000 .. .. .. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Codifica ASCII American Standard Code for the Interchange of Information Codifica che usa 8 bit per ciascun simbolo alfanumerico, ma il bit più significativo è sempre a 0 perché in origine la codifica era a 7 bit. Quindi si hanno 128 possibili simboli (ASCII standard). Usando anche il bit più significativo si hanno 256 possibili simboli (ASCII esteso). Alcuni simboli non sono stampabili, ma sono caratteri di controllo usati soprattutto nei protocolli di comunicazione. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Codifica UNICODE Sta guadagnando popolarità perché usa 16 bit per ciascun carattere, il che significa che può rappresentare 216 = 65536 caratteri univoci contro invece dei soli 28 = 256 dell’ASCII esteso. Questo è particolarmente importante in un mondo che è sempre più globalizzato, grazie alle reti informatiche e in particolare al Web. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione binaria di suoni Il suono è una informazione di tipo analogico. Una singola nota è una forma d’onda sinusoidale con una certa ampiezza (che rende conto dell’intensità con cui viene suonata a nota) e un certo periodo (il cui inverso, la frequenza, caratterizza la nota in modo univoco – do piuttosto che fa, ecc. e con quale “altezza”). Un suono complesso è dato dalla sovrapposizione di molteplici forme d’onda. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione binaria di suoni Il microfono traduce il suono in un segnale analogico che per essere memorizzato (e quindi elaborato) da un calcolatore elettronico deve essere digitalizzato. Vengono presi dei campioni del segnale analogico, a intervalli regolari. La sequenza dei valori numerici campionati viene memorizzata nel calcolatore come sequenza di stringhe binarie. Viceversa, a partire da valori numerici è possibile generare un segnale analogico. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione binaria di immagini Un’immagine è una serie continua di valori di intensità e colore, e può essere digitalizzata campionando le informazioni analogiche, esattamente come accade per il suono. Il processo di campionamento, definito spesso scansione, consiste nella misurazione dei valori di intensità di punti distinti situati a intervalli regolari su tutta la superficie dell’immagine. Questi punti sono chiamati pixel, dall’inglese “picture elements”; maggiore è il numero di pixel utilizzati, più precisa risulta la codifica dell’immagine. Mediamente l’occhio umano non è in grado di distinguere con precisione i componenti separati da meno di 0,1 mm, perciò se i pixel sono sufficientemente densi, appaiono alla vista come una singola immagine contigua. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione binaria di immagini Una fotocamera digitale di buona qualità, per esempio, memorizza circa 6–8 milioni di pixel per fotografia. Per un’immagine da 8 × 12 cm, ciò equivale a circa 60.000 pixel/cm2 o 250 pixel per cm lineare. Ciò significa che i singoli pixel sono separati da circa 0,04 mm, troppo poco perché l’occhio umano possa distinguerli uno per uno. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione binaria di immagini Una delle domande chiave a cui occorre rispondere è quante informazioni vengono memorizzate per ciascun pixel. Supponiamo di voler memorizzare la rappresentazione di un’immagine in bianco e nero. La soluzione più facile ed efficiente in termini di spazio è quella di contrassegnare ciascun pixel come bianco, memorizzato come binario 0, o nero, memorizzato come binario 1. Il solo problema è che in questo modo si produce un’immagine in bianco e nero, molto netta e con contrasto visivo non sempre gradevole. Un modo migliore, anche se richiede più spazio, consiste nel rappresentare le immagini in bianco e nero utilizzando una scala di grigi di intensità variabile. Per esempio, se si utilizzano 3 bit per pixel, è possibile rappresentare 23 = 8 gradazioni di intensità dal livello 0, bianco puro, al livello 7, nero puro. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione binaria di immagini Il formato più comune per la memorizzazione delle immagini a colori è lo schema di codifica RGB, dove RGB è l’acronimo in lingua inglese dei colori rosso, verde e blu (Red, Green, Blue). Questa tecnica descrive uno specifico colore catturando il singolo contributo di un pixel per ciascuno dei tre colori fondamentali: rosso, verde e blu. Comunemente, si utilizza un byte per ciascuno dei 3 colori, il che consente di rappresentare intervalli di intensità da 0 a 255. Es. Magenta RGB: (255,0,255) Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Spazio di memorizzazione richiesto Un romanzo di 300 pagine contiene circa 100000 parole. Ciascuna parola è costituita in media da cinque caratteri e ogni carattere può essere codificato nel set di codici ASCII usando 8 bit. Così, il numero totale di bit necessario a rappresentare questo libro è all’incirca: 100000 parole × 5 car/parola × 8 bit/car = 4 Mbit A titolo di confronto, 1 minuto di registrazione audio codificata in standard MP3, che esegue il campionamento 44100 volte al secondo con profondità di 16 bit per campione, richiede: 44100 campioni/sec × 16 bit/campione × 60 sec/minuto = 42 Mbit Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Algebra booleana L’elaborazione dell’informazione affonda le sue radici nella logica, che è la scienza delle regole e delle leggi del pensare. 0/1 falso/vero La logica è alla base di ogni argomentazione. I greci riconobbero per primi il suo ruolo nella matematica e nella filosofia e si dedicarono al suo studio con grande impegno e con notevoli risultati. Risalgono infatti a filosofo greco Aristotele (384, 322 a.C.) i primi studi seri in questo campo. Nelle sue opere, raccolte sotto il titolo Organon, scrisse il primo trattato sistematico di logica. La sua opera ebbe una notevole influenza, non sempre positiva, in tutti i campi del sapere per parecchi anni fino a tutto il Medioevo. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Algebra booleana Ma essendo la logica di Aristotele espressa nel linguaggio naturale, ne conservava tutte le ambiguità. Solo nel 17esimo secolo, con Leibniz, i filosofi iniziarono ad esprimere le regole del ragionamento per mezzo di un formalismo simbolico. Fu nel 1847 con la pubblicazione dei testi “Analisi matematica della logica” di George Boole e “Logica Formale” di Augustus De Morgan che si cominciò a parlare di logica simbolica e che la logica cominciò a far parte integrante della matematica. Con Boole e DeMorgan, la logica e la matematica divennero strettamente intrecciate. La logica è da allora considerata parte della matematica, ma alla stesso tempo ne costituisce il linguaggio. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Algebra booleana L’algebra booleana definisce le regole di manipolazione dei due valori logici vero e falso. L’algebra booleana è utilizzata in molti campi del sapere, ad esempio nella progettazione dei circuiti logici (che sono alla base dei calcolatori), nella teoria degli insiemi, nel calcolo proposizionale, ecc. Le regole dell’algebra Booleana vengono utilizzate nella scrittura di algoritmi e programmi, perché questi sono modelli formali di procedure mentali o manuali umane che si vuole vengano riprodotte da una macchina. G. Boole - Mathematical Analysis of Logic (1847) La logica va collegata alla matematica e non alla metafisica. Si costruisce un sistema formale e solo successivamente si assegna ad esso una interpretazione nel linguaggio comune. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Algebra booleana L’algebra booleana consiste di: - un insieme K i cui elementi possono assumere solo i valori 0 e 1 - due funzioni {+, } che fanno corrispondere a una qualsiasi coppia di elementi in K un elemento in K - una funzione {¯} tali per cui valgono i seguenti assiomi: 1. K contiene al minimo due elementi a e b, tali che a b 2. Chiusura: Per ogni a e b in K: a+b K, a• b K 3. Proprietà commutativa: a+b = b+a, a • b = b • a 4. Proprietà associativa: (a + b) + c = a + (b+c) = a+ b+c a • (b • c) = (a • b) • c = a • b • c Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Algebra booleana 5. Identità: Esiste un elemento identità rispetto a {+}, tale che a + 0 = a, per ogni a K Esiste un elemento identità rispetto a {• }, tale che a • 1 = a, per ogni a K 6. Proprietà distributiva: a + (b • c) = (a + b) • (a + c) a • (b + c) = (a • b) + (a • c) 7. Elemento inverso: per ogni a K esiste un elemento a K tale che (a + a) = 1 e (a • a) = 0 Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Algebra booleana 8. Dualità: scambiando somme con prodotti e 0 con 1 il valore di verità di un proposizione non cambia Teoremi: 1. Idempotenza: a+a=a a•a=a 2. Elementi forzanti: a+1=1 a•0=0 3. Assorbimento: a + (a • b) = a (a+b) • a = a Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Algebra booleana 4. Teorema di De Morgan: a1+a2+ .. +an = a1 · a2 · .. · an Dimostrazione per induzione: I) a1+a2 = a1 · a2 si dimostra per induzione perfetta II) se vale a1+a2+ .. +ak = a1 · a2 · .. · ak per k=n allora vale anche per k=n+1 perché (a1+a2+ .. +an)+an+1 = a1+a2+ .. +an · an+1 = a1 · a2 · .. · an · an+1 Versione duale: a1 · a2 · .. · an = a1 + a2 + .. + an Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Algebra booleana Una funzione logica z f ( x1 , x2 ,..., xn ) è una legge che fa corrispondere a ogni combinazione di valori delle variabili indipendenti x1 , x2 ,..., xn uno e un solo valore binario della variabile z. Può essere espressa in forma algebrica o tabellare. A f(A)=A 1 0 0 1 NOT inversione A B 0 0 1 1 0 1 0 1 f(A,B)=A+B 0 1 1 1 OR somma logica A B 0 0 1 1 0 1 0 1 f(A,B)=A• B 0 0 0 1 AND prodotto logico Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Algebra booleana Altre funzioni ed operatori elementari sono: A B 0 0 1 1 0 1 0 1 EX-OR (XOR) f(A,B)=AB 0 1 1 0 A B 0 0 1 1 0 1 0 1 f(A,B)=A•B A B 0 0 1 1 0 1 0 1 1 1 1 0 f(A,B)=A+B 1 0 0 0 NOR NAND Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Algebra booleana Oltre alle funzioni OR e AND, esistono altre funzioni logiche a due variabili (in tutto sono 16). X Y F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 AND X somma OR aritmetica o EX-OR NOR Rappresentazione ed elaborazione automatica dell’informazione NAND Prof. M. Amoretti UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Algebra booleana Una qualunque funzione logica può essere realizzata utilizzando un numero limitato di funzioni elementari (insieme completo). Sono insiemi completi: NAND, NOR, (AND,NOT), (OR,NOT) Questa proprietà garantisce che l’uso di un limitato numero di funzioni consente di rappresentare una qualunque funzione logica. Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti