Informatica B Esercizio algebra booleana Informatica B Esercizio algebra booleana Ing. Michele Scandale 25-10-2012 Michele Scandale <[email protected]> 1 Informatica B Esercizio algebra booleana Esercizio Si consideri la seguente espressione booleana: (not B and C) or not (A and C) Si costruisca la tabella di verità corrispondente e si dica se: la formula è sempre vera per qualiasi valore di A, B, C la formula è sempre falsa per qualsiasi valore di A, B, C Michele Scandale <[email protected]> 2 Informatica B Esercizio algebra booleana Soluzione Formula: (not B and C) or not (A and C) Valori intermedi: A 0 0 0 0 1 1 1 1 X = not B Z = A and C Y = X and C W = not Z B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Michele Scandale <[email protected]> X 1 1 0 0 1 1 0 0 Y 0 1 0 0 0 1 0 0 Z 0 0 0 0 0 1 0 1 W 1 1 1 1 1 0 1 0 Y or W 1 1 1 1 1 1 1 0 3 Informatica B Esercizio algebra booleana Esercizio Si consideri la seguente condizione scritta in linguaggio C, con a, b di tipo int: (!(a != b) && b < 5) || !(b > 9 && b < 5) ottenuta dalla formula precedente mediante le sostituzioni A = b > 9, B = a != b, C = b < 5. Si dica se: è vera o falsa quando a = 3 e b = 7? è vera per qualsiasi valore di a e b? è falsa per qualsiasi valore di a e b? Michele Scandale <[email protected]> 4 Informatica B Esercizio algebra booleana Soluzione La parte sinistra dell’espressione, (!(a != b) && b < 5), risulta essere vera solo se a == b con b < 5. Dunque con i valori assegnati si ha che è falsa. In generale non è né vera né falsa. La parte destra dell’espressione, !(b > 9 && b < 5), equivale per de Morgan a b <= 9 || b >= 5, da cui si deduce che per qualunque valore di b è vera. Dunque lo è anche per l’assegnamento dato. Considerando che le due sottoespressioni analizzate sono in relazione di or risulta che l’espressione è sempre vera, poichè almeno una risulta essere sempre vera. Michele Scandale <[email protected]> 5