Esempio di algoritmo
• Scrivere l’algoritmo che esegue la somma di due numeri
start
start
read X
read X
read Y
read Y
Z := X + Y
write Z
Z := X + Y
end
write Z
end
Informatica di Base -- R.Gaeta
82
Esempio: massimo tra due numeri
Dati due numeri, dire qual è il massimo tra i due.
start
start
read X
read X
read Y
read Y
vero
X>Y
max := X
if (X > Y) then
max := X
falso
max := Y
else
max := Y
write max
end
end if
write max
end
Informatica di Base -- R.Gaeta
83
Esempio di algoritmo: calcolo radici
start
start
read a,b,c
read a,b,c
delta := b*b-4*a*c
if (delta < 0) then
delta:=b*b-4*a*c
vero
write “nessuna radice”
falso
delta < 0
else
r1 := (-b+sqrt(delta))/2*a
r1 := (-b + sqrt(delta))/2*a
write
"nessuna radice"
r2 := (-b-sqrt(delta))/2*a
r2 := (-b - sqrt(delta))/2*a
write r1,r2
write
r1,r2
vero
delta = 0
write
"radici coincidenti"
if (delta = 0) then
write “radici coincidenti”
falso
else
write
"radici distinte"
write “radici distinte”
end if
end if
end
end
Informatica di Base -- R.Gaeta
84
Esercizio: massimo di una sequenza
• Si supponga di fornire in input ad un programma un
numero indefinito di interi positivi. L’inserimento verrà
terminato dall’utente quando questi inserirà uno zero (0).
Il programma deve restituire il valore massimo tra quelli
introdotti. Disegnare il diagramma di flusso di tale
programma.
Informatica di Base -- R.Gaeta
85
Strutture di controllo: iterazione
……
azioni
azioni
while (condizione logica)
azioni da
ripetere
azioni da ripetere
vero
condizione
logica
end while
azioni seguenti
……
falso
azioni seguenti
Informatica di Base -- R.Gaeta
86
Strutture di controllo: iterazioni annidate
azioni
……
azioni
while (condizione logica esterna)
azioni iterazione
interna da ripetere
while (condizione logica interna)
azioni iterazione interna da ripetere
azioni iterazione
esterna da ripetere
vero
end while
condizione
logica
interna
falso
vero
azioni iterazione esterna da ripetere
end while
azioni seguenti
condizione
logica
esterna
falso
……
azioni seguenti
Informatica di Base -- R.Gaeta
87