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

Post on 22-Sep-2020

5 views 0 download

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.