LABORATORIO DI INFORMATICA
Corso di laurea in Scienze della Formazione Primaria
a.a.2014/2015
A cura del Prof. Sergio Miranda
LEZIONE N.6
2
Algoritmi
GLI ALGORITMI (1/5)

Un algoritmo è una sequenza di istruzioni la cui
esecuzione consente di realizzare un particolare
trattamento dell’informazione o più in generale di
risolvere uno specifico problema:






Calcolare la somma di due numeri
Calcolare la lunghezza dell’ipotenusa di un triangolo
rettangolo
Risolvere una equazione di secondo grado
Una ricetta di cucina
Le istruzioni per montare un mobile
…
3
Laboratorio di Informatica
IL TERMINE ALGORITMO DERIVA
DA …
4
Laboratorio di Informatica
GLI ALGORITMI (2/5)

Un algoritmo presuppone la presenza di qualcuno (o
qualcosa) in grado di eseguirlo: l’esecutore (in
informatica è il calcolatore)

Ogni esecutore ha il suo modello di elaborazione ed il suo
ciclo di esecuzione:




Es. Macchina di Turing, Macchina di Von Neumann
L’algoritmo viene letto dall’esecutore il quale,
partendo dai dati in input, esegue, in un ben preciso
ordine, le istruzioni in esso riportate giungendo, al
termine, a ottenere i dati in output
Per essere eseguito, l’algoritmo deve essere formulato
in un linguaggio comprensibile dall’esecutore
Un esecutore può eseguire un algoritmo formulato in
un linguaggio che non conosce a patto che l’algoritmo
stesso sia preventivamente tradotto in un
linguaggio che invece gli è noto
Laboratorio di Informatica
5
UN ESEMPIO DI
ALGORITMO

Procedura per fare la frittata
6
Laboratorio di Informatica
GLI ALGORITMI (3/5)




L’algoritmo deve prevedere soltanto istruzioni
elementari, che richiedono all’esecutore la
conduzione di operazioni elementari (operazioni
che egli sa compiere senza bisogno di ulteriori
specificazioni)
Un algoritmo può richiedere l’esecuzione di altri
algoritmi precedentemente specificati all’esecutore
L’algoritmo deve essere formulato in un linguaggio
non ambiguo, in cui cioè ogni istruzione caratterizzi
univocamente una delle operazioni che l’esecutore è in
grado di compiere
L’algoritmo deve specificare senza ambiguità l’ordine
di esecuzione delle istruzioni cui l’esecutore deve
attenersi scrupolosamente
Laboratorio di Informatica
7
Area di una campana (1)
Problema
Scomposizione del
problema in tre
sottoproblemi
Sottoproblema 1
r
soluzione elementare:
s = ½  r2
r=b/
2
h2
h1
Sottoproblema 2
b
h2
b
B
soluzione
elementare:
s = ??
h1
soluzione
elementare:
s = b h2
Sottoproblema 3
B
soluzione
elementare:
s = ??
8
Laboratorio di Informatica
8
Area di una campana (2)
Scomposizione del sottoproblema 3
in tre ulteriori sottoproblemi
b
h1
B
Sottoproblema 3
h
1
soluzione effettiva:
h1
b
s = ½ (½(B–b) h1) +
½ (B–b)
b h1 +
Sottoproblema 3.1 Sottoproblema 3.2
½ (½(B–b) h1)
soluzione
elementare:
s =½ (½(B–b) h1)
Composizione delle soluzioni dei tre
sottoproblemi 3.1, 3.2 e 3.3 per
risolvere il sottoproblema 3
Laboratorio di Informatica
soluzione
elementare:
s = b h1
h1
½ (B–b)
Sottoproblema 3.3
soluzione
elementare:
s =½ (½(B–b) h1)
9
9
Area di una campana (3)
Sottoproblema 1
Problema
r
r=b/
2
h2
h1
b
Composizione delle
soluzioni dei tre
sottoproblemi 1, 2 e
3 per risolvere il
problema originario
Sottoproblema 2
h2
b
B
soluzione effettiva:
s = ½  r2 +
b h2 +
½ (½(B–b) h1) +
b h1 +
½ (½(B–b) h1)
soluzione elementare:
s = ½  r2
h1
soluzione
elementare:
s = b h2
Sottoproblema 3
B
soluzione effettiva:
s = ½ (½(B–b) h1) +
b h1 +
½ (½(B–b) h1)
10
Laboratorio di Informatica
1
0
08/06/2015
GLI ALGORITMI (4/5)
L’algoritmo deve essere formulato in un numero
finito di istruzioni
 L’esecuzione di un algoritmo deve terminare
fornendo i dati in output in un tempo finito
 L’algoritmo deve essere deterministico:
eseguendo lo stesso algoritmo più volte sugli
stessi dati di input, l’esecutore deve generare
sempre gli stessi dati di output

Dott. Francesco Orciuoli
11
Laboratorio di Informatica
08/06/2015
GLI ALGORITMI (5/5)

Un algoritmo parametrico è un algoritmo che,
facendo riferimento ai dati di input
È in grado di risolvere non un solo problema ma una
classe di problemi
Algoritmo per risolvere 12 + 24
 Algoritmo parametrico per risolvere X + Y dove X e Y
possono essere rimpiazzati da qualsiasi numero
 X e Y si dicono variabili e funzionano come registri di
memoria nei quali si possono scrivere e leggere dati

Dott. Francesco Orciuoli

12
Laboratorio di Informatica
Sono contenitori
 Occorre stabilire che tipo di «contenuto» possono
contenere
 Il tipo di contenuto è fisso
 Il loro contenuto può variare
 Le variabili contengono dati
 Il «senso» che le fa diventare informazioni si
aggiunge con la programmazione…
08/06/2015
LE VARIABILI

Prof. Sergio Miranda
13
Laboratorio di Informatica