2. ECDL - Modulo 1
Linguaggi
Cenni di logica
Logica degli enunciati, o Algebra booleana
enunciato
una proposizione che può essere soltanto vera o falsa.
3. ECDL - Modulo 1
Linguaggi
Cenni di logica
Logica degli enunciati, o Algebra booleana
enunciato
una proposizione che può essere soltanto vera o falsa.
enunciato composto
enunciato formato da due sottoenunciati legati fra loro da un
connettivo logico.
4. ECDL - Modulo 1
Linguaggi
Cenni di logica
Logica degli enunciati, o Algebra booleana
enunciato
una proposizione che può essere soltanto vera o falsa.
enunciato composto
enunciato formato da due sottoenunciati legati fra loro da un
connettivo logico.
I connettivi logici fondamentali sono:
AND
5. ECDL - Modulo 1
Linguaggi
Cenni di logica
Logica degli enunciati, o Algebra booleana
enunciato
una proposizione che può essere soltanto vera o falsa.
enunciato composto
enunciato formato da due sottoenunciati legati fra loro da un
connettivo logico.
I connettivi logici fondamentali sono:
AND
OR
6. ECDL - Modulo 1
Linguaggi
Cenni di logica
Logica degli enunciati, o Algebra booleana
enunciato
una proposizione che può essere soltanto vera o falsa.
enunciato composto
enunciato formato da due sottoenunciati legati fra loro da un
connettivo logico.
I connettivi logici fondamentali sono:
AND
OR
NOT
7. ECDL - Modulo 1
Linguaggi
Cenni di logica
Congiunzione (AND)
p AND q
è vera solo quando sono veri entrambi gli enunciati p e q.
8. ECDL - Modulo 1
Linguaggi
Cenni di logica
Congiunzione (AND)
p AND q
è vera solo quando sono veri entrambi gli enunciati p e q.
p q p AND q
F F F
F V F
V F F
V V V
9. ECDL - Modulo 1
Linguaggi
Cenni di logica
Disgiunzione (OR)
p OR q
è vero quando è vero almeno uno degli enunciati p e q.
10. ECDL - Modulo 1
Linguaggi
Cenni di logica
Disgiunzione (OR)
p OR q
è vero quando è vero almeno uno degli enunciati p e q.
p q p OR q
F F F
F V V
V F V
V V V
11. ECDL - Modulo 1
Linguaggi
Cenni di logica
Negazione (NOT)
NOT p
è vero quando è falso l’enunciato p; falso in caso contrario.
12. ECDL - Modulo 1
Linguaggi
Cenni di logica
Negazione (NOT)
NOT p
è vero quando è falso l’enunciato p; falso in caso contrario.
p NOT p
F V
V F
13. ECDL - Modulo 1
Linguaggi
Linguaggi naturali e formali, linguaggi di programmazione
Linguaggio naturale e linguaggio artificiale
Linguaggi
Artificiali
Naturali
(formali)
ad alto a basso
livello livello
14. ECDL - Modulo 1
Linguaggi
Linguaggi naturali e formali, linguaggi di programmazione
Linguaggi ad alto livello. Esempio di programma in C++
#include <iostream>
using namespace std;
int main()
{
int b,h;
float area;
cout << "Inserisci base e altezza " ;
cin >> b >> h;
area=b*h/2;
cout <<"l’area è " << area << endl;
}
15. ECDL - Modulo 1
Linguaggi
Linguaggi naturali e formali, linguaggi di programmazione
Linguaggi a basso livello - Frammento di listato in
Assembler
main:
.LFB957:
.....
call _ZNSirsERi
movl -4(%rbp), %eax
imull -8(%rbp), %eax
movl %eax, %edx
shrl $31, %edx
leal (%rdx,%rax), %eax
sarl %eax
cvtsi2ss %eax, %xmm0
..........
16. ECDL - Modulo 1
Linguaggi
Linguaggi naturali e formali, linguaggi di programmazione
Linguaggi a basso livello - Frammento di codice in
linguaggio macchina
17. ECDL - Modulo 1
Linguaggi
Linguaggi naturali e formali, linguaggi di programmazione
Pseudo-linguaggio
Lo pseudo-linguaggio
è un formalismo che permette di rappresentare gli algoritmi
mediante un linguaggio ’a metà strada’ tra il linguaggio naturale e
un linguaggio di programmazione ad alto livello.
18. ECDL - Modulo 1
Linguaggi
Linguaggi naturali e formali, linguaggi di programmazione
Pseudo-linguaggio
È composto da:
parole chiave
INIZIO(<nome algoritmo>), FINE(<nome algoritmo>) per
delimitare l’algoritmo
ACQUISISCI e COMUNICA per le operazioni di ingresso ed uscita
←, per effettuare calcoli e assegnare valori alle variabili
SE... ALLORA... ALTRIMENTI... FINESE per la struttura
di selezione
MENTRE... FINEMENTRE e RIPETI .... FINCHÈ per la
struttura iterativa (ciclo)
19. ECDL - Modulo 1
Linguaggi
Linguaggi naturali e formali, linguaggi di programmazione
Pseudo-linguaggio
È composto da:
parole chiave
INIZIO(<nome algoritmo>), FINE(<nome algoritmo>) per
delimitare l’algoritmo
ACQUISISCI e COMUNICA per le operazioni di ingresso ed uscita
←, per effettuare calcoli e assegnare valori alle variabili
SE... ALLORA... ALTRIMENTI... FINESE per la struttura
di selezione
MENTRE... FINEMENTRE e RIPETI .... FINCHÈ per la
struttura iterativa (ciclo)
Nelle prossime pagine tradurremo gli algoritmi già visti nel nostro
pseudo-codice.
20. ECDL - Modulo 1
Linguaggi
Linguaggi naturali e formali, linguaggi di programmazione
Pseudo-linguaggio
Primo algoritmo
INIZIO (Area Triangolo)
ACQUISISCI b, h
a <- (b * h) /2
COMUNICA a
FINE (Area Triangolo)
21. ECDL - Modulo 1
Linguaggi
Linguaggi naturali e formali, linguaggi di programmazione
Pseudo-linguaggio
Secondo algoritmo
INIZIO(Divisibile)
ACQUISISCI a,b
r <- resto(a,b);
SE r = 0
ALLORA
COMUNICA "a è divisibile per b"
ALTRIMENTI
COMUNICA "a non è divisibile per b"
FINESE
FINE(Divisibile)
22. ECDL - Modulo 1
Linguaggi
Linguaggi naturali e formali, linguaggi di programmazione
Pseudo-linguaggio
Terzo algoritmo (Euclide)
INIZIO(Massimo Comun Divisore)
ACQUISISCI a,b
r <- resto(a,b);
MENTRE r <> 0
a <- b
b <- r
r <- resto (a,b)
FINEMENTRE
COMUNICA "il risultato è " b
FINE(Massimo Comun Divisore)