Le basi di Boole

di | 9 Luglio 2015

Mi piace trattare argomenti prettamente scolastici, e se riesco a legare il tutto alla programmazione lo faccio molto volentieri. Oggi parleremo di Boole. Avete mai sentito parlare di condizioni booleane? Oggi ne saprete di più.

In pratica in questa particolarissima algebra si lavora solo con due valori: Vero e Falso. Rendibili con 1 e 0, ecco perché è particolarmente amata dagli informatici.

Dato che oggi tratteremo solo le basi e a livello di curiosità non approfondirò più di tanto. Questa teoria si basa sulle operazioni particolari. Quelle di base sono OR, NOT e AND. Vediamo assieme qualche esempio.

AND
Letteralmente E, infatti E rende bene il significato. AND è vero se e solo se tutti gli operandi sono veri. Ad esempio nella frase: “Per salire sulla giustra devi avere almeno dodici anni e (AND) essere alto almeno 150 cm” bisogna soddisfare due condizioni contemporaneamente per salire sulla giostra. Se si è alti 160cm ma si hanno 11 anni non si sale sulla giostra.

OR
In italiano esistono due tipi di o:
“Giandomenico, preparo la torta o il tiramisu?”
“Per stare nei sedili anteriori bisogna essere alti 150cm o avere 12 anni”
Nella prima si presume una sola scelta (peccato…), mentre nella seconda basta una condizione soddisfatta. E l’OR è affine al secondo caso. Nella seconda frase per poter stare nei sedili anteriori basta avere 12 anni anche essendo più bassi di 150cm o essere più alti di 150cm avendo meno di 12 anni. Ovviamente uno di 13 anni alto 160cm potrà stare davanti.
Quindi l’OR è vero quando almeno uno degli operandi è vero.

NOT
Per fare un esempio matematico semplice, il NOT equivale a moltiplicare per -1. Cambia il segno. Nell’algebra di Boole rende vero un operando falso e falso un operando vero.

Queste cose possono sembrare fini a se stesse, ma nella prossima “puntata” andremo a vedere le tabelle di verità e magari qualche esempio applicato alla programmazione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *