34. Connettivi logici (And - Or - Not)


A questo punto dobbiamo spiegare meglio come riuscire a formalizzare in maniera logica i concetti che vogliamo trasformare in programma; questa operazione è forse la più importante e complessa, perché è su questa che poi si baserà il lavoro di scrittura del codice che andremo a mettere in atto.

I due strumenti che ci vengono in soccorso sono l'Algebra di Boole (utile per le operazioni sui dati) ed i diagrammi di flusso (utili per rappresentare in maniera ordinata i nostri processi logici).

 

Apriamo una piccola parentesi sull'Algebra di Boole; questo tipo di logica non è correlata esclusivamente al mondo della programmazione, ma fa parte della vita di tutti i giorni.

Pensiamo ad esempio a quando vogliamo uscire di casa, se piove non possiamo uscire; questo processo mentale, cioè il verificare se piove, può assumere, di fatto, due stati, o è vero (e quindi non usciamo) o è falso (e quindi usciamo). Si può capire che se questo tipo di logica risulta utile a noi come esseri umani, lo è ancora di più per un computer poiché il suo linguaggio è fatto solo di bit ed è possibile associare al vero il valore 1 ed al falso il valore 0.

 

L'Algebra di Boole verrà qui solamente accennata e sostanzialmente consiste nel prendere come valori "vero" e "falso" (o 1 e 0); posti questi valori andiamo a vedere come operazioni logiche producano dei risultati nuovi e sensati.

 

AND – Congiunzione

 
falso AND falso        risultato falso
falso AND vero         risultato falso
vero AND falso         risultato falso

vero AND vero      risultato vero 

 

Riusciamo facilmente a comprendere che l'AND restituisce un valore vero "se e solamente se gli altri due valori sono veri", questo vuol dire che anche in una successione di più operazioni AND basta che un valore sia falso ed anche il risultato lo sarà.

 

OR – Disgiunzione

 

falso OR falso          risultato falso
falso OR vero           risultato vero
vero OR falso           risultato vero
vero OR vero            risultato vero

 

 

L'OR invece restituisce un valore vero "se e solamente se almeno uno dei due valori risulta vero"; in poche parole anche in una successione di più operazioni OR basta che un valore sia vero ed anche il risultato lo sarà.

 

NOT – Negazione

 
NOT falso       risultato vero

NOT vero      risultato falso 


Il NOT si riduce ad una semplice operazione di negazione del valore acquisito.

Si può evincere che grazie all'Algebra di Boole è possibile formalizzare i nostri pensieri riuscendo così a creare strutture complesse di rapido utilizzo, ma che non erano direttamente connesse ai dati iniziali. Basti pensare che i microprocessori stessi si basano sulla semplice logica dell'Algebra di Boole, con la quale è possibile formalizzare qualsiasi tipo di ingresso.