Algebra di Boole
Le variabili assumono e le funzioni restituiscono solo due valori:
1 o V o VERO : vero
0 o F o FALSO : falso
Vediamo alcune funzioni elementari e come descriverle
mediante le tabelle di verità
NOT
x
x
NON(x)
F
V
V
F
La funzione restituisce all’uscita
la negazione del valore x
presente all’ingresso.
OR e AND
AND
OR
x
y
x+y
O(x,y)
x y
E(x,y)
●
x
y
F
F
F
F
F
F
F
V
V
F
V
F
V
F
V
V
F
F
V
V
V
V
V
V
L’uscita è vera (V) se almeno
un ingresso è vero.
L’uscita è vera (V) se tutti
gli ingressi sono veri.
Leggi di de Morgan
Legano tra loro le funzioni NOT, OR e AND.
x+ y = x• y
x• y = x + y
La verifica può essere fatta usando le tabelle di verità
x
y
x+ y x+ y
x
y
x•y
F
F
F
V
V
V
V
F
V
V
F
V
F
F
V
F
V
F
F
V
F
V
V
V
F
F
F
F
Impariamo (solo un pochino...) a
programmare: le variabili
Sono “scatole”, ognuna con un proprio nome, idonee a contenere informazioni di uno specifico tipo: numeri, caratteri, valori logici, e molto altro.
pippo
Eseguo nell’ordine le istruzioni
1. pippo topolino
vuota!
167
2. topolino 177
topolino
167
pippo
topolino
Si parla di assegnazione: assegno alla
variabile “pippo” il valore contenuto nella
variabile “topolino”.
177
Impariamo (solo un pochino...) a
programmare: le assegnazioni
pippo
167
pippo
Eseguo nell’ordine le istruzioni
197
1. pippo pippo + 30
topolino
177
2. topolino 2*pippo
topolino
394
Impariamo (un po’...) a programmare:
vettore o array
È un gruppo di variabili omogenee tra loro. L’intero
gruppo ha un nome ed ogni variabile del gruppo
(componente) è individuata da un numero (indice)
1
12
2
167
3
1
4
5
12
200
condominio
condominio(3) è la 3°componente della variabile condominio
condominio(3) condominio(5) assegna alla 3° componente
della variabile condominio il contenuto della 5° componente
Impariamo (solo un pochino...) a
programmare: le scelte
Permettono di scegliere quali istruzioni eseguire a seconda del
valore logico (VERO o FALSO) assunto da una condizione.
È l’istruzione se ... allora ... altrimenti finese
se pippo <= topolino
allora
massimo topolino
altrimenti
massimo pippo
finese
Dopo il finese la variabile massimo
contiene il valore più grande tra quelli
contenuti nelle variabili “pippo” e “topolino”
se pippo <= topolino
allora
massimo topolino
finese
Dopo il finese la variabile massimo
contiene il valore di “topolino” se questo
è maggiore del valore di pippo.
Impariamo (solo un pochino...) a
programmare: le scelte nidificate
sonoUguali FALSO
se pippo <= topolino
allora
massimo topolino
se pippo = topolino
allora
sonoUguali VERO
finese
altrimenti
massimo pippo
finese
Impariamo (solo un pochino...) a
programmare: ripetizione
Permette di ripetere lo stesso gruppo di istruzioni finché
una condizione di controllo è VERA
finché condizione... finefinché
5
kmax
1. kmax 5
2. somma 0
3. k1
4. finché k<=kmax
5.
somma somma + k
6.
k k+1
7. finefinché
k
1
2
3
4
5
3
6
10
15
+
0
1
somma
6
Un algoritmo un po’ più complesso...
Possiamo mettere assieme ripetizioni e scelte!
Nell’esempio che segue, calcoliamo la somma dei numeri
pari compresi tra 1 e kmax.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
kmax 5
sommaPari 0
k1
finché k<=kmax
se k è pari
allora
sommaPari sommaPari + k
finese
k k+1
finefinché
... ed il suo programma in Matlab
o Octave (gratuito...)
rem(k,h) dà il resto della
divisione di k per h
(numeri naturali): è una
istruzione del Matlab
ripetizione
scelta