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
Istruzioni di inizio e di fine
Start
Istruzioni input/output
Leggi Dato
Scrivi “Ciao!”
Esempio di Input
Esempio di Output
Istruzioni imperative
Calcola 20 + 15
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
Esempio: Somma di due numeri
Scrivere l’algoritmo di un programma che esegue la somma di due numeri;
Somma: diagramma di flusso
Start
Leggi X
Leggi Y
Z = X+Y
Stampa Z
End
Somma: pseudo-codice
Start Leggi X Leggi Y Calcola Z = X + Y Stampa Z EndVariazioni 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);Istruzioni condizionali
Falso
Vero
Condizione
logica
Istruzioni condizionali: pseudo-codice
Start
……… ………
If (condizione logica) then
istruzioni caso vero
Else
istruzioni caso falso
End if …………
Istruzioni condizionali: pseudo-codice
Start
……… ………
If (condizione logica) then
istruzioni caso vero
End if ………… End
Istruzioni condizionali: esempio
Falso
Vero
Vuoi più
sale?
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
Negazioni (NOT)
• Se A è un’espressione logica, anche Not A lo è;
Vero Falso
Falso Vero
Congiunzione (AND)
• Se A e B sono espressioni logiche, anche A and B lo è;
A
B
A and B
Falso Falso Falso Falso Vero Falso Falso Falso Vero Vero Vero VeroDisgiunzione (OR)
• Se A e B sono espressioni logiche, anche A or B lo è;
A
B
A or B
Falso Falso Falso Vero Vero Falso Vero Falso Vero Vero Vero VeroRelazioni
• Useremo inoltre le seguenti relazioni:
= (uguaglianza); < (minore);
> (maggiore); <> (diverso);
Esempio Istruzioni Annidate: diagramma di flusso
Aggiungi sale
Aggiungi burro
Aggiungi sale vuoi
più salato AND più gustoso ? vuoi più salato ? V V F F
Esempio Istruzioni Annidate: pseudo-codice
I
f vuoi più salato and più gustoso Thenaggiungi sale aggiungi burro
Else
If vuoi più salato Then
aggiungi sale
End if End if