Appunti della terza lezione di Fondamenti di Informatica

Appunti della terza lezione di
Fondamenti di Informatica
Fabio Fassetti
a.a. 2013/2014
1
Operatori Aritmetici
Gli operatori aritmetici restituiscono un valore numerico e sono:
+
operatore di somma
−
operatore di differenza
∗
operatore di moltiplicazione
/
operatore di divisione
%
operatore di modulo (restituisce il resto della divisione intera)
Le regole di precedenza prevedono che vengano prima eseguite le operazioni
di moltiplicazione, divisione e modulo (nell’ordine in cui compaiono, procedendo
da sinistra a destra) e successivamente le operazioni di somma e sottrazione
(nell’ordine in cui compaiono, procedendo da sinistra a destra).
2
Operatori Relazionali
Gli operatori relazionali (o di confronto) permettono di verificare determinate
relazioni che intercorrono tra due termini, li mettono cioè “a confronto” e restituiscono un valore di verità, ossia vero o falso, a seconda del verificarsi o meno
delle condizioni associate. Questi operatori sono:
==
operatore di uguaglianza, verifica se il termine a sinistra è uguale al
termine a destra;
∼=
operatore di disuguaglianza, verifica se il termine a sinistra è diverso
dal termine a destra;
<
operatore di minoranza, verifica se il termine a sinistra è strettamente
minore del termine a destra;
<=
operatore di non-maggioranza, verifica se il termine a sinistra è minore o uguale al termine a destra;
>
operatore di maggioranza, verifica se il termine a sinistra è strettamente maggiore del termine a destra;
1
>=
operatore di uguaglianza, verifica se il termine a sinistra è maggiore
o uguale al termine a destra.
Ad esempio A == 3 restituisce vero se il valore associato alla variabile A è
proprio il numero 3, oppure (A + 5) > (B ∗ 2) restituisce vero se sommando 5
al valore associato alla variabile A si ottiene un numero strettamente maggiore
del doppio del valore associato alla variabile B.
NOTA: Affinché le espressioni siano valide, è necessario che a tutte le variabili
coinvolte (vedi A e B nell’ultimo esempio) sia stato precedentemente assegnato
un valore.
3
Operatori logici e Algebra di Boole
Le espressioni logiche si basano sull’Algebra di Boole, un’algebra che opera sui
valori di verità (vero e falso). Codifica in maniera formale quello che nel linguaggio corrente esprimiamo attraverso congiunzioni e, disgiunzioni o e negazioni
non. Ad esempio, si considerino le seguenti frasi.
1. Stasera vado al cinema e in pizzeria.
2. Stasera vado al cinema o in pizzeria.
3. Stasera non vado al cinema.
Ad ognuna di queste frasi è possibile associare un valore di verità, ossia stabilire
se chi le ha pronunciate è stato sincero (la frase è vera) oppure se ha mentito (la
frase è falsa). È abbastanza evidente che il valore di verità attribuito a queste
frasi è quello di seguito riportato.
1. Chi ha pronunciato la frase è sincero (cioè la frase è vera) solo se stasera
va sia al cinema sia in pizzera.
Chi ha pronunciato la frase mente (cioè la frase è falsa) se stasera non va
in almeno un posto tra cinema e pizzeria.
2. Chi ha pronunciato la frase è sincero (cioè la frase è vera) se stasera va al
cinema ed è sincero anche se stasera va in pizzeria.
Domanda: è sincero se stasera va sia al cinema sia in pizzeria?
Risposta: Sı̀, la “o” non è esclusiva.
Chi ha pronunciato la frase mente (cioè la frase è falsa) se stasera non va
né al cinema né in pizzeria.
3. Chi ha pronunciato la frase è sincero (cioè la frase è vera) se stasera non
va al cinema.
Chi ha pronunciato la frase mente (cioè la frase è falsa) se stasera va al
cinema.
3.1
Operatori booleani
L’Algebra booleana attraverso la definizione degli operatori logici AND (∧), OR
(∨) e NOT (∼) permette di esprimere qualsiasi espressione logica e di valutarla,
ossia di restituire il valore di verità associato all’espressione.
2
A ∧ B : Il valore dell’espressione è vero se A è vera e B è vera.
Il valore dell’espressione è falso se almeno una tra A e B e falsa.
A ∨ B : Il valore dell’espressione è vero se A è vera o B è vera.
Il valore dell’espressione è falso se sia A che B sono false.
∼ A : Il valore dell’espressione è vero se A è falsa.
Il valore dell’espressione è falso se A è vera.
3.2
Ordine di precedenza
L’ordine di precedenza è ∼, ∧, ∨.
3.3
Elementi Neutri
Gli elementi neutri sono vero per l’operazione AND e falso per l’operazione OR.
Infatti, A ∧ vero = A e A ∨ falso = A.
3.4
Proprietà
Di seguito sono elencate le diverse proprietà dell’algebra.
Proprietà Commutativa:
A∨B =B∨A
♦
A∧B =B∧A
Proprietà Associativa:
A ∨ (B ∨ C) = (A ∨ B) ∨ C
♦
A ∧ (B ∧ C) = (A ∧ B) ∧ C
Proprietà Distributiva:
A∧(B∨C) = (A∧B)∨(A∧C)
♦
A∨(B∧C) = (A∨B)∧(A∨C)
Proprietà di Idempotenza:
A∨A=A
♦
A∧A=A
Proprietà di Involuzione:
∼ (∼ A) = A
Leggi di De Morgan:
∼ (B ∨ C) = ∼ B ∧ ∼ C
4
♦
∼ (B ∧ C) = ∼ B ∨ ∼ C
Operatore di Assegnamento
L’assegnamento è una delle istruzioni fondamentali e consiste nell’assegnare un
valore ad una variabile. Il valore assegnato ad una variabile può anche essere il
risultato di un’espressione.
L’assegnamento può essere rappresentato attraverso diversi simboli, noi useremo =. Si noti come questo simbolo abbia una semantica completamente
diversa dal simbolo = utilizzato nelle equazioni matematiche.
3
Il termine a sinistra dell’operatore deve essere solo il nome di una variabile; il
termine a destra dell’operatore deve essere un valore immediato o un’espressione
valutabile, ossia il cui valore deve poter essere calcolabile.
Esempi di assegnamento:
X = 3 assegna il valore 3 alla variabile X;
X = 3 ∗ (5 + 7) assegna il valore 36 alla variabile X;
X + 1 = 3 operazione scorretta, la parte sinistra non contiene solo
il nome di una variabile;
X = 3 ∗ Y assegna alla variabile X il valore ottenuto moltiplicando
per 3 il valore della variabile Y se questo è stato definito,
altrimenti l’operazione è scorretta;
X = vero assegna il valore vero alla variabile X;
X = (A > 3) ∧ (B < 4) se A e B sono due variabili a cui è stato assegnato un
valore numerico, assegna alla variabile X il valore vero
se il valore di A è maggiore di 3 e il valore di B è minore
di 4 mentre assegna ad X il valore falso se A è minore o
uguale a 3 oppure B è maggiore o uguale a 4. Se A o B
non sono definite, l’operazione è scorretta.
X = ((A ∗ 3) > 27) se A è una variabile a cui è stato assegnato un valore numerico, assegna alla variabile X il valore vero se il valore
di A moltiplicato 3 è maggiore di 27 mentre assegna ad
X il valore falso se il valore di A moltiplicato 3 è minore
o uguale a 27. Se A non ha un valore precedentemente
definito, l’operazione è scorretta.
4