Professional Documents
Culture Documents
2
Algoritmi
Definizione
Caratteristiche
Pianificazione e progettazione
Rappresentazione
Operazioni fondamentali
Teorema di Jacopini-Bhm
Diagrammi di flusso
3
Definizione
Intuitiva
Sequenza ordinata di istruzioni per risolvere
un problema.(Es. ricetta)
Formale
Insieme ordinato di operazioni non
ambigue, effettivamente eseguibili che
risolvono, in un tempo finito, tutti i
problemi di una determinata classe.
4
Caratteristiche degli algoritmi
Carattere deterministico (.. Insieme ordinato di
istruzioni non ambigue ..)
una istruzione e non ambigua se pu essere
direttamente eseguita dallagente di calcolo
(istruzione primitiva) e la sua interpretazione non
dipende dal contesto o dalla preparazione
dellagente. I risultati dellalgoritmo non
dipendono dalla macchina o persona che lo
esegue.
5
insieme ordinato non ambigue
Shampoo
Bagna i capelli
Insapona
Risciacqua
Ripeti (cosa?,
quante volte?)
Esegui A oppure B
(come stabilire se A o
B?)
Torta
Prepara base
- setaccia farina
- aggiungi uova, acqua
prendi setaccio
versa la farina
6
Caratteristiche degli algoritmi
Carattere di realizzabilit pratica
(..effettivamente eseguibili ..)
t ut t e l e i st ruzi oni che cost i t ui scono
lalgoritmo devono essere effettivamente
eseguibili
(Es. calcolare lesatto valore decimale di !.
Calcola tutti i numeri primi e stampa il primo
maggiore di 100)
7
Caratteristiche degli algoritmi
Carattere finito (.. risolvono in un tempo
finito )
il numero delle istruzioni che definiscono un
algoritmo e finito e queste vengono
eseguite un numero finito di volte.
(Es. calcolare tutti i numeri primi)
8
Carattere finito
Shampoo
1) Bagna i capelli
2) Contatore = 0
3) Ripeti passi da 4 a 6 finch contatore =2
4) Insapona i capelli
5) Risciacqua
6) Contatore = Contatore + 1
7) stop
9
Algoritmo per sommare due
numeri
c=a+b con a e b numeri formati da m cifre
c
m
c
m-1
c
m-2
.. c
0
= a
m-1
a
m-2
..a
0
+ b
m-1
b
m-2
..b
0
1 riporto = 0
2 i = 0
3 ripeti passi 4 6 finch i diventa > m -1
4 somma a
i
e b
i
al riporto per ottenere c
i
10
Algoritmo per sommare due
numeri
5 se c
i
" 10 c
i
= c
i
-10 e riporto = 1, altrimenti
riporto = 0
6 i = i + 1
7 c
m
= riporto
8 stampa risultato
9 stop
11
Pianificazione e progettazione
Analizzare il problema
velocissimo
Non intelligente
Sa memorizzare le informazioni.
modulare
leggibile
riutilizzabile
Sottoprogrammi
In un sottoprogramma necessario definire quali
sono i parametri di input e i parametri di output
(definizione dellinterfaccia)
Tali parametri sono chiamati parametri formali.
Sottoprogramma <nome sottoprg> (in: x1, x2,... xn;
out: y1,y2,... ym)
Blocco
Sottoprogramma
definizione
sottoprogramma somma (in:n; out: sum)
{
1. sum = 0
2. mentre (n>0) fai {
2.1 leggi x
2.2 sum = sum + x
2.3 n = n-1
}
}
Sottoprogramma
chiamata
Un sottoprogramma per essere eseguito deve
essere chiamato da unaltro programma che lo
utilizza esplicitando la lista di parametri di input e
output (parametri attuali).
I nomi dei parametri formali e attuali possono essere
distinti. Al momento della chiamata vengono messi in
corrispondenza in base allordine in cui sono stati
dichiarati.
nomesottoprg(in:a1,...,an; out:b1,...,bm)
Media aritmetica
leggi n1
1.somma(in:n1,out: sum1)
2.media = sum1/n1
3.stampa media