Descrizione di un algoritmo R.Gaeta Diagrammi di...
Transcript of Descrizione di un algoritmo R.Gaeta Diagrammi di...
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
2
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni di inizio e di fine
Start
End
3
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni input/output
Leggi Dato Scrivi “Ciao!”
Esempiodi Input
Esempiodi Output
4
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni imperative
Calcola 20 + 15
Esempio di operazione da eseguire
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
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;
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
8
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Somma: pseudo-codice
StartLeggi XLeggi YCalcola Z = X + Y Stampa Z
End
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.
10
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni condizionali
Falso
Vero
Condizionelogica
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
12
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni condizionali: pseudo-codice
Start………………If (condizione logica) then
istruzioni caso veroEnd if
…………
End
13
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni condizionali: esempio
Falso
Vero
Vuoi più sale?
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;
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
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
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
18
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Relazioni
• Useremo inoltre le seguenti relazioni:
= (uguaglianza);< (minore);> (maggiore);<> (diverso);
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
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
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.
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
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
24
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Cicli (while)
Istruzioni
Falso
VeroCondizione
…
…
…
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
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
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)
28
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio Cicli: diagramma di flusso
Aggiungi brodo
F
VNOT (Il riso è cotto?)
…
…
29
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio: cicli pseudo-codice
Start…………While (NOT il riso è cotto)
Aggiungi brodoEnd while………
End
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.