DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione pre 1ma prova in itinere Marco D. Santambrogio – Ver. aggiornata al 13 Novembre 2015
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info logistiche 2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info logistiche Ven 20 Novembre: NO lezione 3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info logistiche Ven 20 Novembre: NO lezione Gio 19 Novembre: Demo 1ma prova Dove: L01 4
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Virgola mobile 5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma in virgola 10, ,3 10 Ricordiamo 1 bit di segno 8 bit di esponente 23 bit di mantissa 6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Op virgola mobile: Somma e Sottrazione La somma o sottrazione tra numeri in virgola mobile viene eseguita secondo i seguenti passi: Si sceglie il numero con esponente minore Si fa scorrere la sua mantissa a destra un numero di bit pari alla differenza dei due esponenti Si assegna all’esponente del risultato il maggiore tra gli esponenti degli operandi Si esegue l’operazione di somma (algebrica) tra le mantisse per determinare il valore ed il segno del risultato Si normalizza il risultato così ottenuto Non sempre quest’ultima operazione è necessaria Attenzione!!! Il riporto si può propagare anche dopo la posizione della virgola 7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, in BIN Segno: 0 8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, in BIN Segno: 0 Mantissa: 10 = 1010 0,250 = 01 (segue il perché) 0,250 x 2 =0,5 --> 0 0,5 x 2 = 1,0 --> 1 0,0 x 2 = 0,0 --> 0 poi, sempre 0 9
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, in BIN Segno: 0 Mantissa: 10 = 1010 0,250 = 01 (segue il perché) 0,250 x 2 =0,5 --> 0 0,5 x 2 = 1,0 --> 1 0,0 x 2 = 0,0 --> 0 poi, sempre 0 Normalizzo: > x
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, in BIN Segno: 0 Mantissa: 10 = 1010 0,250 = 01 (segue il perché) 0,250 x 2 =0,5 --> 0 0,5 x 2 = 1,0 --> 1 0,0 x 2 = 0,0 --> 0 poi, sempre 0 Normalizzo: > x 2 3 Esponente:
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolo esponente Esponente: = = = *2 7 +0*2 6 +0*2 5 +0*2 4 +0*2 3 +1*2 2 +*2 1 +0*2 0 = =
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, in BIN Segno: 0 Mantissa: Esponente:
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 11,3 10 in BIN Segno: 0 14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 11,3 10 in BIN Segno: 0 Mantissa: 11 = 1011 0,3 = (segue il perché) 0,3 x 2 = 0,6 --> 0 0,6 x 2 = 1,2 --> 1 0,2 x 2 = 0,4 --> 0 0,4 x 2 = 0,8 --> 0 0,8 x 2 = 1,6 --> 1 0,6 x 2 = 1,2 --> 1 0, 2 x 2 = 0,4 --> 0 … sequenza già vista.. 15
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 11,3 10 in BIN Segno: 0 Mantissa: 11 = 1011 0,3 = (segue il perché) 0,3 x 2 = 0,6 --> 0 0,6 x 2 = 1,2 --> 1 0,2 x 2 = 0,4 --> 0 0,4 x 2 = 0,8 --> 0 0,8 x 2 = 1,6 --> 1 0,6 x 2 = 1,2 --> 1 0, 2 x 2 = 0,4 --> 0 … sequenza già vista.. Normalizzo: … … x
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 11,3 10 in BIN Segno: 0 Mantissa: 11 = 1011 0,3 = (segue il perché) 0,3 x 2 = 0,6 --> 0 0,6 x 2 = 1,2 --> 1 0,2 x 2 = 0,4 --> 0 0,4 x 2 = 0,8 --> 0 0,8 x 2 = 1,6 --> 1 0,6 x 2 = 1,2 --> 1 0, 2 x 2 = 0,4 --> 0 … sequenza già vista.. Normalizzo: … … x 2 3 Esponente:
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Op virgola mobile: Somma e Sottrazione La somma o sottrazione tra numeri in virgola mobile viene eseguita secondo i seguenti passi: Si sceglie il numero con esponente minore Si fa scorrere la sua mantissa a destra un numero di bit pari alla differenza dei due esponenti Si assegna all’esponente del risultato il maggiore tra gli esponenti degli operandi Si esegue l’operazione di somma (algebrica) tra le mantisse per determinare il valore ed il segno del risultato Si normalizza il risultato così ottenuto Non sempre quest’ultima operazione è necessaria Attenzione!!! Il riporto si può propagare anche dopo la posizione della virgola 18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma 10, , , : esponente = ,3 10 : esponente = 130 Stesso esponente!!! 19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Op virgola mobile: Somma e Sottrazione La somma o sottrazione tra numeri in virgola mobile viene eseguita secondo i seguenti passi: Si sceglie il numero con esponente minore Si fa scorrere la sua mantissa a destra un numero di bit pari alla differenza dei due esponenti Si assegna all’esponente del risultato il maggiore tra gli esponenti degli operandi Si esegue l’operazione di somma (algebrica) tra le mantisse per determinare il valore ed il segno del risultato Si normalizza il risultato così ottenuto Non sempre quest’ultima operazione è necessaria Attenzione!!! Il riporto si può propagare anche dopo la posizione della virgola 20
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolo esponente DEC: = 130 BIN:
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Op virgola mobile: Somma e Sottrazione La somma o sottrazione tra numeri in virgola mobile viene eseguita secondo i seguenti passi: Si sceglie il numero con esponente minore Si fa scorrere la sua mantissa a destra un numero di bit pari alla differenza dei due esponenti Si assegna all’esponente del risultato il maggiore tra gli esponenti degli operandi Si esegue l’operazione di somma (algebrica) tra le mantisse per determinare il valore ed il segno del risultato Si normalizza il risultato così ottenuto Non sempre quest’ultima operazione è necessaria Attenzione!!! Il riporto si può propagare anche dopo la posizione della virgola 22
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma 10, ,
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Op virgola mobile: Somma e Sottrazione La somma o sottrazione tra numeri in virgola mobile viene eseguita secondo i seguenti passi: Si sceglie il numero con esponente minore Si fa scorrere la sua mantissa a destra un numero di bit pari alla differenza dei due esponenti Si assegna all’esponente del risultato il maggiore tra gli esponenti degli operandi Si esegue l’operazione di somma (algebrica) tra le mantisse per determinare il valore ed il segno del risultato Si normalizza il risultato così ottenuto Non sempre quest’ultima operazione è necessaria Attenzione!!! Il riporto si può propagare anche dopo la posizione della virgola 24
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, ,3 10 = ??? Mantissa:
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, ,3 10 = ??? Mantissa: Normalizzo --> x
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, ,3 10 = ??? Mantissa: Normalizzo --> x 2 1 Ricordiamo però che l’esponente era già pari a 2 3, quindi: 27
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, ,3 10 = ??? Mantissa: Normalizzo --> x 2 1 Ricordiamo però che l’esponente era già pari a 2 3, quindi: x 2 4 =
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, ,3 10 = ??? in DEC? x*2 4 +x*2 3 +x*2 2 +x*2 1 +x*2 0 = 29
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, ,3 10 = ??? in DEC? 1*2 4 +0*2 3 +1*2 2 +0*2 1 +1*2 0 = = 21 30
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, ,3 10 = ??? = in DEC? 31
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, ,3 10 = ??? in DEC? 1/2 = /32= /64 = /512 = /1024 = /8192 = /16384 = / = / = =
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 33
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10, ,3 10 = 21, in DEC = = Round -->
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti condizionali 35
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti condizionali Si consideri la condizione, scritta in C, in cui x e y siano due variabili int: !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) Si scriva l’espressione booleana associata alla condizione descritta ottenuta dalla prima formula sostituendo la variabile A con x>2, la variabile B con y>7, la variabile C con x<1. Se ne dimostri il valore di verità associato, tramite la compilazione della corrispondente tabella di verità. Si risponda, giustificando bene le risposte, alle seguenti domande: L’espressione è vera o falsa quando x=0 e y=9? Se y>7, per quali valori di x l’espressione è vera? 36
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) Si risponda, giustificando bene le risposte, alle seguenti domande: L’espressione è vera o falsa quando x=0 e y=9? Se y>7, per quali valori di x l’espressione è vera? 37
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 1ma domanda !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) L’espressione è vera o falsa quando x=0 e y=9? 38
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 1ma domanda !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) L’espressione è vera o falsa quando x=0 e y=9? !( (0>2) && !(9>7) ) || ( !(9>7) || (0<1) ) 39
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 1ma domanda !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) L’espressione è vera o falsa quando x=0 e y=9? !( (0>2) && !(9>7) ) || ( !(9>7) || (0<1) ) !( (F) && !(V) ) || ( !(V) || (V) ) 40
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 1ma domanda !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) L’espressione è vera o falsa quando x=0 e y=9? !( (0>2) && !(9>7) ) || ( !(9>7) || (0<1) ) !( (F) && !(V) ) || ( !(V) || (V) ) !( F && F ) || ( F || V ) 41
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 1ma domanda !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) L’espressione è vera o falsa quando x=0 e y=9? !( (0>2) && !(9>7) ) || ( !(9>7) || (0<1) ) !( (F) && !(V) ) || ( !(V) || (V) ) !( F && F ) || ( F || V ) !(F) || (V) 42
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 1ma domanda !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) L’espressione è vera o falsa quando x=0 e y=9? !( (0>2) && !(9>7) ) || ( !(9>7) || (0<1) ) !( (F) && !(V) ) || ( !(V) || (V) ) !( F && F ) || ( F || V ) !(F) || (V) V || V 43
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 1ma domanda !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) L’espressione è vera o falsa quando x=0 e y=9? !( (0>2) && !(9>7) ) || ( !(9>7) || (0<1) ) !( (F) && !(V) ) || ( !(V) || (V) ) !( F && F ) || ( F || V ) !(F) || (V) V || V V 44
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) Se y>7, per quali valori di x l’espressione è vera? 45
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) Se y>7, per quali valori di x l’espressione è vera? !( (x>2) && !(7>7) ) || ( !(7>7) || (x<1) ) 46
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) Se y>7, per quali valori di x l’espressione è vera? !( (x>2) && !(7>7) ) || ( !(7>7) || (x<1) ) 47 NOTA: vi è un errore!!! y dovrebbe essere > 7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) Se y>7, per quali valori di x l’espressione è vera? !( (x>2) && !(7>7) ) || ( !(7>7) || (x<1) ) !( (x>2) && !(F) ) || ( !(F) || (x<1) ) 48
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) Se y>7, per quali valori di x l’espressione è vera? !( (x>2) && !(7>7) ) || ( !(7>7) || (x<1) ) !( (x>2) && !(F) ) || ( !(F) || (x<1) ) !( (x>2) && V ) || ( V || (x<1) ) 49
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 50
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 !(R&&1)||(1||K) 51
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 !(R&&1)||(1||K) !(R&&1)||(1) 52
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 !(R&&1)||(1||K) !(R&&1)||(1) Z: R&&1 53
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 !(R&&1)||(1||K) !(R&&1)||(1) !Z || 1 54
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 !(R&&1)||(1||K) !(R&&1)||(1) !Z || 1 T: !Z 55
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 !(R&&1)||(1||K) !(R&&1)||(1) !Z || 1 T||1 56
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 !(R&&1)||(1||K) !(R&&1)||(1) !Z || 1 T||1 1 57
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Seconda parte: 2nda domanda Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 !(R&&1)||(1||K) !(R&&1)||(1) !Z || 1 T||1 1 SEMPRE!!!! 58
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima parte Si consideri la condizione, scritta in C, in cui x e y siano due variabili int: !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) Si scriva l’espressione booleana associata alla condizione descritta ottenuta dalla prima formula sostituendo la variabile A con x>2, la variabile B con y>7, la variabile C con x<1. Se ne dimostri il valore di verità associato, tramite la compilazione della corrispondente tabella di verità. 59
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima parte: sostituiamo Si consideri la condizione, scritta in C, in cui x e y siano due variabili int: !( A && !B ) || ( !B || C ) Si scriva l’espressione booleana associata alla condizione descritta ottenuta dalla prima formula sostituendo la variabile A con x>2, la variabile B con y>7, la variabile C con x<1. Se ne dimostri il valore di verità associato, tramite la compilazione della corrispondente tabella di verità. 60
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima parte: tabella verità !( A && !B ) || ( !B || C ) A B C
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima parte: tabella verità !( A && !B ) || ( !B || C ) A B C !B
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima parte: tabella verità !( A && !B ) || ( !B || C ) A B C !B A && !B
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima parte: tabella verità !( A && !B ) || ( !B || C ) A B C !B A && !B !(A&&!B)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima parte: tabella verità !( A && !B ) || ( !B || C ) A B C !B A&&!B !(A&&!B) !B||C
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima parte: tabella verità !( A && !B ) || ( !B || C ) A B C !B A&&!B !(A&&!B) !B||C !()||()
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima parte: tabella verità Ma quindi… !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) è una TAUTOLOGIA!!! 67
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEBAZINGA!!!! 68 Ecco perché ero partito dalla 2nda! Voi all’esame LEGGETE BENE!
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Strutture e ricerche in dati 69
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEOccorrenze Si scriva un programma che, ricevuti e salvati in un array N numeri interi positivi, compresi tra 0 e 10 calcoli le occorrenze di ciascuna delle cifre Stampi a video il valore delle occorrenze, solo per i numeri presenti almeno una volta Esempio: a[]={0,4,1,1,1,3,0,0,0,3} 0: 4 1: 3 3: 2 4: 1 70
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Occorrenze: Soluzione 71
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Occorrenze: Dimensione 72
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Occorrenze: Inserimento e Init 73
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Occorrenze: Calcola Occorrenze 74
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Occorrenze: Stampa 75
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEAgenda Uno studio medico richiede di realizzare una piccola agenda degli appuntamenti settimanali. Per semplicità si considerino solo i giorni e le ore lavorativi (5 giorni a settimana, dalle 8 alle 17). Sempre per semplicità, gli appuntamenti vengono allocati su base oraria 76
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEAgenda Per ogni appuntamento occorre memorizzare: Nome e Cognome del paziente Prestazione richiesta Eventuali note Cifra pagata Piccolo suggerimento: vi servirà anche uno “stato” (typedef enum?) 77
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEAgenda Si devono poter effettuare le seguenti operazioni: Inserire un nuovo appuntamento Vedere tutti gli appuntamenti di un giorno Inserire un pagamento Stampare una “ricevuta” di pagamento 78
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Agenda – librerie e definizioni 79
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Agenda – inizializzazione 80
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Agenda – Ciclo principale 81
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Agenda – Switch 82
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Switch: Inserisci Appuntamento 83
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Switch: Visualizza Dati Giornata 84
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Switch: Inserisci Pagamento 85
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Switch: Stampa Ricevuta 86
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Agenda – Switch 87
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEFine… 88