DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione pre 1ma prova in itinere Marco D. Santambrogio – [email protected] Ver. aggiornata al 24 Agosto 2015 Virgola mobile DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE http://www.archiproducts.com/it/prodotti/137789/poltroncina-girevole-in-pelle-virgola-dall-agnese.html 2 Somma in virgola DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 10,25010 + 11,310 • Ricordiamo 1 bit di segno 8 bit di esponente 23 bit di mantissa 3 10,25010 in BIN DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Segno: 0 • Mantissa: 1010.010 --> 1.010010 x 23 10 = 1010 0,250 = 01 • 0,250 x 2 =0,5 --> 0 • 0,5 x 2 = 1,0 --> 1 • 0,0 x 2 = 0,0 --> 0 poi, sempre 0 • Esponente: 127 + 3 4 11,310 in BIN DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Segno • Mantissa: 1011.010011001… --> 1.0110100110011001… x 23 11 = 1011 0,3 = 010011001100110011001100 • • • • • • • 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.. • Esponente: 127 + 3 5 Somma 10,25010 + 11,310 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 10,25010 + 11,310 = • Stessi esponenti --> sommo mantisse! 1.01001000000000000000000 + 1.01101001100110011001100 ---------------------------10.10110001100110011001100 --> 1.01011000110011001100110 x 21 6 10,25010 + 11,310 = ??? DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1.01011000110011001100110 x 24 10101.1000110011001100110 7 10,25010 + 11,310 = ??? DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1.01011000110011001100110 x 24 10101.1000110011001100110 10101 in DEC? x*24+x*23+x*22+x*21+x*20 = 8 10,25010 + 11,310 = ??? DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1.01011000110011001100110 x 24 10101.1000110011001100110 10101 in DEC? 1*24+0*23+1*22+0*21+1*20 = 16+0+4+0+1 = 21 9 10,25010 + 11,310 = ??? DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1.01011000110011001100110 x 24 10101.1000110011001100110 0. 1000110011001100110 in DEC? 10 10,25010 + 11,310 = 21,55010 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1.01011000110011001100110 x 24 10101.1000110011001100110 0. 10001100110011001100 in DEC? 1/2 = 0.5 +1/32= 0.03125 +1/64 = 0.015625 +1/512 = 0.001953125 +1/1024 = 0.0009765625 +1/8192 = 0.0001220703125 +1/16384 = 0.00006103515625 +1/131072 = 0.000007629394531 +1/262144 = 0.000003814697266 = 0.549999237060547 11 10,25010 + 11,310 = ??? DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1.01011000110011001100110 x 24 10101.1000110011001100110 10101.10001100110011001100 in DEC 21.549999237060547 --> (Round) = 21.5 12 Costrutti condizionali DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE http://burnsmcdmedia.com/careersblog/wp-content/uploads/2013/03/QuestionMark.jpg 13 Costrutti condizionali DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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? 14 Seconda parte DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (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? 15 Seconda parte: 1ma domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) L’espressione è vera o falsa quando x=0 e y=9? 16 Seconda parte: 1ma domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (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) ) 17 Seconda parte: 1ma domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (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) ) 18 Seconda parte: 1ma domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (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 ) 19 Seconda parte: 1ma domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (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) 20 Seconda parte: 1ma domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (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 21 Seconda parte: 1ma domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (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 22 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) Se y>7, per quali valori di x l’espressione è vera? 23 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (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) ) 24 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (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) ) NOTA: vi è un errore!!! y dovrebbe essere > 7 25 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (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) ) 26 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( (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) ) 27 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 28 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 !(R&&1)||(1||K) 29 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 !(R&&1)||(1||K) !(R&&1)||(1) 30 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 !(R&&1)||(1||K) !(R&&1)||(1) Z: R&&1 31 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Quando !( (x>2) && V ) || ( V || (x<1) ) è vera? R: x>2, K: x<1 !(R&&1)||(1||K) !(R&&1)||(1) !Z || 1 32 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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 33 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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 34 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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 35 Seconda parte: 2nda domanda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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!!!! 36 Prima parte DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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à. 37 Prima parte: sostituiamo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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à. 38 Prima parte: tabella verità DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( A && !B ) || ( !B || C ) ABC 000 001 010 011 100 101 110 111 39 Prima parte: tabella verità DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( A && !B ) || ( !B || C ) A B C !B 000 1 001 1 010 0 011 0 100 1 101 1 110 0 111 0 40 Prima parte: tabella verità DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( A && !B ) || ( !B || C ) A B C !B A && !B 000 1 0 001 1 0 010 0 0 011 0 0 100 1 1 101 1 1 110 0 0 111 0 0 41 Prima parte: tabella verità DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( A && !B ) || ( !B || C ) A B C !B A && !B !(A&&!B) 000 1 0 1 001 1 0 1 010 0 0 1 011 0 0 1 100 1 1 0 101 1 1 0 110 0 0 1 111 0 0 1 42 Prima parte: tabella verità DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( A && !B ) || ( !B || C ) A B C !B 000 1 001 1 010 0 011 0 100 1 101 1 110 0 111 0 A&&!B !(A&&!B) !B||C 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 43 Prima parte: tabella verità DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE !( A && !B ) || ( !B || C ) A B C !B 000 1 001 1 010 0 011 0 100 1 101 1 110 0 111 0 A&&!B !(A&&!B) !B||C 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 !()||() 1 1 1 1 1 1 1 1 44 Prima parte: tabella verità DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma quindi… !( (x>2) && !(y>7) ) || ( !(y>7) || (x<1) ) è una TAUTOLOGIA!!! 45 Strutture e ricerche in dati DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE https://assets.entrepreneur.com/content/16x9/822/basics-business-structure.jpg 46 Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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 47 Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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?) 48 Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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 49 Agenda – librerie e definizioni DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 50 Agenda – inizializzazione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 51 Riceca Vettori DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma che Salvati N numeri interi positivi, compresi tra 0 e 10, nell’array1 Salvati K (K<N) numeri interi positivi, compresi tra 0 e 10, nell’array2 Verifica se l’array 2 è contenuto nell’array1 Esempio1: a1[]={0,4,1,1,1,3,0,0,0,3} a2[]={0,0} a2 è contenuto in a1 Esempio2: a1[]={0,4,1,1,1,3,0,0,0,3} a2[]={5,7,0,1,5} a2 non è contenuto in a1 52 Ricerca Vettori: Dati e Dim DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 53 Ricerca Vettori: Inserimento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 54 Ricerca Vettori: Trova DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 55 Ricerca Vettori: Stampa DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 56 Fine… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 57