descrizione di un algoritmo r.gaeta diagrammi di...
TRANSCRIPT
![Page 1: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/1.jpg)
1
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Descrizione di un algoritmo
• Si descrive un algoritmo cercando di sintetizzare il più possibile la sua sequenza di passi;
• Non si utilizza un linguaggio di programmazione specifico, ma è meglio utilizzare qualcosa di più generale;
• Pseudo-codici o Diagrammi di Flusso;• Per ogni istruzione elementare, esiste un simbolo o una
parola chiave
![Page 2: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/2.jpg)
2
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni di inizio e di fine
Start
End
![Page 3: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/3.jpg)
3
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni input/output
Leggi Dato Scrivi “Ciao!”
Esempiodi Input
Esempiodi Output
![Page 4: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/4.jpg)
4
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni imperative
Calcola 20 + 15
Esempio di operazione da eseguire
![Page 5: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/5.jpg)
5
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Flusso di esecuzione
• I singoli diagrammi devono essere uniti tramite i connettori;• L’esecuzione delle istruzioni deve essere fatta
sequenzialmente, ovvero seguendo i connettori;• Quando si scrive l’algoritmo bisogna fare molta attenzione
alla direzione del flusso di esecuzione
![Page 6: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/6.jpg)
6
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio: Somma di due numeri
Scrivere l’algoritmo di un programma che esegue la somma di due numeri;
![Page 7: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/7.jpg)
7
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Somma: diagramma di flusso
Start
Leggi X
Leggi Y
Z = X+Y
Stampa Z
End
![Page 8: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/8.jpg)
8
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Somma: pseudo-codice
StartLeggi XLeggi YCalcola Z = X + Y Stampa Z
End
![Page 9: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/9.jpg)
9
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Variazioni nel flusso di esecuzione
• Ci sono dei momenti in cui il flusso di esecuzione può scegliere tra diverse direzioni;
• In genere, questi salti sono sottoposti ad una condizione logica (risposta vero o falso);
• Si parla di istruzioni condizionali.
![Page 10: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/10.jpg)
10
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni condizionali
Falso
Vero
Condizionelogica
![Page 11: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/11.jpg)
11
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni condizionali: pseudo-codice
Start………………If (condizione logica) then
istruzioni caso veroElse
istruzioni caso falsoEnd if
…………
End
![Page 12: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/12.jpg)
12
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni condizionali: pseudo-codice
Start………………If (condizione logica) then
istruzioni caso veroEnd if
…………
End
![Page 13: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/13.jpg)
13
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni condizionali: esempio
Falso
Vero
Vuoi più sale?
![Page 14: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/14.jpg)
14
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Espressioni logiche
• Prima di parlare delle istruzioni condizionali, dobbiamo ripassare il linguaggio con cui si formulano le condizioni: la logica.
• Un’espressione logica è una funzione che può avere due valori di verità: vero o falso.– Una proposizione della quale dobbiamo valutare se è vera o falsa
• Le regole alla base derivano dall’algebra booleana;
![Page 15: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/15.jpg)
15
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Negazioni (NOT)
• Se A è un’espressione logica, anche Not A lo è;
VeroFalso
FalsoVero
A Not A
![Page 16: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/16.jpg)
16
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Congiunzione (AND)
• Se A e B sono espressioni logiche, anche A and B lo è;
A B A and B
FalsoFalsoFalso
FalsoVeroFalso
FalsoFalsoVero
VeroVeroVero
![Page 17: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/17.jpg)
17
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Disgiunzione (OR)
• Se A e B sono espressioni logiche, anche A or B lo è;
A B A or B
FalsoFalsoFalso
VeroVeroFalso
VeroFalsoVero
VeroVeroVero
![Page 18: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/18.jpg)
18
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Relazioni
• Useremo inoltre le seguenti relazioni:
= (uguaglianza);< (minore);> (maggiore);<> (diverso);
![Page 19: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/19.jpg)
19
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio Istruzioni Annidate: diagramma di flusso
Aggiungi sale
Aggiungi burro
Aggiungi sale
End
vuoipiù salato AND
più gustoso?
vuoipiù salato
?
V V
F F
![Page 20: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/20.jpg)
20
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio Istruzioni Annidate: pseudo-codice
If vuoi più salato and più gustoso Then
aggiungi sale
aggiungi burro
Else
If vuoi più salato Then
aggiungi sale
End if
End if
![Page 21: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/21.jpg)
21
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio: massimo tra due numeri
Dati due numeri, dire qual è il massimo tra i due.
![Page 22: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/22.jpg)
22
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Max: diagramma di flusso
Start
Leggi X
Leggi Y
End
Falso
Vero
X > Y
Stampa X
Stampa Y
![Page 23: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/23.jpg)
23
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Max: pseudo-codice
StartLeggi XLeggi YIf (X > Y) then
Stampa XElse
Stampa YEnd if
End
![Page 24: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/24.jpg)
24
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Cicli (while)
Istruzioni
Falso
VeroCondizione
…
…
…
![Page 25: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/25.jpg)
25
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Ciclo while: pseudo-codice
Start…………While (condizione logica)
istruzione 1…………………istruzione n
End while…………
End
![Page 26: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/26.jpg)
26
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Ciclo while: pseudo-codiceStart
…………While (condizione logica1)
…………………While (condizione logica2)……………………………………
End while…………………
End while…………
End
![Page 27: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/27.jpg)
27
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esercizio
Scrivere la ricetta del risotto alla zucca utilizzando i diagrammi di flusso
(Nota: dove è richiesta una ripetizione – es. fino a quando – utilizzare un’istruzione condizionale del tipo mostrato nella prossima diapo)
![Page 28: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/28.jpg)
28
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio Cicli: diagramma di flusso
Aggiungi brodo
F
VNOT (Il riso è cotto?)
…
…
![Page 29: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/29.jpg)
29
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio: cicli pseudo-codice
Start…………While (NOT il riso è cotto)
Aggiungi brodoEnd while………
End
![Page 30: Descrizione di un algoritmo R.Gaeta Diagrammi di Flusso;rossano/DIDATTICA/MDAMS-0203/lezione16.pdf · 2002. 12. 7. · Informatica di Base --R.Gaeta Esercizio Scrivere la ricetta](https://reader033.vdocuments.site/reader033/viewer/2022051806/60021805a02e416d82546098/html5/thumbnails/30.jpg)
30
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esercizio
• 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.