< Home
Stampa

Espressioni logiche

Sommario

Nel flusso di esecuzione più semplice di un programma, il computer esegue delle istruzioni in sequenza, che possono essere di input, di output, di calcolo e di valorizzazione di variabili. I programmi che si possono creare con questo tipo di istruzioni sono principalmente di calcolo, anche interattivo con l’utente.

Tuttavia più in generale un programma può avere bisogno di svolgere istruzioni (o gruppi di istruzioni) differenti in base al tipo di problema che deve risolvere. Ad esempio se dobbiamo individuare il più grande di due valori A e B allora dobbiamo eseguire un programma come questo:

  • Confronto A con B
  • se A > B, allora confronto A è più grande
  • se invece non è vero allora B è più grande di A (o uguale ad A)

Come si vede un algoritmo può prendere strade differenti in base ai dati o ai calcoli che deve eseguire.

Per rendere possibile questo sono necessarie istruzioni speciali, dette istruzioni condizionali, ovvero che permettono o meno di svolgere una condizione. Le istruzioni condizionali valutano una espressione, detta espressione logica per decidere in che direzione proseguire il flusso del programma.

Le espressioni logiche sono costrutti che hanno come risultato il valore di vero oppure di falso. Queste espressioni (dette anche Booleane, dal matematico che le introdusse) sono utilizzate per confrontare due o più valori e determinano senza ambiguità se il risultato è vero o falso.

Operatori numerici

Le più semplici espressioni booleane sono quelle numeriche e prevedono degli operatori di confronto specifici che identificano il tipo di confronto:

OperatoreSignificato
==Uguale a
!=Diverso da
>Maggiore di
<Minore di
>=Maggiore o uguale a
<=Minore o uguale a

Esempi:

a == b (vera se a è uguale a b)

a < 3 (vera se a minore di 3)

k == 4 (vera se k è uguale a 4)

c <= 6 (vera se c è minore o uguale a 6).

Operatori booleani

Gli operatori booleani sono usati per confrontare tra loro due espressioni logiche come quelle del paragrafo precedente. Hanno come risultato un valore booleano, quindi VERO o FALSO. Essi sono:

OperatoreSignificato
!Not logico
&&And logico
||Or logico

Vediamoli in dettaglio.

AND

Detto operatore AND, confronta due condizioni, e ci dice che è vera SOLO se entrambe le condizioni sono vere.

Ad esempio:

a == b AND c == b : vera se a è uguale a b E INOLTRE che c è uguale a b

z < 4 AND z > 1  : vera se z è compreso tra 1 e 4 esclusi

Tabella di verità:

condizione 1 veracondizione 1 falsa
condizione 2 veraVEROFALSO
condizione 2 falsaFALSOFALSO

OR

Detto operatore OR, confronta due condizioni, e ci dice che è vera se anche solo una delle condizioni è vera.

Ad esempio:

a == b OR b == C : vera se a è uguale a b OPPURE se b è uguale a C

z == 0 OR z != 3  : vera se z è uguale a 0 OPPURE diverso da 3

condizione 1 veracondizione 1falsa
condizione 2 veraVEROVERO
condizione 2 falsaVEROFALSO

NOT

Detto operatore NOT, si usa per negare la condizione successiva (se falsa diventa vera, se vera diventa falsa).

Ad esempio:

NOT(x > 3): vera solo se x minore o uguale a 3;

NOT(x != 3): vera solo se è uguale a 3

è quindi possibile creare if contenenti espressioni ed operatori:

Precedenze

Occorre fare attenzione alle regole di precedenza:

  • Prima vengono le parentesi
  • Poi vengono gli operatori di confronto
  • Infine gli operatori booleani
  • Tra i booleani l’ordine è NOT (!), AND (&&), OR (||)

Esempi:

A > B OR B < C AND B < D

(A > B OR B < C) AND B < D

Nel primo esempio vengono valutati prima l’AND e poi L’OR. Nel secondo esempio, siccome ci sono le parentesi vengono valutati prima l’OR e poi l’AND.