Professional Documents
Culture Documents
Introduzione
Obiettivo di questa dispensa la comprensione degli operatori booleani e lacquisizione di abilit che ne consentano un corretto uso allinterno di un programma.
Congiunzione AND
Due enunciati p e q possono essere collegati dal connettivo AND. Definizione: Lenunciato composto p AND q vero se e solo se sia p che q sono veri. In ogni altro caso falso. Il valore di verit di p AND q pu essere rappresentato anche in forma tabellare.
p V V F F
Bocchi Cinzia Ultimo aggiornamento: 05/10/2012
q p AND q V V F F V F F F
1
Disgiunzione OR
Due enunciati p e q possono essere collegati dal connettivo OR. Definizione: Lenunciato composto p OR q falso se e solo se sia p che q sono falsi. In ogni altro caso vero. Il valore di verit di p OR q pu essere rappresentato anche in forma tabellare.
p V V F F
Negazione NOT
q p OR q V V F V V V F F
Dato un enunciato p possibile formare un altro enunciato NOT p che detto negazione di p. Definizione: Lenunciato composto NOT p vero se e solo p falso e viceversa. Il valore di verit di NOT p pu essere rappresentato anche in forma tabellare.
p NOT p V F F V
Tavole di verit
Combinando in vario modo gli enunciati semplici p, q, r e i connettivi logici si possono ottenere enunciati composti sempre pi complessi. Per determinare i valori di verit di tali enunciati si utilizzano le tavole di verit. Chiariamo il concetto con un esempio. Prima, per, necessario comprendere che anche gli operatori booleani, cos come gli operatori aritmetici, seguono delle regole di precedenza durante il calcolo di espressioni complesse. In particolare: NOT ha la massima precedenza, AND segue NOT nella scala di precedenza e infine OR ha precedenza minima. Esempio Supponiamo di voler determinare il valore di verit dellenunciato composto NOT(p AND q) Creiamo la seguente tabella:
p V V F F
e calcoliamo i valori di verit in base alle regole precedentemente studiate. Osservazione importante Per sapere quante righe ha una tavola di verit, dovete calcolare 2 n dove n il numero di enunciati semplici. Per esempio, nel caso precedente il numero di enunciati semplici 2 (p e q) e quindi le righe della tavola sono 2 2=4.
F co nd iz ion e2
istruzio ne1
istruzio ne2
La codifica Java :
if(condizione1) { if(condizione2) { istruzione1; istruzione2; } }
Le due istruzioni istruzione1 e istruzione2 vengono eseguite se e solo se sono vere entrambe le condizioni condizione1 e condizione2, cio se e solo se
3
Bocchi Cinzia Ultimo aggiornamento: 05/10/2012
un enunciato vero.
Possiamo allora applicare tale considerazione al diagramma di flusso precedente, ottenendo una significativa semplificazione.
istru zion e1
istru zion e2
La codifica Java :
Esempio 2 Consideriamo il seguente frammento di un diagramma di flusso e supponiamo che le due condizioni condizione1 e condizione2 non possano mai essere entrambe verificate contemporaneamente.
F condizione1
istruzione1
F condizione2
istruzione1
4
Bocchi Cinzia Ultimo aggiornamento: 05/10/2012
La codifica Java :
Listruzione istruzione1 viene eseguita se vera la condizione condizione1 (essendo condizione2 falsa) oppure se vera la condizione condizione2 (essendo condizione1 falsa). Lunico caso in cui non viene eseguita quando ambedue le condizioni sono false, cio quando condizione1 OR condizione2 un enunciato falso. Il caso in cui le due condizioni sono vere contemporaneamente stato escluso perch altrimenti occorrerebbe eseguire listruzione istruzione1 due volte. Applicando tale considerazione al diagramma di flusso precedente, otteniamo:
co nd izion e1 OR co nd izion e2
istru zio n e1
La codifica Java :
F condizione
istruzione2
istruzione1
5
Bocchi Cinzia Ultimo aggiornamento: 05/10/2012
La codifica Java :
if(condizione) { istruzione1; } else { istruzione2; }
Se la condizione vera viene eseguita istruzione1, altrimenti istruzione2. Un diagramma equivalente pu essere ottenuto negando la condizione e invertendo la posizione delle etichette dei rami uscenti dal rombo.
NOT condizione
istruzione2
istruzione1
La codifica Java :
Approfondimenti
http://it.wikipedia.org/wiki/Algebra_di_Boole
Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
6
Bocchi Cinzia Ultimo aggiornamento: 05/10/2012