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