Descrizione di un algoritmo R.Gaeta Diagrammi di...

30
1 Informatica di Base Informatica di Base -- -- R.Gaeta R.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

Transcript of Descrizione di un algoritmo R.Gaeta Diagrammi di...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.