Informatica Generale 1 - Esercitazioni Flowgraph, algebra di Boole e calcolo binario

Похожие документы
Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

Sistemi di Numerazione Binaria

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

La codifica. dell informazione

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

1.2f: Operazioni Binarie

La codifica. dell informazione

La codifica binaria. Informatica B. Daniele Loiacono

Rappresentazione dei Dati

Conversione binario-decimale. Interi unsigned in base 2. Esercitazioni su rappresentazione. dei numeri e aritmetica

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Codifica. Rappresentazione di numeri in memoria

Rappresentazione dei Numeri

Lezione 3. I numeri relativi

Calcolatori Elettronici Parte II: Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

Codifica dei Numeri. Informatica ICA (LC) 12 Novembre 2015 Giacomo Boracchi

Rappresentazione in complemento a 2: caratteristiche generali

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

Numeri reali. Notazione scientifica (decimale) Floating Point. Normalizzazione. Esempi. Aritmetica del calcolatore (virgola mobile)

Codifica binaria. Rappresentazioni medianti basi diverse

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Rappresentazione dell Informazione

Rappresentazione e Codifica dell Informazione

Laboratorio di Informatica

Algebra di Boole e porte logiche

Programmazione I Paolo Valente /2017. Lezione 6. Notazione posizionale

Rappresentazione di numeri interi

Numeri interi (+/-) Alfabeto binario. Modulo e segno

Somma di numeri binari

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Aritmetica dei Calcolatori Elettronici

CONVERSIONE BINARIO DECIMALE NB: Convertire in decimale il numero binario N = N =

Rappresentazione dei numeri reali in un calcolatore

Sistemi di numerazione

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Calcolo numerico e programmazione Rappresentazione dei numeri

12BHD - Informatica - soluzioni Appendice B del quaderno di testo - v. 1.05

Rappresentazione dei dati in memoria

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

La codifica digitale

Esercitazione n. 5. Rappresentazione dei numeri

Esercitazione del 09/03/ Soluzioni

Informatica di Base - 6 c.f.u.

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Esercizio 1 (12 punti) Minimizzare il numero di stati dell automa qui rappresentato. Disegnare l automa minimo.

APPUNTI DI INFORMATICA

Numeri frazionari. sistema posizionale. due modi: virgola fissa virgola mobile. posizionale, decimale

Esercizi su Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

Architetture degli Elaboratori I II Compito di Esonero (A) - 16/1/1997

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Corso di Architettura degli Elaboratori

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

I.4 Rappresentazione dell informazione

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Calcolatori: Sistemi di Numerazione

Aritmetica dei Calcolatori

Esercitazione del 2/3/2010- Numeri binari e conversione

Rappresentazione di dati: numerazione binaria. Appunti per la cl. 3 Di A cura del prof. Ing. Mario Catalano

04 Aritmetica del calcolatore

Soluzioni Esercizi su rappresentazione binaria dell informazione

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Modulo e segno Complemento a 1 (CA1) Complemento a 2 (CA2)

Транскрипт:

Informatica Generale 1 - Esercitazioni Flowgraph, algebra di Boole e calcolo binario Daniele Pighin pighin@fbk.eu FBK Via Sommarive, 18 I-38050 Trento, Italy February 27, 2008

Outline 1 Algebra di Boole Funzioni booleane 2 Progettazione di algoritmi Diagrammi di flusso 3 Rappresentazione binaria Numeri naturali Numeri interi (con segno) Numeri reali Rappresentazione in virgola mobile

Funzioni booleane: riepilogo Scopo Ricavare l espressione di una variabile booleana (output) il cui valore di verità è funzione di altre variabili (input). Procedimento 1 Capire il problema (semantica delle variabili di ingresso e di uscita); 2 Scrittura della tabella di verità. Per Ò variabili di input, le dimensioni della tabella sono ¾ Ò Ò + ½ (possibili combinazioni di input numero di variabili [in + out]); 3 Scrittura della forma canonica (somma di prodotti) delle configurazioni di input che soddisfano l output.

Esercizi 1 Siano ¾, ½ e ¾, ½ i bit che rappresentano due numeri interi positivi, rispettivamente e. Sia Ö una variabile booleana che vale 1 se e solo se >. Si scriva la forma canonica di Ö. 2 I signori,,, fanno parte di un consiglio d amministrazione ed hanno, rispettivamente, partecipazioni azionarie del 40%, 25%, 9%, 26%. Descrivere in forma canonica la funzione che decide quando il CdA è in grado di approvare una mozione. 3 Un dispositivo ha quattro sensori di controllo booleani,,,. Scrivere la forma canonica della funzione che attiva il dispositivo se almeno tre dei sensori sono nello stesso stato. 4 Un climatizzatore ha 3 sensori: Ä verifica se è giorno (1) o notte (0); Ì se è caldo (1) o freddo (0); Í se è umido (1) o secco (0). Scrivere la forma canonica della funzione che permette al climatizzatore di attivarsi quando è giorno e fa caldo oppure è notte e c è aria secca.

Soluzione Es. 3 ÓÙØ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ½ ½ ½ ½ ½ ½ ½ ½ ¼ ¼ ¼ ¼ ½ ½ ½ ½ ¼ ¼ ¼ ¼ ½ ½ ½ ½ ¼ ¼ ½ ½ ¼ ¼ ½ ½ ¼ ¼ ½ ½ ¼ ¼ ½ ½ ¼ ½ ¼ ½ ¼ ½ ¼ ½ ¼ ½ ¼ ½ ¼ ½ ¼ ½ ½ ½ ½ ¼ ½ ¼ ¼ ½ ½ ¼ ¼ ½ ¼ ½ ½ ½ ÓÙØ = + + + + + + + + + +

Esercizio 2: osservazione Problema I signori,,, fanno parte di un consiglio d amministrazione ed hanno, rispettivamente, partecipazioni azionarie del 40%, 25%, 9%, 26%. Descrivere in forma canonica la funzione che decide quando il CdA è in grado di approvare una mozione. Domanda Cosa potete osservare? Può essere semplificato il problema?

Algoritmo: definizione Un algoritmo si può definire come un procedimento che consente di ottenere un risultato atteso eseguendo, in un determinato ordine, un insieme di passi semplici corrispondenti ad azioni scelte solitamente da un insieme finito. (fonte: Wikipedia)

Esercizi 1 Leggi una sequenza di numeri naturali e stampane il minimo. La sequenza si ritiene interrotta se viene introdotto un numero negativo o nullo. 2 Leggi una sequenza di numeri naturali e stampane massimo, minimo e media. 3 Leggi un numero naturale N, quindi accetta in ingresso N numeri interi. Stampa massimo, minimo e media degli N interi letti. 4 Leggi un intero che rappresenta un anno e stampa vero se l anno è bisestile, falso altrimenti. Un anno è bisestile se è divisibile per 4 ma non per 100 oppure è divisibile per 400. 5 Leggi una data (gg mm aaaa) e stampa il numero di giorni trascorsi dall inizio dell anno.

Soluzione Es. 3 (con errore) Leggi un numero naturale N, quindi accetta in ingresso N numeri interi. Stampa massimo, minimo e media degli N interi letti.

Soluzione Es. 3 (corretta) Leggi un numero naturale N, quindi accetta in ingresso N numeri interi. Stampa massimo, minimo e media degli N interi letti.

Rappresentazione dei numeri in base 2 Ci sono 10 tipi di persone nell universo: quelli che capiscono il binario e quelli che no. Notazione posizionale (richiami) Rappresentazione in base del numero naturale Æ: Æ = ( Ñ ½ Ñ ¾... ¼ ) = Ñ ½ =¼ con ¼...( ½) Es: (½½½¼¼½) ¾ = ½ ¾ ¼ +¼ ¾ ½ +¼ ¾ ¾ +½ ¾ +½ ¾ +½ ¾ = ½+ +½ + ¾ = Massimo intero rappresentabile con Ñ cifre binarie Æ Ñ Ü = ¾ Ñ ½ (cioè: ¾ Ñ numeri distinti, tra cui lo zero)

Esercizi Convertire: 1 (½¼½¼¼½½¼½½¼½) ¾ in base 10, 8 e 16 2 (½½¼¼½½¼½½½½) ¾ in base 8 3 (½½¼½½¼½½¼½) ¾ in base 16 4 (¾ ) ½¼ in base 2, 8 e 16 5 (½¼¾ ) ½¼ in base 2, 8 e 16 6 ( ) ½ in base 2, 8 e 10

Soluzione Es. 1 Convertire (½¼½¼¼½½¼½½¼½) ¾ in base 10, 8 e 16. Soluzione base 10 espansione in sommatoria: (½¼½¼¼½½¼½½¼½) ¾ = (¾ ¼ + ¾ ¾ + ¾ + ¾ + ¾ + ¾ + ¾ ½½ ) ½¼ = ¾ ½¼ base 8 raggruppamenti ( = ¾ ): (½¼½¼¼½½¼½½¼½) ¾ = (½¼½ ¼¼½ ½¼½ ½¼½) ¾ = ( ½ ) verifica: ( ½ ) = ( ¼ + ½ + ½ ¾ + ) ½¼ = ( + + + ½¾) ½¼ = ¾ ½¼ base 16 raggruppamenti (½ = ¾ ): (½¼½¼¼½½¼½½¼½) ¾ = (½¼½¼ ¼½½¼ ½½¼½) ¾ = (½¼ ½ ) ½ = ( ) ½

Soluzione Es. 4 Convertire (¾ ) ½¼ in base 2, 8 e 16. Soluzione base 2 divisioni successive: ¾ : ¾ = ½¾ + ¼ bit meno significativo, ¼ ½¾ : ¾ = + ½ : ¾ = ½ + ½ ½ : ¾ = ½ + ½ ½ : ¾ = + ½ : ¾ = + ½ : ¾ = ½ + ½ ½ : ¾ = ¼ + ½ bit più significativo, condizione di uscita (¾ ) ½¼ = (½½½½½½½¼) ¾ 8 e 16 raggruppamenti.

Complemento a 2 Riepilogo Permette di rappresentare numeri con segno. Vantaggi rispetto al complemento a 1 e alla notazione in modulo e segno: una sola rappresentazione per lo 0 (compattezza); facilita le operazioni di somma algebrica; non causa problemi di overflow (entro i limiti di rappresentabilità). Con Ñ cifre Avendo a disposizione Ñ cifre e quindi ¾ Ñ diverse combinazioni: ¾ Ñ ½ per gli interi positivi e lo zero Æ Ñ Ü = ¾ Ñ ½ ½; ¾ Ñ ½ per gli interi negativi Æ Ñ Ò = ½ ¾ Ñ ½ ;

Attenzione all Overflow! Si hanno problemi di overflow quando il risultato di un operazione non è rappresentabile con i bit a disposizione; Ci può essere overflow quando: si sommano due numeri positivi: riporto sul bit di segno ma non al di fuori (il risultato è negativo!) ¼½½½ + ¼½½½ = (0)½½½¼ Es: + = -2 14 non è rappresentabile, Æ Ñ Ü = si sommano due numeri negativi: riporto fuori dal bit di segno ma non sul bit di segno (il risultato è positivo!) ½¼¼½ + ½¼½¼ = (1)¼¼½½ Es: + = 3-13 non è rappresentabile, Æ Ñ Ò = Non ci può essere overflow se gli operandi sono rappresentabili e di segno opposto.

Complemento a 2 (cont.) Esempio: Ñ =. Rappresentare ½¾ ½¼ in complemento a 2. Limiti di rappresentabilità: Æ Ñ Ü = ¾ ½ = ½ Æ Ñ Ò = ½ ¾ = ¾ Precedimento: 1 ½¾ ½¼ = ¼¼½½¼¼ ¾ 2 calcolo del complemento ad 1 (inversione di tutti i bit): ¼¼½½¼¼ ½½¼¼½½ ½½¼¼½½ + 3 aggiunta di 1: ¼¼¼¼¼½ = ½½¼½¼¼ Verifica: ¼¼½½¼¼ + ½½¼½¼¼ = = ¼ ½¼

Complemento a 2 (cont.) Interpretazione decimale di numeri in complemento a 2 Sia Æ ¾ = ( Ñ ½... ¼ ) un numero binario di Ñ cifre in complemento a 2. Per la sua interpretazione decimale Æ ½¼ : Infatti: se Ñ ½ = ¼ il numero è positivo e vale Æ ½¼ = Ñ ¾ =¼ ¾. Es: ¼½¼¼½ = (½ + ) ½¼ = ½¼ se Ñ ½ = ½ il numero è negativo e vale Æ ½¼ = Æ Ñ Ò + Ñ ¾ =¼ ¾. Es: ½½¼¼½ = ( ½ + ½ + ) ½¼ = ½¼ ¼½¼¼½ + ½½¼¼½ = = ¾ ½¼ = ( ) ½¼

Esercizi Eseguire, rappresentando addendi e risultato in complemento a 2, le seguenti somme algebriche per Ñ =, Ñ =, Ñ =. Discutere la rappresentabilità degli addendi e dei risultati ottenuti e riportare in forma decimale i risultati. 1 2-16 2 16-2 3 12 + 6 4 5-16 5 15-16 6-15 - 16 7 31-32 8 32-64

Soluzione Es. 1 Eseguire la somma algebrica (¾ ½ ) rappresentando i numeri in complemento a due con Ñ =, Ñ =, Ñ =. Ñ = Æ Ñ Ü = ¾ ½ = ½ ; Æ Ñ Ò = ½ ¾ = ½ ; entrambi gli operandi sono rappresentabili. ¾ ½¼ = (¼¼¼½¼) ¾ ½ ½¼ (½¼¼¼¼) ¾ (½ ½¼ ) ¼½½½½ (complemento ad 1) ½¼¼¼¼ (complemento a 2) N.B.: le rappresentazioni di 16 e -16 sono coincidenti. L interpretazione corretta (-16) è coerente con il fatto che solo i numeri negativi iniziano con 1. ¼¼¼½¼ + Svolgimento della somma: ½¼¼¼¼ = ½¼¼½¼ = ( ½ + ¾) ½¼ = ½ ½¼

Soluzione Es. 3 Eseguire la somma algebrica (½¾ + ) rappresentando i numeri in complemento a due con Ñ =, Ñ =, Ñ =. Ñ = Æ Ñ Ü = ¾ ½ = ½ ; Æ Ñ Ò = ½ ¾ = ½ ; entrambi gli operandi sono rappresentabili. ½¾ ½¼ = (¼½½¼¼) ¾ ½¼ = (¼¼½½¼) ¾ ¼½½¼¼ + Svolgimento della somma: ¼¼½½¼ = 1¼¼½¼ = ( ½ + ¾) ½¼ = ½ ½¼ Overflow! Infatti ½¾ + = ½ > Æ Ñ Ü non è rappresentabile con Ñ =. (Riporto sul bit di segno ma non al di fuori di esso.)

Numeri decimali Anche le parti decimali dei numeri possono essere rappresentate usando codifica binaria: (¼.)¼¼½¼¼½ ¾ = ½ ¾ + ½ ¾ = ½ + ½ = ¼.½ ¼ ¾ ½¼ La precisione della rappresentazione indica la minima differenza tra due numeri che può essere codificata e dipende dal numero di bit impiegati. Es: se si usano Ñ = bit, la precisione é ½ = ¼.¼ ¾. ¾ Da decimale a binario: moltiplicazioni successive Es: Rappresentare con Ñ = la parte decimale 0.265. ¼.¾ ¾ = ¼, bit più significativo, ½ ¼. ¾ = ½, ¼ ¼.¼ ¾ = ¼, ½¾ ¼.½¾ ¾ = ¼, ¾ bit meno significativo, ¼.¾ ½¼ (¼.)¼½¼¼ ¾

Numeri decimali (cont.) L algoritmo termina: quando la parte decimale del prodotto è nulla (rappresentazione esatta); quando si esauriscono le posizioni decimali disponibili (rappresentazione approssimata). Errore di approssimazione E la misura della differenza tra il numero reale e la sua approssimazione finita. Nel nostro esempio: ¼.¾ ½¼ (¼.)¼½¼¼ ¾ = ½ ¾ ¾ = ½ = ¼.¾ Errore = ¼.¾ ¼.¾ = ¼.¼½.

Esercizi Calcolare la rappresentazione binaria delle seguenti estensioni decimali utilizzando 4, 6 e 8 bit e calcolare l errore di approssimazione. 1 0,5 2 0,55 3 0,556 4 0,003 5 0,08001 6 0,99999

Numeri in virgola mobile Notazione scientifica: ± ½.(Å) ¾ 1 bit per il segno; Ñ bit per l esponente. L esponente è rappresentato in eccesso rispetto a = ¾ Ñ ½ ½: Ñ Ü = (¾ Ñ ½) = ¾ Ñ ½ ¾ Ñ ½ + ½ = ¾ Ñ ½. Ñ Ò = ¼ = (¾ Ñ ½ ½). Ñ Å bit per la mantissa Å. Il bit non nullo più significativo viene sempre omesso.

Virgola mobile: rappresentazione Rappresentare Æ =, ¾ ½¼ con Ñ = e Ñ Å =. Ñ Ü = ¾ ¾ =. Ñ Ò = ¾ ¾ ½ =. = ¾ ¾ ½ =. Base 2: ½¼ = ½¼¼¼ ¾. (¼.)¾ ½¼ = (¼.)¼½ ¾. Normalizzazione: Æ = ½¼¼¼.¼½ ¾ ¾ ¼ = ½.00001 ¾ ¾ 3. Calcolo dell esponente: =. = + = ½¼ = ½½¼ ¾. Quindi: Æ = ½ ½½¼ ¼¼¼¼½¼¼¼ segno esp. mant. Verifica: Esponente: ½½¼ ¾ = ½¼ ; = =. Æ = (½.)¼¼¼¼½ ¾ ¾ = (½¼¼¼.¼½) ¾ = + ¼.¾ =.¾ Il bit di segno è impostato a 1, quindi Æ =.¾.

Esercizi Rappresentare in virgola mobile, usando 4 bit per l esponente e 5 per la mantissa, i seguenti numeri reali. Calcolare l errore di approssimazione, se presente. 1 0.256 2 1,250.76 3 1,650,000 4 23.5678

Soluzione Es. 1 Rappresentare in virgola mobile, usando 4 bit per l esponente e 5 per la mantissa, il numero ¼.¾ e calcolare l eventuale errore. Ñ Ü = ¾ =. Ñ Ò = ¾ ½ =. = ¾ ½ =. Base 2: (¼.)¾ ½¼ = (¼.)¼½¼¼¼¼¼ ¾. Calcolato con moltiplicazioni successive. Mi fermo 5 cifre dopo il primo 1 perché ho 5 bit per la mantissa. Normalizzazione: Æ = ¼.¼½¼¼¼¼¼ ¾ ¾ ¼ = ½.00000 ¾ ¾ -2. Calcolo dell esponente: = ¾. = ¾ + = ½¼ = ¼½¼½ ¾. Quindi: Æ = ¼ ¼½¼½ ¼¼¼¼¼ Verifica: Esponente: ¼½¼½ ¾ = ½¼ ; = = ¾. Æ = ½.¼¼¼¼¼ ¾ ¾ ¾ = (¼.¼½) ¾ = ¼.¾ Errore: ¼.¾ ¼.¾ = ¼.¼¼.