[ø] Esercizio 105 Un programma in linguaggio C contiene la seguente condizione: if ( (x==0 && y==1) || (z==5 && y==1) ) Usando le tecniche dell’algebra Booleana riscrivere l’espressione in modo che complessivamente richieda un minor numero di operazioni per il suo calcolo (senza tener conto di eventuali ottimizzazioni del compilatore). Soluzione x y zy ( x z) y Quindi, in pratica si è raccolto y if ( (x==0 || z==5 ) && (y==1) ) Esercizio 123 Si dimostri che la seguente espressione è un’identità Booleana: ac bc ab c abc Soluzione. Hanno la stessa tabella della verità (nota: in rispettivamente in giallo, verde, blu i termini dei due membri, due colori in caso di aree sovrapposte) a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 1M 1 0 1 0 1 1 1 0 a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 2M 1 0 1 0 1 1 1 0 ES 118 AB + AC + AD + ABC + ABD + ACD + BCD = = A (B + C + D + BC + BD + CD) + BCD= = A[(B(1+C) + C(1+D)+D(1+C)] + BCD = A[B+C+D] + BCD = AB + AC + AD + BCD R. se si ipotizza che (teo>17) = !(teo<18) [vero se i voti vanno da 1 a 30] Teo > 17 = A; pro > 17 = B; lab > 24 = C; orale > 27 = D; AB + AC + AD = A(B+C+D) (teo >17) && ( (pro>17) || (lab>24) || (orale > 27) ) Iniziale: 3 &&, 1 !, 2 ||, finale: 1 &&, 0 !, 2 || Sup. prova scritta di teoria= A, sup programmazione = B, orale integrativo = C, variabili indipendenti, X dipendente X = AB + ABC = B(A + AC) B’D’ + A’BD + AD . Costruiamo la tabella della verità. D 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 BD' 0 0 1 1 0 0 0 0 A'BD 0 0 0 0 0 0 1 0 AD 0 0 0 0 0 1 0 1 X 0 0 1 1 0 1 1 1 Le soluzioni sono indicate in giallo. Y= x (y+z’) + x’(yz’)’ = x (y+z’) + x’(y’+z) = xy + xz’ + x’y’ + x’z = = = =1 che è un Ex-Nor