Introduzione ai sistemi informatici 4/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2008 The McGraw-Hill Companies CAPITOLO 2

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione ai sistemi informatici 4/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2008 The McGraw-Hill Companies CAPITOLO 2"

Transcript

1 CAPITOLO 2 Copyright 2008 The McGraw-Hill Companies Esercizi aggiuntivi 1) Quanti bit sono necessari per codificare i numeri interi da 0 a 272? E quanti byte? 2) Quanti bit sono necessari per codificare i numeri interi da -58 a 6315? E quanti byte? 3) Proporre una codifica per rappresentare i mesi dell anno con un alfabeto di 4 simboli 4) La popolazione italiana ammonta a circa 60 milioni di persone. Quanti bit sono necessari per assegnare in modo univoco un valore binario ad ogni persona, rendendo distinguibile la popolazione maschile da quella femminile e i maggiorenni dai minorenni? 5) Con riferimento alla soluzione dell esercizio precedente, è possibile controllare con una singola operazione sui bit e un confronto se una persona è maggiorenne. Come? 6) Eseguire le seguenti operazioni espresse in decimale utilizzando la codifica binaria in complemento a due su 8 bit: , 43-15, , segnalando eventuali condizioni di overflow 7) Eseguire le seguenti operazioni espresse in decimale utilizzando la codifica binaria in complemento a due su 8 bit: (-28), , (-71), (-72) segnalando eventuali condizioni di overflow 8) Indicare qual è il significato della sequenza di cifre a seconda che sia interpretata come un numero in base due, come un numero in base dieci o come un numero in base 16 9) Indicare qual è il significato della sequenza di cifre a seconda che sia interpretata come un numero in base due, come un numero in base dieci o come un numero in base 16 10) Rappresentare in base 7 (ovvero con un alfabeto composto dalle cifre da 0 a 6) i seguenti numeri espressi in base dieci: 49, 14, 145, ) Rappresentare in base 12 (ovvero con un alfabeto composto dai simboli 0, 1,2, 3, 4, 5, 6, 7, 8, 9, A, B) i seguenti numeri espressi in base dieci: 49, 14, 145, ) Proporre una codifica per le attuali 109 province italiane basata sul numero minimo di simboli che permetta la rappresentazione con due cifre 13) Eseguire in binario le seguenti moltiplicazioni espresse in decimale: 45*18, 35*12, 54*16, 12*4. Si osservino con attenzione i risultati e si formulino opportune considerazioni su casi particolari. 14) Eseguire in binario le seguenti moltiplicazioni espresse in decimale: 13*18, 35*17, 50*15, 19*7 15) Eseguire in esadecimale le seguenti addizioni espresse in decimale: , , , Soluzioni 1) 9 (log2(273)=8.09); 2. 2) 13 (log2(6374)=12.64); 2. 3) Detti i simboli A, B, C e D è necessaria una sequenza di 2 simboli per rappresentare 4^2=16 valori, più che sufficienti per rappresentare i mesi dell anno (una scelta assolutamente arbitraria può essere: AA per gennaio, AB per febbraio, AC per marzo, AD per aprile, BA per maggio, BB per giugno, BC per luglio, BD per agosto, CA per settembre, CB per ottobre, CC per novembre, CD per dicembre) 4) Per rappresentare 60 milioni di valori sono necessari 26 bit (2^26= ), a cui vanno aggiunti un bit per indicare il sesso e uno per indicare la maggiore età, per un totale di 28 bit. In questo modo ad ogni persona corrispondono 4 possibili codici (due dei quali saranno usati durante la vita nel caso della maggior parte della popolazione) che differiscono dei valori dei 2 bit dedicati a sesso e maggiore età 5) E sufficiente una opportuna operazione di AND. Supponendo per fissare le idee che il bit che indica la maggiore età sia l ultimo dei 28 e che per esso il valore 1 indichi i maggiorenni, applicando una operazione di AND al codice della persona e ad una sequenza di 27 zeri seguiti da un 1, il valore a 28 bit risultante sarà composto da 27 zeri (0 AND x = 0, con x indifferentemente

2 Copyright 2008 The McGraw-Hill Companies pari a 0 o 1) e il valore assunto dall ultimo bit del codice della persona (1 AND x = x). A questo punto se il valore numerico della sequenza è maggiore di 0 la persona è maggiorenne. 6) = ; = ; = (overflow); = ) = ; = ; = (overflow); = (overflow) 8) 179; ; ) 215; ; ) E sufficiente applicare alla base 7 quanto noto per la base 2: ad esempio, si può scomporre 49 in 1*7^2 + 0*7^1 + 0*7^0 ottenendo la rappresentazione 100, o si può operare eseguendo divisioni successive per 7 e prendendo i resti dall ultimo al primo ottenuto. Le rappresentazioni in base 7 sono 100, 20, 265, ) Analogamente al caso dell esercizio precedente: 41, 12, 101, ) Per stabilire il numero n dei simboli dell alfabeto con le caratteristiche richieste basta trovare l intero minore il cui quadrato sia strettamente maggiore di 109: se n^2 è maggiore di 109 infatti una rappresentazione su due cifre permette di rappresentare 2^n valori differenti che possono essere associati agli interi da 0 a n^2-1. Si deduce facilmente che il numero di simboli richiesto è 11 e che quindi si può usare ad esempio un alfabeto composto dai simboli 0, 1,2, 3, 4, 5, 6, 7, 8, 9, A. 13) Si adotti l algoritmo per addizioni successive operando cifra per cifra: * = ; * 1100 = ; * = ; 1100 * 100 = Si noti che le moltiplicazioni che hanno come moltiplicatore 2^n si possono eseguire semplicemente aggiungendo in coda al moltiplicando un numero di zeri pari ad n (operazione nota come shift o scorrimento a sinistra). 14) 1101 * = ; * = ; * 1111 = ; * 111 = ) 84 + DA = 15E; 13B + 11 = 14C; 32 + F = 41; D3 = 34A

3 CAPITOLO 3 Copyright 2008 The McGraw-Hill Companies Esercizi aggiuntivi 1) Descrivere con un diagramma di flusso un algoritmo che confronti tra loro due vettori da assumere da tastiera di dimensione da assumere da tastiera e segnali eventuali condizioni di errore e se i due vettori sono uguali o meno. 2) Descrivere con un diagramma di flusso un algoritmo che restituisca la somma dei soli numeri pari contenuti in un vettore noto di dimensione N in posizioni pari. 3) Descrivere con un diagramma di flusso un algoritmo che dati due vettori di interi ordinati ne copi il contenuto in un terzo vettore lasciandolo a sua volta ordinato. 4) Descrivere con un diagramma di flusso un algoritmo che letto un vettore di interi di dimensione N letta da tastiera verifichi se è o no palindromo (ovvero se letto da sinistra verso destra o viceversa appare uguale). 5) Realizzare una macchina di Turing che restituisce sul nastro l AND logico di due sequenze di bit di identica lunghezza inizialmente memorizzate sul nastro 6) Realizzare una macchina di Turing che data una stringa di bit memorizzata sul nastro restituisca un nastro contentente un solo simbolo differente a seconda che la sequenza sia palindroma o meno (ovvero differente se la sequenza letta da sinistra verso destra o viceversa appare uguale o meno) 7) Valutare, utilizzando eventualmente le tabelle della verità, l equivalenza delle seguenti espressioni booleane (in cui!x indica la negazione di X): F1 =!b c +!a b; F2 =!b +!a b; 8) Valutare, utilizzando eventualmente le tabelle della verità, l equivalenza delle seguenti espressioni booleane (in cui!x indica la negazione di X): F1 =!a + a!b; F2 =!a c +!a b + a!b c; 9) Valutare, utilizzando eventualmente le tabelle della verità, l equivalenza delle seguenti espressioni booleane (in cui!x indica la negazione di X): F1 =!ab + a!b +!ac +!a!b!c F2 =!abc + a!bc +!ac +!a!b!c 10) Valutare, utilizzando eventualmente le tabelle della verità, l equivalenza delle seguenti espressioni booleane (in cui!x indica la negazione di X): F1 =!b +!ab F2 =!ab + a!b +!ac +!a!b!c 11) Valutare, utilizzando eventualmente le tabelle della verità, l equivalenza delle seguenti espressioni booleane (in cui!x indica la negazione di X): F1 =!ab +!bc F2 =!ac +!ab + a!bc

4 Copyright 2008 The McGraw-Hill Companies 12) Indicare almeno un espressione booleana che sia equivalente alla tabella della verità riportata di seguito: a b c espressione riga 0 F F F F riga 1 F F T T riga 2 F T F F riga 3 F T T T riga 4 T F F F riga 5 T F T F riga 6 T T F T riga 7 T T T T 13) Indicare almeno un espressione booleana che sia equivalente alla tabella della verità riportata di seguito: a b c espressione riga 0 F F F T riga 1 F F T F riga 2 F T F F riga 3 F T T F riga 4 T F F F riga 5 T F T F riga 6 T T F T riga 7 T T T F 14) Indicare almeno un espressione booleana che sia equivalente alla tabella della verità riportata di seguito: a b c espressione riga 0 F F F T riga 1 F F T T riga 2 F T F F riga 3 F T T T riga 4 T F F T riga 5 T F T F riga 6 T T F T riga 7 T T T T 15) Indicare almeno un espressione booleana che sia equivalente alla tabella della verità riportata di seguito: a b c espressione riga 0 F F F T riga 1 F F T T riga 2 F T F T riga 3 F T T F riga 4 T F F T riga 5 T F T F

5 Copyright 2008 The McGraw-Hill Companies riga 6 T T F F riga 7 T T T T Soluzioni 1) Poiché non è richiesto di memorizzare i due vettori, ma solo di confrontarli e segnalare se sono uguali, è possibile organizzare l algoritmo in 3 fasi: lettura della dimensione (e verifica che sia un intero positivo), lettura del primo vettore (che va necessariamente memorizzato) e lettura degli elementi del secondo controllando in contemporanea l uguaglianza (due vettori sono uguali se contengono gli stesso valori nelle posizioni omologhe).

6 Copyright 2008 The McGraw-Hill Companies inizio leggi N N > 0 NO stampa errore SI i <- i+1 i < N SI leggi v[i] NO leggi k k = v[i] NO stampa diversi SI i <- i+1 SI i < k NO stampa uguali Una soluzione alternativa, ma poco ortodossa, potrebbe leggere i valori dei due vettori alternando elementi del primo e del secondo (senza memorizzare né il primo né il secondo): in realtà questo corrisponderebbe non a leggere due vettori, ma a leggere due sequenze di interi (un vettore viene abitualmente letto in sequenza)

7 2) Copyright 2008 The McGraw-Hill Companies inizio Somma <- 0 i < N NO stampa Somma NO SI v[i] - 2*[v[i]/2] = 0 SI Somma <- Somma + v[i] i <- i + 2 3) inizio j <- 0 k <- 0 Si assumano v1[ ] di dimensione N, v2[ ] di dimensione M, v3[ ] risultato i < N NO j < M NO SI SI NO j < M SI v1[i] < v2[j] NO SI v3[k] <- v1[i] i <- i + 1 v3[k] <- v2[j] j <- j + 1 k <- k+1

8 4) Copyright 2008 The McGraw-Hill Companies inizio leggi N N > 0 NO stampa errore SI i <- i+1 i < N SI leggi v[i] NO i < [N/2] NO stampa ok SI v[i] = v[n - i - 1] NO SI stampa no i <- i+1 5) Si consideri di avere inizialmente sul nastro le due sequenze di bit rappresentate con i consueti simboli 0 e 1 e separate da una locazione vuota (che sarà indicata da *). Una soluzione può essere realizzata sovrascrivendo locazione per locazione la seconda sequenza con il risultato, utilizzando una diversa coppia di simboli per indicare 0 e 1 (rispettivamente F e V), in modo da poter considerare comportamenti diversi della macchina quando la testina legge bit degli operandi e della soluzione. La macchina legge il primo bit residuo del primo operando cancellandolo, procede fino a trovare il primo bit residuo del secondo operando sostituendolo con il risultato della operazione di AND tra i due bit letti e poi torna indietro all inizio della parte residua del primo operando, per ripetere lo stesso comportamento fino a quando si verrà a trovare sulla locazione vuota di separazione. La soluzione proposta termina con la testina posizionata sulla prima locazione occupata dalla soluzione. (Stato iniziale S0, con testina sulla prima locazione del primo operando)

9 Copyright 2008 The McGraw-Hill Companies 0/0/D V/V/D S7 */*/D S0 1/*/D S1 1/1/D */*/D F/F/D S2 1/V/S V/V/S 0/F/S S3 */*/S S4 1/1/S 0/*/D 0/0/D S5 */*/D 0/F/S V/V/D 1/F/S S6 F/F/S 0/0/S 1/1/D F/F/D */*/D Stato Letto Vai a Scrivi Sposta S0 1 S1 * Destra S0 0 S5 * Destra S0 * S7 * Destra S1 1 S1 1 Destra S1 0 S1 0 Destra S1 * S2 * Destra S2 V S2 V Destra S2 F S2 F Destra S2 1 S3 V Sinistra S2 0 S3 F Sinistra S3 V S3 V Sinistra S3 F S3 F Sinistra S3 * S4 * Sinistra S4 1 S4 1 Sinistra S4 0 S4 0 Sinistra S4 * S0 * Destra S5 1 S5 1 Destra S5 0 S5 0 Destra S5 * S6 * Destra S6 V S6 V Destra S6 F S6 F Destra S6 1 S3 F Sinistra S6 0 S3 F Sinistra

10 Copyright 2008 The McGraw-Hill Companies S ) Si supponga di usare gli usuali simboli 0 e 1 per memorizzare su nastro la stringa di bit. Una possibile soluzione consiste nel realizzare una macchina che legge e cancella la prima locazione della stringa memorizzandone il contenuto nello stato, percorre tutta la stringa, torna indietro confrontando l ultima locazione con lo stato ed a questo punto o cancella la locazione se contiene lo stesso simbolo della prima e ritorna alla nuova prima locazione della stringa, scrivendo 1 sul nastro e riposizionandosi sulla locazione prima dell 1 se non ci sono altri simboli da processare, o in caso contrario interrompe le operazioni scrivendo 0 sulla locazione corrente cancellando tutte le altre locazioni per poi riposizionarsi prima dello 0. La soluzione proposta quindi restituisce un nastro contenente un solo simbolo 0 o 1 nella locazione immediatamente a destra di quella dove è posizionata la testina nello stato finale. (Stato iniziale S0, con testina sulla prima locazione della stringa) 0/0/D */1/S S6 */1/S S0 0/*/D S1 1/1/D */*/D */*/S 0/0/S S5 S2 0/*/S 1/0/S S7 1/*/S */*/D S8 0/0/S 1/*/D 0/0/D S3 1/1/S */*/S 1/*/S S4 0/0/S 0/*/S */*/D 1/1/D */1/S Stato Letto Vai a Scrivi Sposta S0 1 S3 * Destra S0 0 S1 * Destra S0 * S6 1 Sinistra S1 1 S1 1 Destra S1 0 S1 0 Destra S1 * S2 * Sinistra S2 1 S7 0 Sinistra S2 0 S5 * Sinistra S2 * S6 1 Sinistra S3 1 S3 1 Destra S3 0 S3 0 Destra

11 Copyright 2008 The McGraw-Hill Companies S3 * S4 * Sinistra S4 1 S5 * Sinistra S4 0 S7 0 Sinistra S4 * S6 1 Sinistra S5 1 S5 1 Sinistra S5 0 S5 0 Sinistra S5 * S0 * Destra S S7 1 S7 * Sinistra S7 0 S7 * Sinistra S7 * S8 * Destra S8 0 S6 0 Sinistra S8 * S8 * Destra 7) Le due espressioni non sono equivalenti: a b C!ab!bc!ab+!bc!b+!ab F F F F F F T F F T F T T T F T F T F T T F T T T F T T T F F F F F T T F T F T T T T T F F F F F T T T F F F F 8) Le due espression i non sono equivalenti: a b c a!b!ab!ac a!bc!a+a!b!ac+!ab+a!bc F F F F F F F T F F F T F F T F T T F T F F T F F T T F T T F T T F T T T F F T F F F F F T F T T F F T T T T T F F F F F F F T T T F F F F T F 9) Le due espressioni n on sono equivalenti: a b C!ab a!b!ac!abc a!bc!a!b!c!ab+a!b+!ac+!a!b!c!abc+a!bc+!ac+!a!b!c F F F F F F F F T T T F F T F F T F F F T T F T F T F F F F F T F F T T T F T T F F T T T F F F T F F F F T F T F T F T F F T F T T T T F F F F F F F F F T T T F F F F F F F F

12 Copyright 2008 The McGraw-Hill Companies 10) Le due espressio ni sono equivalenti: a b C!ab a!b!ac!a!b!c!b+!ab!ab+a!b+!ac+!a!b!c F F F F F F T T T F F T F F T F T T F T F T F F F T T F T T T F T F T T T F F F T F F T T T F T F T F F T T T T F F F F F F F T T T F F F F F F 11) Le due espressio ni sono equivalenti: a b C!ab!ac!bc a!bc!ab+!bc!ac+!ab+a!bc F F F F F F F F F F F T F T T F T T F T F T F F F T T F T T T T F F T T T F F F F F F F F T F T F F T T T T T T F F F F F F F T T T F F F F F F 12)!a!b c +!ab c + ab!c + abc =!ac + ab 13)!a!b!c + ab!c 14)!a!b!c +!a!bc +!abc + abc + a!b!c + ab!c =!a!b + bc + a!c 15)!a!b!c +!a!bc +!ab!c + a!b!c + abc =!a!b!c +!a!bc +!a!b!c +!ab!c +!a!b!c + a!b!c + abc =!a!b +!a!c +!b!c + abc (aggiungere termini già presenti nell espressione non ne cambia il valore, per la proprietà di idempotenza dell operatore +)

13 CAPITOLO 4 Esercizi aggiuntivi 1) Descrivere in pseudocodice un algoritmo che confronti tra loro due vettori da assumere da tastiera di dimensione da assumere da tastiera e segnali eventuali condizioni di errore e se i due vettori sono uguali o meno. 2) Descrivere in pseudocodice un algoritmo che restituisca la somma dei soli numeri pari contenuti in un vettore noto di dimensione N in posizioni pari. 3) Descrivere in pseudocodice un algoritmo che dati due vettori di interi ordinati ne copi il contenuto in un terzo vettore lasciandolo a sua volta ordinato. 4) Descrivere in pseudocodice un algoritmo che letto un vettore di interi di dimensione N letta da tastiera verifichi se è o no palindromo (ovvero se letto da sinistra verso destra o viceversa appare uguale). 5) Descrivere in pseudocodice un algoritmo che letta da tastiera una matrice quadrata di dimensione N letta da tastiera verifichi se è simmetrica rispetto alla diagonale principale. 6) Descrivere in pseudocodice un algoritmo che letta da tastiera una matrice quadrata di dimensione N letta da tastiera la sostituisca con la sua trasposta. 7) Descrivere in pseudocodice un algoritmo che data una matrice di interi NxN scambi una riga con una colonna lette da tastiera. 8) Descrivere in pseudocodice un algoritmo che data una matrice di interi NxN scambi una riga letta da tastiera con la diagonale secondaria (quella che va dall elemento [0,N-1] all elemento [N-1,0]). 9) Descrivere in pseudocodice un algoritmo che data una matrice di interi NxN sostituisca gli elementi della diagonale secondaria (quella che va dall elemento [0,N-1] all elemento [N-1,0]) con la somma degli elementi positivi al di sopra di essa, inclusi eventuali valori su detta diagonale. 10) Descrivere in pseudocodice un algoritmo che conti le ripetizioni di un carattere letto da tastiera in un vettore di caratteri letto da tastiera di dimensione letta da tastiera (ad esempio il carattere e è ripetuto 2 volte in sannacchiudere ). 11) Descrivere in pseudocodice un algoritmo che conti le ripetizioni di un vettore di caratteri letto da tastiera di lunghezza M letta da tastira in un altro vettore di caratteri letto da tastiera di dimensione N (per semplicità si consideri N>=M) letta da tastiera (ad esempio la sequenza tr è contenuta 8 volte in trentatré trentini entrarono a trento tutti e trentatré trotterellando ). 12) Descrivere in pseudocodice un algoritmo che ruoti di 90 in senso antiorario una matrice quadrata letta da tastiera di dimensione N letta da tastiera. 13) Descrivere in pseudocodice un algoritmo che letto da tastiera un vettore di caratteri di dimensione N letta da tastiera elimini tutte le ripetizioni consecutive di caratteri (ad esempio arrassusia diventa arasusia). 14) Descrivere in pseudocodice un algoritmo che data una matrice di interi NxM restituisca in due vettori la somma di tutti i numeri presenti in ogni riga ed in ogni colonna.

14 15) Descrivere in pseudocodice un algoritmo che, lette le coordinate di tre punti su un piano, determini se sono i vertici di un triangolo rettangolo usando solo le quattro operazioni algebriche. Soluzioni 1) Dati N, i, v[n] interi Risoluzione leggi N se N > 0 allora finchè i < N ripeti leggi v[i] i <- i + 1 ripeti leggi k se k <> v[i] allora stampa diversi se i <- i+1 finchè i < N stampa uguali altrimenti stampa errore se 2) Si intenda l operatore di divisione / come operatore su interi. Dati Somma, i, v[n] interi Risoluzione Somma <- 0 finchè i < N ripeti se v[i] 2*(v[i]/2) = 0 allora Somma <- Somma + v[i] se i <- i + 2 stampa Somma

15 3) Dati i, j, k, v1[n], v2[m], v3[n+m] interi ifinito, jfinito, copiadav1 logici Risoluzione j <- 0 k <- 0 ifinito <- falso jfinito <- falso finchè ifinito=falso OR jfinito=falso se ifinito=vero copiadav1 <- falso altrimenti se jfinito=vero copiadav1 <- vero altrimenti se v1[i]<v2[j] allora copiadav1 <- vero altrimenti copiadav1 <- falso se se se copiadav1=vero allora v3[k] <- v1[i] i <- i+1 se i = N allora ifinito=vero se altrimenti v3[k] <- v2[j] j <- j+1 se j = M allora jfinito=vero se se k <- k + 1 4) Si intenda l operatore di divisione / come operatore su interi. Dati N, i, v[n] interi Risoluzione leggi N se N > 0 allora

16 finchè i < N ripeti leggi v[i] i <- i + 1 finchè i < N/2 ripeti se v[i] = v[n-i-1] allora i <- i+1 altrimenti stampa diversi se stampa uguali altrimenti stampa errore se 5) La logica di soluzione si articola in una prima fase di lettura della matrice e una seconda fase di verifica della simmetria. Per la seconda fase si consideri che non è necessario controllare la diagonale e che è sufficiente controllare che la rimanente parte triangolare superiore alla diagonale sia uguale a quella inferiore. Il controllo può essere eseguito riga per riga a partire dalla posizione a destra della diagonale. Ciò considerato, si proceda a dettagliare l algoritmo con un diagramma di flusso (qui omesso). Per semplicità si omette il controllo su N. Dati N, i, j, M[N,N] interi Risoluzione leggi N finchè i < N ripeti j <- 0 finchè j < N ripeti leggi M[i,j] j <- j + 1 i <- i + 1 finchè i < N-1 ripeti j <- i + 1 finchè j < N ripeti se M[i,j]=M[j,i] allora j <- j + 1 altrimenti stampa no se

17 i <- i + 1 stampa ok 6) La logica è simile a quella dell esercizio precedente. Ciò considerato, si proceda a dettagliare l algoritmo con un diagramma di flusso (qui omesso). Per semplicità si omette il controllo su N. Dati N, i, j, temp, M[N,N] interi Risoluzione leggi N finchè i < N ripeti j <- 0 finchè j < N ripeti leggi M[i,j] j <- j + 1 i <- i + 1 finchè i < N-1 ripeti j <- i + 1 finchè j < N ripeti temp <- M[i,j] M[i,j] <- M[j,i] M[j,i] <- temp j <- j + 1 i <- i + 1 stampa ok 7) Dati N, i, r, c, temp, M[N,N] interi Risoluzione leggi r leggi c finchè i < N ripeti temp <- M[r,i] M[r,i] <- M [i, c] M[i,c] <- temp i <- i + 1

18 8) Dati N, i, r, temp, M[N,N] interi Risoluzione leggi r finchè i < N ripeti temp <- M[r,i] M[r,i] <- M [N-i-1, N-i-1] M [N-i-1, N-i-1] <- temp i <- i + 1 9) Dati N, i, Somma, M[N,N] interi Risoluzione j <- 0 finchè j < N ripeti Somma <- 0 finchè i<n-j-1 ripeti se M[i,j] > 0 allora Somma <- Somma + M[i,j] se i <- i + 1 M[N-j-1,j] <- Somma 10) E sufficiente usare una variabile aggiuntiva in cui memorizzare il carattere precedente. Ciò considerato, si proceda a dettagliare l algoritmo con un diagramma di flusso (qui omesso). Per semplicità si omette il controllo su N. Dati N, i, r interi c, v[n] caratteri Risoluzione leggi N finchè i < N ripeti leggi v[i] i <- i + 1 i <- 1 c <- v[0] r <- 0

19 finchè i < N ripeti se c=v[i] allora r <- r + 1 se c <- v[i] i <- i+1 stampa r 11) L idea è visitare il secondo vettore sovrapponendovi il primo locazione per locazione e controllando che il contenuto coincida, locazione per locazione. Per una questione di efficienza il controllo in ogni locazione va interrotto appena si riscontra un contenuto non coincidente, per ridurre al minimo il numero di istruzioni eseguite. Ciò considerato, si proceda a dettagliare l algoritmo con un diagramma di flusso (qui omesso). Per semplicità si omette il controllo su N ed M. Dati N, i, j, r interi v1[n], v2[m] caratteri Risoluzione leggi N finchè i < N ripeti leggi v1[i] i <- i + 1 leggi M finchè i < M ripeti leggi v2[i] i <- i + 1 r <- 0 finchè i <= N - M ripeti j <- 0 uguali <- vero finchè uguali=vero AND j < M ripeti se v1[i+j]<>v2[j] allora uguali <- falso se j <- j + 1 if uguali=vero allora r <- r + 1 se i <- i + 1

20 stampa r 12) Si ricavino i cambiamenti di indice necessari (analiticamente o facendo un po di prove) che realizzano la rotazione di un elemento e tutti i suoi simmetrici di rotazione. E sufficiente applicare la rotazione ad un quarto della matrice (si consideri nel caso di dimensione dispari anche un braccio della croce centrale). Ciò considerato, si proceda a dettagliare l algoritmo con un diagramma di flusso (qui omesso). Per semplicità si omette il controllo su N. Si intenda l operatore di divisione / come operatore su interi. Dati N, i, j, temp, M[N,N] interi Risoluzione leggi N finchè i < N ripeti j <- 0 finchè j < N ripeti leggi M[i,j] j <- j + 1 i <- i + 1 finchè i < N/2 ripeti j <- 0 finchè j < (N+1)/2 ripeti temp <- M[i,j] M[i,j] <- M[j,N-i-1] M[j,N-i-1] <- M[N-i-1, N-j-1] M[N-i-1, N-j-1] <- M[N-j-1, i] M[N-j-1, i] <- temp j <- j + 1 i <- i ) E sufficiente usare una variabile aggiuntiva in cui memorizzare il carattere precedente e spostare tutti i valori contenuti nelle locazioni del vettore a sinistra quando si trova un carattere ripetuto (che verrà sovrascritto) aggiornando di conseguenza la dimensione del vettore. Ciò considerato, si proceda a dettagliare l algoritmo con un diagramma di flusso (qui omesso). Per semplicità si omette il controllo su N. Dati N, i, j interi c, v[n] caratteri Risoluzione leggi N

21 finchè i < N ripeti leggi v[i] i <- i + 1 i <- 1 c <- v[0] finchè i < N ripeti se c=v[i] allora j <- i finchè j < N-1 v[j] <- v[j+1] j <- j + 1 N <- N-1 altrimenti c <- v[i] i <- i+1 se 14) Per semplicità si omette il controllo su N e M. Dati N, M, i, j, A[N,M], SommaRiga[N], SommaColonna[M] interi Risoluzione leggi N leggi M finchè i < N ripeti j <- 0 finchè j < M ripeti leggi A[i,j] j <- j + 1 i <- i + 1 finchè i < N ripeti j <- 0 SommaRiga[i] <- 0 finchè j < M ripeti SommaRiga[i] <- SommaRiga[i] + A[i,j] j <- j + 1 i <- i + 1 j <- 0 finchè j < M ripeti SommaColonna[j] <- 0

22 finchè i < N ripeti SommaColonna[j] <- SommaColonna[j] + A[i,j] i <- i + 1 j<- j ) Se tre punti formano un triangolo rettangolo deve valere il teorema di Pitagora (l area del quadrato costruito sull ipotenusa è uguale alla somma delle aree dei quadrati costruiti sui cateti). Pertanto basta determinare la lunghezza dei lati del triangolo individuato dai tre punti e verificare che la somma delle aree dei quadrati costruiti sui due lati più corti sia uguale all area del quadrato costruito sul lato più lungo. Ma detti quadrati possono essere ottenuti a partire dalle coordinate di cui si dispone: infatti detti (x1, y1) e (x2, y2) due punti la lunghezza del segmento individuato è data dalla radice quadrata di (y2-y1)^2 + (x2-x1)^2. Pertanto le aree dei quadrati costruiti su ciascuno dei lati del triangolo si possono ottenere direttamente dalle coordinate a disposizione come (y2-y1)^2 + (x2-x1)^2, (y2-y3)^2 + (x2-x3)^2, (y3-y1)^2 + (x3-x1)^2 (detto il terzo punto (x3, y3)). Poiché se a, b>0 e a>b allora a^2>b^2, è sufficiente calcolare le tre aree, valutare quale sia la più grande e controllare che sia pari alla somma delle altre due. Ciò considerato, si proceda a dettagliare l algoritmo con un diagramma di flusso (qui omesso). Dati x1, x2, x3, y1, y2, y3, q1, q2, q3 interi rettangolo logico Risoluzione leggi x1 leggi y1 leggi x2 leggi y2 leggi x3 leggi y3 rettangolo <- falso q1 <- (y2-y3)*(y2-y3) + (x2-x3)*(x2-x3) q2 <- (y3-y1)*(y3-y1) + (x3-x1)*(x3-x1) q3 <- (y2-y1)*(y2-y1) + (x2-x1)*(x2-x2) se q1 > q2 allora se q1 > q3 allora se q1*q1 = q2*q2 + q3*q3 allora rettangolo <- vero se altrimenti se q3*q3 = q2*q2 + q1*q1 allora rettangolo <- vero se se altrimenti se q2 > q3 allora se q2*q2 = q3*q3 + q1*q1 allora rettangolo <- vero se

23 altrimenti se q3*q3 = q2*q2 + q1*q1 allora rettangolo <- vero se se se stampa rettangolo

24 CAPITOLO 5 Esercizi aggiuntivi 1) Si consideri un messaggio codificato in un alfabeto in cui ogni simbolo viene rappresentato con 7 bit. Per rilevare possibili errori di trasmissione sono usati 2 bit di parità; il canale può trasmettere 8 kbit/s. Quanti simboli per secondo può emettere la sorgente? 2) Si consideri un messaggio codificato in un alfabeto in cui ogni simbolo viene rappresentato con 7 bit. Per rilevare possibili errori di trasmissione sono usati 3 bit di parità; il canale può trasmettere 48 kbit/s. E possibile che la sorgente emetta simboli a 2 ksimboli/s? Considerando che sullo stesso canale possono viaggiare simboli di 2 sorgenti in contemporanea al costo di una perdita di 12% della banda di canale per gestire la condivisione, è possibile condividere il canale? 3) Si consideri un messaggio codificato in un alfabeto in cui ogni simbolo viene rappresentato con 6 bit. Il canale può trasmettere 5 kbit/s, la sorgente emette simboli a 800 simboli/s. Quanti bit sono disponibili per simbolo per la correzione d errore? 4) Una sorgente emette simboli con velocità 18 ksimboli/s. Ogni simbolo viene codificato con 6 bit su un canale digitale. Assumendo che si vogliono rivelare gli errori di trasmissione e che la probabilità di avere più di 2 errori in trasmissione su un simbolo è trascurabile, determinare la banda minima in Kbit/s che il canale deve fornire. 5) Una sorgente emette simboli con velocità 7 ksimboli/s. Ogni simbolo viene codificato con 6 bit su un canale digitale. Assumendo che si vogliono rivelare gli errori di trasmissione e che la probabilità di avere più di 2 errori in trasmissione su un simbolo è trascurabile, è possibile trasmettere in modo affidabile su un canale con banda di 42 Kbit/s? 6) Si consideri un canale che può trasmettere 12 kbit/s e una la sorgente che emette simboli a 500 simboli/s. Volendo usare 1 bit di parità quanti bit sono disponibili per simbolo? 7) Un flusso multimediale deve essere trasmesso in tempo reale in modo da essere riprodotto a 128 kbit/s. I dati vengono trasmessi a blocchi di 70 bit. Considerando che il canale corrompe il 15% dei blocchi, che la probabilità di avere 2 o più errori per pacchetto è trascurabile e che ogni blocco errato deve essere ritrasmesso, quale deve essere la banda del canale e quale la velocità della sorgente? 8) Un flusso di dati deve essere trasmesso in tempo reale in modo da essere riprodotto a 3 ksimboli/s. I dati vengono trasmessi a blocchi di 15 bit. Considerando che il canale corrompe il 5% dei blocchi, che la probabilità di più di 2 errori per pacchetto è trascurabile e che ogni blocco errato deve essere ritrasmesso, che la banda del canale disponibile è di 20 kbit/s e che ogni simbolo dell alfabeto usa 4 bit, è possibile ottenere il risultato voluto? 9) Si vuole ottenere da un canale un flusso di dati in ricezione a 100 ksimboli/s. I dati vengono trasmessi a blocchi di 4 simboli più 1 simbolo di correzione. Considerando che il canale corrompe il 15% dei blocchi, che la banda del canale disponibile è di 512 kbit/s e che ogni simbolo dell alfabeto usa 6 bit, il canale è adatto? 10) Si vuole ottenere da un canale un flusso di dati in ricezione a 120 ksimboli/s. I dati vengono trasmessi a blocchi di 4 simboli più 1 bit di parità. Considerando che la banda del canale disponibile è di 1350 kbit/s e che ogni simbolo dell alfabeto usa 8 bit, che probabilità di errore può avere al

25 massimo il canale? 11) Si vuole ottenere da un canale un flusso di dati in ricezione a 14 ksimboli/s. I dati vengono trasmessi a blocchi di 4 simboli più 1 bit di parità. Considerando che la banda del canale disponibile è di 32 kbit/s, che l alfabeto è composto dai simboli A, B e C codificati con 1, 2 e 2 bit rispettivamente e che la probabilità di trasmettere una A è 0.5, la probabilità di trasmettere una B è 0.3 e quindi la probabilità di trasmettere una C è 0.2, che probabilità di errore può avere al massimo il canale? 12) Date per un alfabeto di cinque simboli le probabilità di sorgente p s (A) = 0.4, p s (B) = 0.2, p s (C) = 0.2, p s (D) = 0.1, p s (E) = 0.1 e la matrice delle probabilità condizionate in ricezione (probabilità di ricevere un simbolo Y dato che è stato trasmesso un simbolo X): SIMBOLO RICEVUTO A B C D E A SIMBOLO TRASMESSO B C D E si determini la probabilità di ricezione di ogni simbolo. 13) Usando dati e risultati dell esercizio precedente si determini la matrice delle probabilità di trasmissione di un simbolo X se è stato ricevuto un simbolo Y. 14) Un osservatore che esamina i simboli in ricezione sul canale dell esercizio precedente osserva che i 5 simboli appaiono equiprobabili in ricezione e ne deduce che la sorgente è cambiata. Quali sono le nuove probabilità di sorgente dei 5 simboli? 15) Un segnale audio della durata di 15 secondi e quantizzato a 16 bit occupa 1 MB. Quale è la frequenza di campionamento utilizzata? Soluzioni 1) Per ogni simbolo devono essere trasmessi 9 bit. La banda del canale permette 8 kbit/secondo, quindi la sorgente può emettere simboli a una velocità massima di 8000/9=889 simboli/secondo 2) Per ogni simbolo devono essere trasmessi 10 bit. La banda del canale permette 12 kbit/secondo, quindi la sorgente può emettere simboli a una velocità massima di 48/10=5 ksimboli/secondo, quindi il canale può gestire una sorgente. Nel caso di due sorgenti, il segnalamento consuma il 10% della banda del canale e quindi la banda utile diventa 48*0,88 = 42,24 kbit/s, da cui si ottiene la velocità massima di sorgente teorica di 4,224 ksimboli/s, contro una richiesta di 2*2 = 4 ksimboli/s e pertanto il canale può essere condiviso. 3) La sorgente emette 800*6 = 4.8 kbit/s, la capacità di canale è di 5 kbit/s, quindi la capacità residua è di 200 bit/s, che consente 200/800 = 0.25 bit per simbolo, il che permette di inserire un bit

26 di parità per ogni blocco di 4 simboli (24 bit), che a meno di ulteriori informazioni sulle caratteristiche della rumorosità del canale è sempre meglio di niente. 4) Da quanto detto riguardo gli errori sul canale è sufficiente rilevare errori con 2 bit per simbolo per rilevare la maggior parte degli errori di trasmissione, risultato ottenibile con l uso di 2 bit di parità. Per ogni simbolo di sorgente servono quindi 8 bit (6+2) e quindi il flusso di sorgente espresso in bit che il canale deve poter sostenere è di 18 ksimboli/s * 8 bit/s = 144 kbit/s. 5) Da quanto detto riguardo gli errori sul canale è sufficiente rilevare errori con 2 bit per simbolo per rilevare la maggior parte degli errori di trasmissione, risultato ottenibile con l uso di 2 bit di parità. Per ogni simbolo di sorgente servono quindi 8 bit (6+2) e quindi il flusso di sorgente espresso in bit che il canale deve poter sostenere è di 7 ksimboli/s * 8 bit/s = 56 kbit/s, flusso superiore alla capacità del canale che è 42kbit/s. 6) Dato il canale e la velocità di sorgente forniti, si ha che 12000/500 = 24 bit disponibili per simbolo, che data la necessità di 1 bit di parità mette a disposizione 23 bit per simbolo. 7) Il flusso deve arrivare integro, quindi è necessario innanzi tutto rilevare gli errori e poi ritrasmettere i blocchi errati in tempo. Si può usare un singolo bit di parità data l ipotesi sulla probabilità trascurabile di 2 errori per pacchetto. La probabilità di errore sui pacchetti ritrasmessi è 0.15*0.15 = , quindi non può essere trascurata, mentre la probabilità di un ulteriore errore sullo stesso pacchetto ritrasmesso (quindi che si abbia ulteriore errore su un pacchetto ritrasmesso 2 volte) è *0.15 = 0, e quindi è trascurabile. Arrotondando alla seconda cifra, è necessario considerare che la sorgente deve generare il flusso più il 17% che viene ritrasmesso, mentre il canale deve trasportare il flusso, i bit di parità e il 17% di blocchi ritrasmessi comprensivi di bit di parità. Quindi la sorgente deve generare 128 kbit/s * 1.17 = circa 150 kbit/s e il canale deve poter trasportare (128 kbit/s kbit/s / 70 bit/blocco * 1 bit/blocco) * 1.17 = kbit/s * 1.17 = circa 152 kbit/s. Si noti che la differenza dovuta all introduzione del bit di parità è piccola in quanto la dimensione dei pacchetti è grande, e che questa proporzione presuppone un canale con errori frequenti ma abbastanza distanziati tra loro nel tempo. 8) Il flusso deve arrivare integro, quindi è necessario innanzi tutto rilevare gli errori e poi ritrasmettere i blocchi errati in tempo. Semplificando, assumiamo che i pacchetti ritrasmessi non siano ulteriormente affetti da errore (0,05 * 0,05 = 0,0025): è necessario considerare che la sorgente deve generare il flusso più il 5% che viene ritrasmesso, mentre il canale deve trasportare il flusso, i bit di parità e il 5% di blocchi ritrasmessi comprensivi di 2 bit di parità. Quindi il canale deve poter trasportare (3 ksimboli/s * 4 bit/simbolo + 3 ksimboli/s * 4 bit/simbolo / 15 bit/blocco * 2 bit/blocco) * 1.05 = 14.2 kbit/s e quindi il canale disponibile è adatto. 9) La probabilità di errore sui pacchetti ritrasmessi è 0.15*0.15 = , quindi non può essere trascurata, mentre la probabilità di un ulteriore errore sullo stesso pacchetto ritrasmesso (quindi che si abbia ulteriore errore su un pacchetto ritrasmesso 2 volte) è *0.15 = 0, e quindi è trascurabile. Arrotondando alla seconda cifra, è necessario considerare che la sorgente deve generare il flusso più il 17% che viene ritrasmesso, mentre il canale deve trasportare il flusso, i simboli di correzione e il 17% di blocchi ritrasmessi comprensivi di simboli di correzione. Quindi la sorgente deve generare 100 ksimboli/s * 1.17 = 117 simboli/s e il canale deve poter trasportare (100 ksimboli/s ksimboli/s / 4 simboli/blocco * 1 bit/blocco) * 6 bit/simbolo * 1.17 = kbit/s e quindi il canale ha una banda insufficiente.

27 10) Sul canale viaggiano 120 ksimboli/s * 8 bit/simbolo ksimboli/s * 8 bit/simbolo / 4 simboli/blocco * 1 bit/blocco = 1200 kbit/s in assenza di errori. Poiché la banda disponibile è di 1350 kbit/s la banda residua è di 150 kbit/s che permette la ritrasmissione del 12.5% dei dati. 11) Sul canale viaggiano 14 ksimboli/s * (0.5* * *2) bit/simbolo + 14 ksimboli/s * (0.5* * *2) bit/simbolo / 4 simboli/blocco * 1 bit/blocco = kbit/s in assenza di errori. Poiché la banda disponibile è di 32 kbit/s la banda residua è di 150 kbit/s che permette la ritrasmissione di circa il 22% dei dati. 12) Per ogni simbolo ricevuto bisogna sommare i prodotti della probabilità di sorgente di ogni simbolo per la probabilità di ottenere il simbolo voluto dato il simbolo di cui si considera la probabilità di sorgente. Si ottiene: PROBABILITA' DI RICEZIONE A B C D E 0,345 0,1825 0,215 0,1175 0,14 13) Basta sfruttare la relazione: p(x i y j )*p R (y j ) = p(y j x i )*p S (x i ). SIMBOLO TRASMESSO A B C D E SIMBOLO RICEVUTO A 0,93 0,03 0 0,01 0,03 B 0,05 0,82 0 0,03 0,1 C 0,19 0,09 0,7 0,02 0 D 0,09 0 0,17 0,68 0,06 E 0,14 0,14 0,21 0,04 0,46 14) La probabilità che sia stato trasmesso un simbolo dato è data dalla somma delle probabilità che sia stato trasmesso il simbolo dato quando è stato ricevuto un simbolo moltiplicata per la probabilità che sia stato ricevuto quel simbolo (analogamente a quanto visto per le probabilità in ricezione). Da ciò sfruttando il risultato ottenuto all esercizio precedente si ottengono le seguenti probabilità di sorgente: A B C D E 0, , , , , ) byte sono stati utilizzati per codificare 15 s a 16 bit. La frequenza di campionamento è quindi * 8 bit / (15s * 16 bit) = circa khz.

28 CAPITOLO 6 Esercizi aggiuntivi 1) Si consideri l istruzione aritmetico-logica ldw R01,R02,123 che ha l effetto di caricare nel registro R01 il contenuto della cella di memoria il cui indirizzo è la somma di 123 e del contenuto di R02. Identificare le fasi di esecuzione dell istruzione e indicare quali sono gli elementi dello schema riportato in figura che sono attivi nelle diverse fasi. PC+1 Σ Destinazione del salto +1 WR OP esito WR RD PC Indirizzo lettura Istruzione IR Dato reg. src2 ALU Num. reg. src2 Num. reg. src1 Dato reg. src1 Indirizzo per lettura Dato letto Memoria Istruzioni Banco registri Num. reg. dest Memoria dati Indirizzo per scrittura Dato da scrivere Dato da scrivere 2) Si consideri l istruzione aritmetico-logica stw R01,R02,123 che ha l effetto di caricare contenuto del registro R01 nella cella di memoria il cui indirizzo è la somma di 123 e del contenuto di R02. Identificare le fasi di esecuzione dell istruzione e indicare quali sono gli elementi dello schema riportato in figura che sono attivi nelle diverse fasi. 3) Si consideri l istruzione aritmetico-logica ble R01,R02, 432 che ha l effetto di saltare a PC se il registro R01 contiene un valore inferiore o uguale a quello contenuto nel registro R02. Identificare le fasi di esecuzione dell istruzione e indicare quali sono gli elementi dello schema riportato in figura che sono attivi nelle diverse fasi. 4) Si consideri l istruzione aritmetico-logica add R01,R02,R03 che ha l effetto di carica nel registro R01 il risultato della somma dei contenuti dei registri R02 e R03. Identificare le fasi di esecuzione dell istruzione e indicare quali sono gli elementi dello schema riportato in figura che sono attivi nelle diverse fasi. 5) Si ipotizzi di poter disporre di una pipeline a cinque stadi (MI: 10ns, LR: 5ns, AL: 10ns, MD: 10ns, SR: 5ns). Quale miglioramento si ottiene dalla pipeline rispetto alla sua assenza per un profilo di esecuzione formato da un 68% di istruzioni di tipo A (30ns per l esecuzione), 20% di tipo B (40ns), 10% di tipo C (35ns) e 2% di tipo D (30ns)? Quanto deve essere lunga la sequenza di istruzioni perché la velocità media di esecuzione delle istruzioni sia due volte superiore a quella originaria senza pipeline (cioè il miglioramento sia superiore al 50%)? 6) Si ipotizzi di poter disporre di una pipeline a cinque stadi (MI: 10 ns, LR: 5 ns, AL: 20 ns, MD: 10 ns, SR: 5 ns). Quale miglioramento si ottiene dalla pipeline rispetto alla sua assenza per un profilo di esecuzione formato da un 55% di istruzioni di tipo A (15 ns per l esecuzione), 15% di tipo B (45 ns), 10% di tipo C (50 ns) e 20% di tipo D (35 ns)? Quanto deve essere lunga la sequenza di istruzioni perché la velocità media di esecuzione delle istruzioni sia quattro volte superiore a quella originaria senza pipeline (cioè il miglioramento sia superiore al 75%)?

29 7) Si ipotizzi di poter disporre di una pipeline a cinque stadi (MI: 10 ns, LR: 5 ns, AL: 10 ns, MD: 10 ns, SR: 5 ns). Si considerino istruzioni di classe A (che usa MI, LR, AL, MD e SR), B (che usa MI, LR, AL e SR) e C (che usa MI, LR, AL, MD). Quale miglioramento si ottiene dalla pipeline rispetto alla sua assenza per la sequenza A B B A C A C C? 8) Si ipotizzi di poter disporre di una pipeline a cinque stadi (MI: 20 ns, LR: 5 ns, AL: 20 ns, MD: 10 ns, SR: 15 ns). Si considerino istruzioni di classe A (che usa MI, LR, AL, MD e SR), B (che usa MI, LR, AL e SR) e C (che usa MI, LR, AL, MD). Quale miglioramento si ottiene dalla pipeline rispetto alla sua assenza per la sequenza A A A A C A C C B B A C? 9) Si consideri un sistema di memoria composto da una memoria centrale con tempo di accesso di 15 ns. È possibile associarlo a una memoria cache in due diverse configurazioni: (a) cache a un livello con tempo di accesso di 3 ns e frequenza di successo pari al 90%; (b) cache a due livelli in cui il primo livello è caratterizzato da un tempo di accesso di 2 ns e una frequenza di successo pari all 80%, mentre il secondo livello ha tempo di accesso di 5 ns e frequenza di successo del 90%. Quale delle due soluzioni è la migliore? 10) Si consideri un sistema di memoria composto da una memoria centrale con tempo di accesso di 10 ns. È possibile associarlo a una memoria cache in due diverse configurazioni: (a) cache a un livello con tempo di accesso di 2 ns e frequenza di successo pari al 90%; (b) cache a due livelli in cui il primo livello è caratterizzato da un tempo di accesso di 2 ns e una frequenza di successo pari all 80%, mentre il secondo livello ha tempo di accesso di 4 ns e frequenza di successo del x%. Quale deve essere il valore di x perché la seconda soluzione sia migliore della prima? 11) Si consideri un sistema di memoria dotato di una memoria centrale con tempo di accesso di 10ns. È possibile associarlo a una memoria cache in tre diverse configurazioni: (a) cache a un solo livello con tempo di accesso di 2 ns e frequenza di successo pari all 85%; (b) cache a due livelli in cui il primo livello è caratterizzato da un tempo di accesso di 2 ns e una frequenza di successo pari al 75%, mentre il secondo livello ha tempo di accesso di 4 ns e frequenza di successo dell 80%; (c) cache a due livelli in cui il primo livello è caratterizzato da un tempo di accesso di x ns e una frequenza di successo pari all 80%, mentre il secondo livello ha tempo di accesso di 5 ns e frequenza di successo dell 80%. Quale soluzione è la migliore tra le prime due? Quale deve essere il valore di x perché la terza soluzione sia la migliore tra tutte? 12) Si consideri un sistema di memoria dotato di una memoria centrale con tempo di accesso di 10ns. È possibile associarlo a una memoria cache in tre diverse configurazioni: (a) cache a un solo livello con tempo di accesso di 2.5 ns e frequenza di successo pari al 75%; (b) cache a due livelli in cui il primo livello è caratterizzato da un tempo di accesso di 2 ns e una frequenza di successo pari al 45%, mentre il secondo livello ha tempo di accesso di 4 ns e frequenza di successo dell 80%; (c) cache a due livelli in cui il primo livello è caratterizzato da un tempo di accesso di x ns e una frequenza di successo pari al 60%, mentre il secondo livello ha tempo di accesso di 8 ns e frequenza di successo dell 80%. Quale soluzione è la migliore tra le prime due? Quale deve essere il valore di x perché la terza soluzione sia la migliore tra tutte?

30 13) Si consideri un sistema di memoria composto da una memoria centrale con tempo di accesso di 18 ns. È possibile associarlo a una memoria cache in due diverse configurazioni: (a) cache a due livelli in cui il primo livello è caratterizzato da un tempo di accesso di 3 ns e una frequenza di successo pari ad a, mentre il secondo livello ha tempo di accesso di 5 ns e frequenza di successo del 70% (b) cache a due livelli in cui il primo livello è caratterizzato da un tempo di accesso di 2 ns e una frequenza di successo pari ad a, mentre il secondo livello ha tempo di accesso di 6 ns e frequenza di successo del 90%. Per quale valore di a le due configurazioni si equivalgono? 14) Un processore superscalare ha 2 pipeline a 5 stadi (MI (condiviso): 5 ns, LR: 5 ns, AL: 10 ns, MD: 10 ns, SR: 5 ns). Il flusso di esecuzione è composto dal 10% di istruzioni di tipo A (che usano MI, LR, AL, MA e SR), 60% di tipo B (che usano MI, LR, AL e SR), 10% di tipo C (che usano MI, LR, AL) e 20% di tipo D (che usano MI, LR, AL, MA). Quale è la velocità media di esecuzione per istruzione? Qual è il miglioramento di prestazioni rispetto ad una architettura senza pipeline? 15) Un processore superscalare ha 2 pipeline a 5 stadi (MI: 5 ns, LR: 5 ns, AL: 20 ns, MD: 10 ns, SR: 5 ns), le cui ALU (stadio AL) possono anche eseguire istruzioni floating point (nel qual caso impiegano 40 ns anziché 20 ns). Il 10% delle istruzioni del flusso di esecuzione è di tipo floating point mentre il resto del flusso è composto dal 10% di istruzioni di tipo A (che usano MI, LR, AL, MA e SR), 60% di tipo B (che usano MI, LR, AL e SR), 10% di tipo C (che usano MI, LR, AL) e 20% di tipo D (che usano MI, LR, AL, MA). Quale è la velocità media di esecuzione per istruzione? Qual è il miglioramento di prestazioni rispetto ad una architettura senza pipeline, ma in cui la ALU presenta lo stesso comportamento? Soluzioni 1) IR = MI[PC], PC = PC + 1; BR[SRC1] = R02, BR[DEST] = R01; ALU.ADD(BR[R02], 123); MD[IL] = ALU; BR[R01] = MD[DL]. 2) IR = MI[PC], PC = PC + 1; BR[SRC1] = R02, BR[SRC2] = R01; ALU.ADD(BR[R02], 123); MD[IS] = ALU; MD[DS] = BR[R01]. 3) IR = MI[PC], PC = PC + 1; BR[SRC1] = R02, BR[SRC2] = R01; ALU.SUB(BR[R02], BR[R01]), se ESITO indica un risultato positivo PC = PC ) IR = MI[PC], PC = PC + 1; BR[SRC1] = R02, BR[SRC2] = R03, BR[DEST] = R01; ALU.ADD(BR[R03], BR[R02]); BR[R01] = ALU.

31 5) Si consideri una sequenza di N istruzioni. Il tempo medio di esecuzione di una istruzione senza pipeline è 0.7*30 ns + 0.2*40 ns + 0.1*35 ns = 21 ns+ 8 ns ns = 32.5 ns; il tempo complessivo speso senza pipeline per una sequenza di N istruzioni è 32.5N. Il tempo complessivo speso per una sequenza di N istruzioni con pipeline è dato dal tempo speso per la prima istruzione più il tempo speso per le rimanenti N-1 istruzioni nel primo stadio, e quindi è 50 ns + 10*(N 1) ns = ( N) ns. Il miglioramento è dato dal tempo speso senza pipeline meno il tempo speso con la pipeline normalizzato al tempo speso senza pipeline: (32.5N 40 10N) ns / 32.5N ns = 22.5/ /32.5N = 9/13 80/63N. Il valore limite del miglioramento (N ) è 9/13 = 69.23%, quindi il miglioramento richiesto è possibile e si ottiene quando 32.5N > 2*( N) -> 32.5N > N -> 12.5N > 80 -> N > ) Si consideri una sequenza di N istruzioni. Il tempo medio di esecuzione di una istruzione senza pipeline è 0.55*15 ns *45 ns + 0.1*50 ns + 0.2*35 ns = 27 ns; il tempo complessivo speso senza pipeline per una sequenza di N istruzioni è 27N ns. Il tempo complessivo speso per una sequenza di N istruzioni con pipeline è dato dal tempo speso per la prima istruzione più il tempo speso per le rimanenti N-1 istruzioni nello stadio più lento, e quindi è 50 ns + 20*(N 1) ns = ( N) ns. Il miglioramento è dato dal tempo speso senza pipeline meno il tempo speso con la pipeline normalizzato al tempo speso senza pipeline: (27N 30 20N) ns / 27N ns = 7/27 30/27N. Il valore limite del miglioramento (N ) è 7/27 = 25.93%, quindi il miglioramento richiesto è impossibile. 7) Senza pipeline la durata dell esecuzione è data dalla somma della durata delle singole istruzioni, che a loro volta è data dalla somma dei tempi di attraversamento degli stadi utilizzati. A dura 10 ns + 5 ns + 10 ns + 10 ns + 5 ns = 40 ns, B dura 10 ns + 5 ns + 10 ns + 5 ns = 30 ns, C dura 10 ns + 5 ns + 10 ns + 10 ns = 35 ns, quindi la sequenza dura in questo caso 40 ns + 30 ns + 30 ns + 40 ns + 35 ns + 40 ns + 35 ns + 35 ns = 285 ns. Nel caso con pipeline invece la durata è data da 10 ns (stadio più lento) per le prime (N-1) più 50 ns di completamento dell ultima istruzione (comunque necessari anche per svuotare la pipeline) ovvero 7*10 ns + 50 ns = 120 ns: il miglioramento è dato da ( ) ns / 285 ns = = 57.89%. 8) Senza pipeline la durata dell esecuzione è data dalla somma della durata delle singole istruzioni, che a loro volta è data dalla somma dei tempi di attraversamento degli stadi utilizzati. A dura 20 ns + 5 ns + 20 ns + 10 ns + 15 ns = 70 ns, B dura 20 ns + 5 ns + 20 ns + 15 ns = 60 ns, C dura 20 ns + 5 ns + 20 ns + 10 ns = 55 ns, quindi la sequenza dura in questo caso 60 ns + 60 ns + 60 ns + 60 ns + 55 ns + 60 ns + 55 ns + 55 ns + 60 ns +55 ns = 580 ns. Nel caso con pipeline invece la durata è data da 20 ns (primo stadio) per le prime (N-1) più 70 ns di completamento dell ultima istruzione (comunque necessari anche per svuotare la pipeline) ovvero 11*20 ns + 70 ns = 290 ns: il miglioramento è dato da ( ) ns / 580 ns = 0.5 = 50%. 9) Nel primo caso si ha TA = 0.9*3 ns + 0.1*15 ns = 2.7 ns ns = 4.2 ns; nel secondo caso si ha TA = 0.8*2 ns + 0.2*(0.9*5 ns + 0.1*15 ns) = 1.6 ns + 0.2*6 ns = 2.8 ns. La seconda soluzione è migliore della prima. 10) Nel primo caso si ha TA = 0.9*2 ns + 0.1*10 ns = 2.8 ns; nel secondo caso si ha TA = 0.8*2 ns + 0.2*(x*4 ns + (1 x)* 10 ns) = 1.6 ns * (10 6x) ns = ( x) ns. La seconda soluzione è migliore della prima quando x < 2.8 ns, cioè 1.2x > 0.8, da cui x > (66.67%). 11) Nel primo caso si ha TA = 0.85*2 ns *10 ns = 3.2 ns; nel secondo caso si ha TA = 0.75*2 ns *(0.8*4 ns + 0.2*10 ns) = 1.5 ns *5.2 ns = 2.8 ns; nel terzo caso si ha TA = 0.8*x ns + 0.2*(0.8*5 ns + 0.2*10 ns) = 0.8x ns + 0.2*6 ns = (0.8x +1.2) ns. La seconda soluzione è migliore

Introduzione ai sistemi informatici 4/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2008 The McGraw-Hill Companies CAPITOLO 2

Introduzione ai sistemi informatici 4/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2008 The McGraw-Hill Companies CAPITOLO 2 CAPITOLO 2 Soluzioni agli esercizi del libro: 2) 6 3) Utilizzando i simboli 0, 1 e 2 e considerando che sono necessarie 2 cifre per rappresentare 9 possibilità, è possibile ad esempio la codifica (00-lunedì),

Dettagli

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense. Fondamenti di Informatica - A. Fantechi Raccolta di esercizi Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Dettagli

Unità aritmetica e logica

Unità aritmetica e logica Aritmetica del calcolatore Capitolo 9 Unità aritmetica e logica n Esegue le operazioni aritmetiche e logiche n Ogni altra componente nel calcolatore serve questa unità n Gestisce gli interi n Può gestire

Dettagli

La codifica. dell informazione

La codifica. dell informazione 00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111

Dettagli

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it Esercitazioni di Reti Logiche Lezione 1 Rappresentazione dell'informazione Zeynep KIZILTAN zkiziltan@deis.unibo.it Introduzione Zeynep KIZILTAN Si pronuncia Z come la S di Rose altrimenti, si legge come

Dettagli

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

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale Analogico vs. Digitale LEZIONE II La codifica binaria Analogico Segnale che può assumere infiniti valori con continuità Digitale Segnale che può assumere solo valori discreti Analogico vs digitale Il computer

Dettagli

Esame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma

Esame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma Università degli Studi di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA A.A. 2008/09 Lezione 3 Operazioni Aritmetiche: Somma + 1 0 1 0 (*) 1 0 1 0 (*) con riporto di 1 2 Operazioni Aritmetiche:

Dettagli

R. Cusani, F. Cuomo: Telecomunicazioni - DataLinkLayer: Gestione degli errori, Aprile 2010

R. Cusani, F. Cuomo: Telecomunicazioni - DataLinkLayer: Gestione degli errori, Aprile 2010 1 11. Data link layer: codici di rilevazione di errore, gestione degli errori La rilevazione di errore Un codice a rilevazione di errore ha lo scopo di permettere al ricevente di determinare se vi sono

Dettagli

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni Tecnologie per il web e lo sviluppo multimediale Rappresentazione delle informazioni Luca Pulina Corso di Laurea in Scienze della Comunicazione Università degli Studi di Sassari A.A. 2015/2016 Luca Pulina

Dettagli

Teoria dell informazione

Teoria dell informazione Corso di Laurea a Distanza in Ingegneria Elettrica Corso di Comunicazioni Elettriche Teoria dell informazione A.A. 2008-09 Alberto Perotti DELEN-DAUIN Modello di sistema di comunicazione Il modello di

Dettagli

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione dei numeri interi in un calcolatore Corso di Calcolatori Elettronici I Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle

Dettagli

FUNZIONI BOOLEANE. Vero Falso

FUNZIONI BOOLEANE. Vero Falso FUNZIONI BOOLEANE Le funzioni booleane prendono il nome da Boole, un matematico che introdusse un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono

Dettagli

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

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Rappresentazione dei numeri naturali (N) Rappresentazione dei numeri interi (Z) Modulo e segno In complemento a 2 Operazioni aritmetiche

Dettagli

Codifica binaria. Rappresentazioni medianti basi diverse

Codifica binaria. Rappresentazioni medianti basi diverse Codifica binaria Rappresentazione di numeri Notazione di tipo posizionale (come la notazione decimale). Ogni numero è rappresentato da una sequenza di simboli Il valore del numero dipende non solo dalla

Dettagli

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

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi Somma di numeri floating point Algoritmi di moltiplicazione e divisione per numeri interi Standard IEEE754 " Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.0 10 2-38

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Rappresentazione dell Informazione

Rappresentazione dell Informazione Rappresentazione dell Informazione Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo

Dettagli

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

Dettagli

Moltiplicazione. Divisione. Multipli e divisori

Moltiplicazione. Divisione. Multipli e divisori Addizione Sottrazione Potenze Moltiplicazione Divisione Multipli e divisori LE QUATTRO OPERAZIONI Una operazione aritmetica è quel procedimento che fa corrispondere ad una coppia ordinata di numeri (termini

Dettagli

1.2f: Operazioni Binarie

1.2f: Operazioni Binarie 1.2f: Operazioni Binarie 2 18 ott 2011 Bibliografia Questi lucidi 3 18 ott 2011 Operazioni binarie Per effettuare operazioni è necessario conoscere la definizione del comportamento per ogni coppia di simboli

Dettagli

APPUNTI DI INFORMATICA

APPUNTI DI INFORMATICA APPUNTI DI INFORMATICA Per il biennio di liceo scientifico scienze applicate Sommario Il calcolo binario... 2 Numerazione Decimale... 2 Numerazione Binaria... 2 Conversione Binario -> Decimale... 2 Conversione

Dettagli

Algoritmi Istruzioni che operano su dati. Per scrivere un programma è necessario. che l esecutore automatico sia in grado di.

Algoritmi Istruzioni che operano su dati. Per scrivere un programma è necessario. che l esecutore automatico sia in grado di. Codifica di Dati e Istruzioni Fondamenti di Informatica Codifica dell Informazione Prof. Francesco Lo Presti Algoritmi Istruzioni che operano su dati Per scrivere un programma è necessario rappresentare

Dettagli

Sistemi di numerazione

Sistemi di numerazione SOMMARIO Sistemi di numerazione...2 Sistema decimale (o a base 10)...2 Sistema binario...2 Operazioni sui numeri binari...3 Espressioni logiche...4 Definizione...4 Prodotto Logico : AND...4 Somma Logica

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre

Dettagli

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base Cambiamenti di base Tecniche Informatiche di Base TIB 1 Il sistema posizionale decimale L idea del sistema posizionale: ogni cifra ha un peso Esempio: 132 = 100 + 30 + 2 = 1 10 2 + 3 10 1 + 2 10 0 Un numero

Dettagli

La codifica binaria. Informatica B. Daniele Loiacono

La codifica binaria. Informatica B. Daniele Loiacono La codifica binaria Informatica B Introduzione Il calcolatore usa internamente una codifica binaria ( e ) per rappresentare: i dati da elaborare le istruzioni dei programmi eseguibili Fondamenti di codifica

Dettagli

Corso di Architettura degli Elaboratori

Corso di Architettura degli Elaboratori Corso di Architettura degli Elaboratori Codifica dell'informazione: Numeri Binari (lucidi originali della Prof.ssa Zacchi e del Prof. Balossino, rivisti dal Prof. Baldoni) 1 Codifica dell'informazione?

Dettagli

Calcolo numerico e programmazione Rappresentazione dei numeri

Calcolo numerico e programmazione Rappresentazione dei numeri Calcolo numerico e programmazione Rappresentazione dei numeri Tullio Facchinetti 16 marzo 2012 10:54 http://robot.unipv.it/toolleeo Rappresentazione dei numeri nei calcolatori

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre

Dettagli

Introduzione alla programmazione Esercizi risolti

Introduzione alla programmazione Esercizi risolti Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma

Dettagli

Aritmetica dei Calcolatori Elettronici

Aritmetica dei Calcolatori Elettronici Aritmetica dei Calcolatori Elettronici Prof. Orazio Mirabella L informazione Analogica Segnale analogico: variabile continua assume un numero infinito di valori entro l intervallo di variazione intervallo

Dettagli

Codifica dell informazione

Codifica dell informazione Codifica dell informazione Gli algoritmi sono costituiti da istruzioni (blocchi sequenziali, condizionali, iterativi) che operano su dati. Per trasformare un programma in una descrizione eseguibile da

Dettagli

Aritmetica dei Calcolatori

Aritmetica dei Calcolatori Aritmetica dei Calcolatori Nicu Sebe March 14, 2016 Informatica Nicu Sebe 1 / 34 Operazioni su Bit Bit Scienza della rappresentazione e dell elaborazione dell informazione Abbiamo visto come i computer

Dettagli

Lezione 3. I numeri relativi

Lezione 3. I numeri relativi Lezione 3 L artimetcia binaria: i numeri relativi i numeri frazionari I numeri relativi Si possono rappresentare i numeri negativi in due modi con modulo e segno in complemento a 2 1 Modulo e segno Si

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

Somma di numeri binari

Somma di numeri binari Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Somma di numeri binari 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Esempio: 10011011 + 00101011 = 11000110 in base e una base Fondamenti di

Dettagli

Lezione 2. La conoscenza del mondo

Lezione 2. La conoscenza del mondo Lezione 2 Analogico/Digitale Il sistema binario L aritmetica binaria La conoscenza del mondo Per poter parlare (ed elaborare) degli oggetti (nella visione scientifica) si deve poter assegnare a questi

Dettagli

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

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due Conversione di base Dato N>0 intero convertirlo in base b dividiamo N per b, otteniamo un quoto Q 0 ed un resto R 0 dividiamo Q 0 per b, otteniamo un quoto Q 1 ed un resto R 1 ripetiamo finché Q n < b

Dettagli

RAPPRESENTAZIONE DELLE INFORMAZIONI

RAPPRESENTAZIONE DELLE INFORMAZIONI RAPPRESENTAZIONE DELLE INFORMAZIONI 1 RAPPRESENTAZIONE DELLE INFORMAZIONI Le informazioni gestite dai sistemi di elaborazione devono essere codificate per poter essere memorizzate, elaborate, scambiate,

Dettagli

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili Matrici Un po di esercizi sulle matrici Semplici Lettura e scrittura Calcolo della trasposta Media difficoltà Calcolo del determinante Difficili Soluzione di sistemi lineari È veramente difficile? 1 Matrici.h

Dettagli

La codifica. dell informazione

La codifica. dell informazione La codifica dell informazione (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero

Dettagli

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Cap. 2 - Rappresentazione in base 2 dei numeri interi Cap. 2 - Rappresentazione in base 2 dei numeri interi 2.1 I NUMERI INTERI RELATIVI I numeri relativi sono numeri con il segno: essi possono essere quindi positivi e negativi. Si dividono in due categorie:

Dettagli

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi 0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore

Dettagli

Arithmetic and Logic Unit e moltiplicatore

Arithmetic and Logic Unit e moltiplicatore Arithmetic and Logic Unit e moltiplicatore M. Favalli Engineering Department in Ferrara (ENDIF) ALU - multiplier Analisiesintesideicircuitidigitali 1 / 34 Sommario 1 Arithmetic and Logic Unit - ALU 2 Moltiplicatore

Dettagli

Lezione2: Circuiti Logici

Lezione2: Circuiti Logici Lezione2: Circuiti Logici traduce per noi in linguaggio macchina utente macchina software macchina hardware Agli albori dell'informatica, l utente programmava in binario (Ling.Mac.) scrivendo i programmi

Dettagli

Rapida Nota sulla Rappresentazione dei Caratteri

Rapida Nota sulla Rappresentazione dei Caratteri TECNOLOGIA DIGITALE TECNOLOGIA DIGITALE (segue) CPU, memoria centrale e dispositivi sono realizzati con tecnologia elettronica digitale Dati ed operazioni vengono codificati tramite sequenze di bit 8 bit

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

La codifica di sorgente

La codifica di sorgente Tecn_prog_sist_inform Gerboni Roberta è la rappresentazione efficiente dei dati generati da una sorgente discreta al fine poi di trasmetterli su di un opportuno canale privo di rumore. La codifica di canale

Dettagli

Il Processore: l unità di controllo

Il Processore: l unità di controllo Il Processore: l unità di controllo La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock Ad ogni impulso di clock la UC esegue un ciclo di esecuzione di

Dettagli

La codifica binaria. Informatica B. Daniele Loiacono

La codifica binaria. Informatica B. Daniele Loiacono La codifica binaria Informatica B Introduzione Il calcolatore usa internamente una codifica binaria (0 e 1) per rappresentare: i dati da elaborare (numeri, testi, immagini, suoni, ) le istruzioni dei programmi

Dettagli

La Rappresentazione dell Informazione

La Rappresentazione dell Informazione La Rappresentazione dell Informazione Parte III I codici Codici a.a. 27-28 Un codice è una funzione che associa ad una sequenza di simboli un significato Codice : {entità} {sequenze di simboli} Un codice

Dettagli

SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI

SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI ESERCIZIO 1 (10 Punti) Si implementi una rete sequenziale la cui uscita valga Z=1 solo quando viene riconosciuta la sequenza in ingresso

Dettagli

Le equazioni di primo grado

Le equazioni di primo grado Le equazioni di primo grado Definiamo prima di tutto cosa è una identità. Definizione : un identità è un uguaglianza, dove compaiono espressioni letterali, verificata per qualunque valore attribuito alle

Dettagli

Bit, Byte, Word e Codifica Dati

Bit, Byte, Word e Codifica Dati Bit, Byte, Word e Codifica Dati Come vengono immagazzinati i dati nella memoria? Le informazioni salvate e non all'interno della memoria del calcolatore vengono gestite come un insieme di numeri in sistema

Dettagli

Notazione scientifica e inversione di formule

Notazione scientifica e inversione di formule Notazione scientifica e inversione di formule M. Spezziga Liceo Margherita di Castelvì Sassari Indice 1 Calcoli in notazione scientifica 2 1.1 Moltiplicazioni per potenze di dieci.......................................

Dettagli

Codifica. Rappresentazione di numeri in memoria

Codifica. Rappresentazione di numeri in memoria Codifica Rappresentazione di numeri in memoria Rappresentazione polinomiale dei numeri Un numero decimale si rappresenta in notazione polinomiale moltiplicando ciascuna cifra a sinistra della virgola per

Dettagli

Aritmetica dei Calcolatori - Operazioni

Aritmetica dei Calcolatori - Operazioni Aritmetica dei Calcolatori - Operazioni Luca Abeni March 2, 2016 Implementazione di Operazioni su Numeri Interi Abbiamo visto come rappresentare numeri naturali ed interi in un computer... Sequenze di

Dettagli

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output 1 2 Problema Definizione (dal De Mauro Paravia):

Dettagli

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

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 I numeri reali Sommario Conversione dei numeri reali da base 10 a base B Rappresentazione dei numeri reali Virgola fissa Virgola mobile (mantissa

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

PIANO CARTESIANO. NB: attenzione ai punti con una coordinata nulla: si trovano sugli assi

PIANO CARTESIANO. NB: attenzione ai punti con una coordinata nulla: si trovano sugli assi PIANO CARTESIANO Il piano cartesiano è individuato da due rette perpendicolari (ortogonali) che si incontrano in un punto O detto origine del piano cartesiano. Si fissa sulla retta orizzontale il verso

Dettagli

Sistema Numerico Decimale

Sistema Numerico Decimale Sistema Numerico Decimale 10 digits d = [0,1,2,3,4,5,6,7,8,9] 734 = 7 * 10 2 + 3 * 10 1 + 4 * 10 0 0.234 = 2 * 10-1 + 3 * 10-2 + 8 * 10-3 In generale un numero N con p digits(d) interi ed n digits frazionari

Dettagli

Rappresentazione e Codifica dell Informazione

Rappresentazione e Codifica dell Informazione Rappresentazione e Codifica dell Informazione Capitolo 1 Chianese, Moscato, Picariello, Alla scoperta dei fondamenti dell informatica un viaggio nel mondo dei BIT, Liguori editore. Sistema di numerazione

Dettagli

Sistemi di numerazione e codici. Capitolo 1

Sistemi di numerazione e codici. Capitolo 1 Sistemi di numerazione e codici Capitolo 1 Generalità Sistema di numerazione n Insieme di simboli (cifre) e regole stringa di cifre valore numerico codici posizionali (il valore dipende dalla posizione

Dettagli

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

CONVERSIONE BINARIO DECIMALE NB: Convertire in decimale il numero binario N = N = NOTAZIONE BINARIA, OTTALE, ESADECIMALE CODIFICA DI NUMERI INTERI RELATIVI 1 CONVERSIONE BINARIO DECIMALE Convertire in decimale il numero binario N = 101011.1011 2 N = 1 2 5 + 0 2 4 + 1 2 3 + 0 2 2 + 1

Dettagli

Interi positivi e negativi

Interi positivi e negativi Definizioni: numerali e numeri Un numerale è solo una stringa di cifre Un numerale rappresenta un numero solo se si specifica un sistema di numerazione Lo stesso numerale rappresenta diversi numeri in

Dettagli

Algebra di Boole X Y Z V. Algebra di Boole

Algebra di Boole X Y Z V. Algebra di Boole L algebra dei calcolatori L algebra booleana è un particolare tipo di algebra in cui le variabili e le funzioni possono solo avere valori 0 e 1. Deriva il suo nome dal matematico inglese George Boole che

Dettagli

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Descrizione delle operazioni di calcolo. Espressioni costanti semplici Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette

Dettagli

Foglio Elettronico Lezione 1

Foglio Elettronico Lezione 1 - Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in

Dettagli

Calcolatori: Sistemi di Numerazione

Calcolatori: Sistemi di Numerazione Calcolatori: Sistemi di Numerazione Sistemi di Numerazione: introduzione In un Calcolatore, i Dati e le Istruzioni di un Programma sono codificate in forma inaria, ossia in una sequenza finita di e. Un

Dettagli

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

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1 I sistemi di numerazione Informatica - Classe 3ª, Modulo 1 1 La rappresentazione interna delle informazioni ELABORATORE = macchina binaria Informazione esterna Sequenza di bit Spett. Ditta Rossi Via Roma

Dettagli

Corso di Calcolatori Elettronici I

Corso di Calcolatori Elettronici I Corso di Calcolatori Elettronici I Rappresentazione dei numeri naturali Roberto Canonico Università degli Studi di Napoli Federico II A.A. 2016-2017 Roberto Canonico Corso di Calcolatori Elettronici I

Dettagli

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio Appunti di informatica Lezione 3 anno accademico 2015-2016 Mario Verdicchio Numeri binari in memoria In un calcolatore, i numeri binari sono tipicamente memorizzati in sequenze di caselle (note anche come

Dettagli

I.4 Rappresentazione dell informazione - Numeri con segno

I.4 Rappresentazione dell informazione - Numeri con segno I.4 Rappresentazione dell informazione - Numeri con segno Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 20, 2015 Argomenti Introduzione 1 Introduzione

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algebra di Boole Stefano Cagnoni Algebra di Boole L algebra

Dettagli

= < < < < < Matematica 1

= < < < < < Matematica  1 NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

Rappresentazione dei dati in memoria

Rappresentazione dei dati in memoria Rappresentazione dei dati in memoria La memoria Una memoria deve essere un insieme di oggetti a più stati. Questi oggetti devono essere tali che: le dimensioni siano limitate il tempo necessario per registrare

Dettagli

Componenti di un processore

Componenti di un processore Componenti di un processore Unità di Controllo Bus Interno REGISTRI Program Counter (PC) Registro di Stato (SR) Registro Istruzioni (IR) Registri Generali Unità Aritmetico- Logica Registro Indirizzi Memoria

Dettagli

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

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 LA CODIFICA DELL INFORMAZIONE Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 Codifica dati e istruzioni Per scrivere un programma è necessario rappresentare istruzioni

Dettagli

Informazione binaria: - codici binari, notazione binaria/ottale/esadecimale -

Informazione binaria: - codici binari, notazione binaria/ottale/esadecimale - Informazione binaria: - codici binari, notazione binaria/ottale/esadecimale - Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin ... Algoritmi,

Dettagli

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

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi Codice BCD Prima di passare alla rappresentazione dei numeri relativi in binario vediamo un tipo di codifica che ha una certa rilevanza in alcune applicazioni: il codice BCD (Binary Coded Decimal). È un

Dettagli

10.. Codici correttori d errore. Modulo TLC:TRASMISSIONI Codici correttori d errore

10.. Codici correttori d errore. Modulo TLC:TRASMISSIONI Codici correttori d errore 10.. Codici correttori d errore Codici correttori d errore 2 Obiettivi: correggere o rivelare errori nella trasmissione di sequenze numeriche (sequenze di simboli, usualmente binari) Correzione di errore

Dettagli

La rappresentazione dei numeri. La rappresentazione dei numeri. Aritmetica dei calcolatori. La rappresentazione dei numeri

La rappresentazione dei numeri. La rappresentazione dei numeri. Aritmetica dei calcolatori. La rappresentazione dei numeri CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell Informazione Aritmetica dei calcolatori Rappresentazione dei numeri naturali e relativi Addizione a propagazione di riporto Addizione

Dettagli

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

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario I sistemi di numerazione Il sistema binario Altri sistemi di numerazione Algoritmi di conversione Esercizi 07/03/2012 2 Sistemi

Dettagli

Laboratorio di Programmazione Laurea in Bioinformatica

Laboratorio di Programmazione Laurea in Bioinformatica Laboratorio di Programmazione Laurea in Bioinformatica 15 dicembre 2008 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

Rappresentazione di numeri interi

Rappresentazione di numeri interi Corso di Calcolatori Elettronici I Esercizi Rappresentazione di numeri interi ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Interi senza segno Qual è l intervallo di rappresentazione

Dettagli

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici Per ogni lezione, sintetizzare i circuiti combinatori o sequenziali che soddisfino le specifiche date e quindi implementarli e

Dettagli

La "macchina" da calcolo

La macchina da calcolo La "macchina" da calcolo Abbiamo detto che gli algoritmi devono essere scritti in un linguaggio "comprensibile all'esecutore" Se il nostro esecutore è il "calcolatore", questo che linguaggio capisce? che

Dettagli

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

Codifica dei Numeri. Informatica ICA (LC) 12 Novembre 2015 Giacomo Boracchi Codifica dei Numeri Informatica ICA (LC) 12 Novembre 2015 Giacomo Boracchi giacomo.boracchi@polimi.it Rappresentazione dei Numeri Codifica dei Numeri in Base 10 Le cifre che abbiamo a disposizione sono

Dettagli

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

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari Lezione 4 L artimetica binaria: I numeri relativi e frazionari Sommario I numeri relativi I numeri frazionari I numeri in virgola fissa I numeri in virgola mobile 1 Cosa sono inumeri relativi? I numeri

Dettagli

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono La codifica binaria Fondamenti di Informatica Introduzione q Il calcolatore usa internamente una codifica binaria (0 e 1) per rappresentare: i dati da elaborare (numeri, testi, immagini, suoni, ) le istruzioni

Dettagli

Aritmetica dei Calcolatori

Aritmetica dei Calcolatori Aritmetica dei Calcolatori Luca Abeni March 5, 2014 Codifica dei Numeri Interi k bit codificano 2 k simboli/valori/numeri... Si usa la base 2 per codificare i numeri Numeri naturali n N: valori da 0 a

Dettagli

Anno 4 Matrice inversa

Anno 4 Matrice inversa Anno 4 Matrice inversa 1 Introduzione In questa lezione parleremo della matrice inversa di una matrice quadrata: definizione metodo per individuarla Al termine della lezione sarai in grado di: descrivere

Dettagli

Lezione 7 ALU: Moltiplicazione e divisione

Lezione 7 ALU: Moltiplicazione e divisione Architettura degli Elaboratori e delle Reti Lezione 7 ALU: Moltiplicazione e divisione F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 1/34 Sommario! Sommatori

Dettagli

= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con

= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con Definizione di matrice Una matrice (di numeri reali) è una tabella di m x n numeri disposti su m righe e n colonne. I numeri che compaiono nella tabella si dicono elementi della matrice. La loro individuazione

Dettagli

Esercitazioni su rappresentazione dei numeri e aritmetica. Interi unsigned in base 2

Esercitazioni su rappresentazione dei numeri e aritmetica. Interi unsigned in base 2 Esercitazioni su rappresentazione dei numeri e aritmetica Salvatore Orlando & Marta Simeoni Interi unsigned in base 2 Si utilizza un alfabeto binario A = {0,1}, dove 0 corrisponde al numero zero, e 1 corrisponde

Dettagli

SCUOLA PRIMARIA MATEMATICA (Classe 1ª)

SCUOLA PRIMARIA MATEMATICA (Classe 1ª) SCUOLA PRIMARIA MATEMATICA (Classe 1ª) Operare con i numeri nel calcolo scritto e mentale Leggere e scrivere numeri naturali in cifre e lettere. Contare in senso progressivo e regressivo. Raggruppare,

Dettagli