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
Fondamenti di Informatica -- R.Gaeta
84
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
if (delta = 0) then
delta = 0
write
"radici coincidenti"
write “radici coincidenti”
falso
else
write
"radici distinte"
write “radici distinte”
end if
end if
end
end
Fondamenti di Informatica -- R.Gaeta
85
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.
Fondamenti di Informatica -- R.Gaeta
86
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
Fondamenti di Informatica -- R.Gaeta
87
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
condizione
logica
interna
falso
vero
condizione
logica
esterna
falso
end while
azioni iterazione esterna da ripetere
end while
azioni seguenti
……
azioni seguenti
Fondamenti di Informatica -- R.Gaeta
88
Esercizio: massimo di una sequenza
start
start
max := -1
max := -1
read numero
read numero
falso
numero >0
while (numero > 0)
if (numero > max) then
write max
vero
max := numero
end
vero
end if
numero > max
read numero
falso
end while
max := numero
write max
read numero
end
Fondamenti di Informatica -- R.Gaeta
89
Esercizio: massimo di una sequenza
start
start
max := -1
max := -1
read numero
read numero
while (numero <> 0)
falso
numero <> 0
if (numero < 0) then
write max
write “solo positivi!!”
vero
falso
numero < 0
vero
else
end
if (numero > max) then
write
"solo positivi!!"
numero > max
max := numero
end if
vero
end if
falso
max := numero
read numero
end while
read numero
write max
end
Fondamenti di Informatica -- R.Gaeta
90