Algebra Booleana⚓︎
L'algebra do Bool opera su delle variabili, per l'appunto booleane, e su dei valori costanti. I valori costanti sono due: vero e falso. Quest'ultimi possono essere rappresentati con 1 e 0, V e F, true e false ma anche T e F.
Questi valori costanti sono detti valori booleani e sono molto utili per
le condizioni dei costrutti SE
e MENTRE
.
Operatori⚓︎
Per poter concatenare tra loro più condizioni si possono utilizzare gli operatori booleani. Questi operatori sono essenzialmente dei costrutti che operano su valori booleani e restituiscono un valore booleano. Questi operatori sono:
NOT
: negazione, inverte il valore booleano e si scrive con il simbolo¬
;AND
: congiunzione, restituisce vero se entrambi i valori sono veri, altrimenti restituisce falso e si scrive con il simbolo∧
;OR
: disgiunzione, restituisce vero se almeno uno dei due valori è vero, altrimenti restituisce falso e si scrive con il simbolo∨
;
A | B | A ∧ B | A ∨ B |
---|---|---|---|
V | V | V | V |
V | F | F | V |
F | V | F | V |
F | F | F | F |
Come è possibile constatare, l'operazione AND
è molto più restrittiva delle
altre, infatti restituisce vero solo se entrambi i valori sono veri. L'operazione
OR
invece è molto più permissiva, infatti restituisce vero se almeno uno dei
due valori è vero.
Esempi⚓︎
Con le variabili booleane è possibile costruire delle semplici espressioni che restituiscono dei valori booleani, ad esempio:
L'operatore NOT
è sì utile per negare una condizione, ma è molto più comodo
e leggibile utilizzare le condizioni al "positivo", ovvero senza negare la
condizione. Ad esempio:
Bisogna fare attenzione alle condizioni booleane, poiché è possibile che queste non diventino mai false, ad esempio:
In questo caso si ha che \(a \in \,]5,\ 10[\) e nel caso in cui fosse presente
un OR
al posto dell'AND
la condizione non diventerebbe mai falsa.
Asserzioni⚓︎
Le asserzioni in un linguaggio di programmazione sono delle espressioni booleane che possono essere utilizzate per:
- documentare un programma, descrivendone la semantica;
- verificare un programma, provandone la correttezza formale.
Le asserzioni possono essere pre-condizioni e post-condizioni
La pre-condizione o premessa, è un'espressione booleana che deve essere verificata prima di un'istruzione o di un blocco di istruzioni. La post-condizione o conseguenza, è un'espressione booleana che deve essere verificata dopo un'istruzione o un blocco di istruzioni.
Esercizi⚓︎
Scrivere le espressioni equivalenti alle seguenti senza utilizzare la negazione:
(a > b) = (a <= b)
;((a <= b) ∧ (c <= d)) = ((a >= b) ∨ (c >= d))
;((a < 1) ∨ (b < 2) ∧ (c < 3)) = ((a > 1) ∧ (b > 2) ∨ (c > 3))
.