• Non ci sono risultati.

Lezione 16

N/A
N/A
Protected

Academic year: 2021

Condividi "Lezione 16"

Copied!
30
0
0

Testo completo

(1)

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)

Istruzioni di inizio e di fine

Start

(3)

Istruzioni input/output

Leggi Dato

Scrivi “Ciao!”

Esempio di Input

Esempio di Output

(4)

Istruzioni imperative

Calcola 20 + 15

(5)

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)

Esempio: Somma di due numeri

Scrivere l’algoritmo di un programma che esegue la somma di due numeri;

(7)

Somma: diagramma di flusso

Start

Leggi X

Leggi Y

Z = X+Y

Stampa Z

End

(8)

Somma: pseudo-codice

Start Leggi X Leggi Y Calcola Z = X + Y Stampa Z End

(9)

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);

(10)

Istruzioni condizionali

Falso

Vero

Condizione

logica

(11)

Istruzioni condizionali: pseudo-codice

Start

……… ………

If (condizione logica) then

istruzioni caso vero

Else

istruzioni caso falso

End if ………… End

(12)

Istruzioni condizionali: pseudo-codice

Start

……… ………

If (condizione logica) then

istruzioni caso vero

End if ………… End

(13)

Istruzioni condizionali: esempio

Falso

Vero

Vuoi più

sale?

(14)

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

(15)

Negazioni (NOT)

• Se A è un’espressione logica, anche Not A lo è;

Vero Falso

Falso Vero

(16)

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 Vero

(17)

Disgiunzione (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 Vero

(18)

Relazioni

• Useremo inoltre le seguenti relazioni:

= (uguaglianza); < (minore);

> (maggiore); <> (diverso);

(19)

Esempio Istruzioni Annidate: diagramma di flusso

Aggiungi sale Aggiungi burro Aggiungi sale End vuoi

più salato AND più gustoso ? vuoi più salato ? V V F F

(20)

Esempio Istruzioni Annidate: pseudo-codice

I

f vuoi più salato and più gustoso Then

aggiungi sale aggiungi burro

Else

If vuoi più salato Then

aggiungi sale

End if End if

(21)

Esempio: massimo tra due numeri

(22)

Max: diagramma di flusso

Start

Leggi X

Leggi Y

Falso

Vero

X > Y

Stampa X

Stampa Y

(23)

Max: pseudo-codice

Start Leggi X Leggi Y If (X > Y) then Stampa X Else Stampa Y End if End

(24)

Cicli (while)

Istruzioni

Falso

Vero

Condizione

(25)

Ciclo while: pseudo-codice

Start …… ……

While (condizione logica)

istruzione 1 ……… istruzione n End while …… …… End

(26)

Ciclo while: pseudo-codice

Start …… ……

While (condizione logica1)

………

While (condizione logica2)

……… ……… End while ……… End while ……

(27)

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)

Esempio Cicli: diagramma di flusso

Aggiungi

brodo

F

V

NOT

(Il riso è cotto?)

(29)

Esempio: cicli pseudo-codice

Start

…… ……

While (NOT il riso è cotto)

Aggiungi brodo

End while ………

(30)

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.

Riferimenti

Documenti correlati

Quindi tutti quelli che evadono il fisco sono moralmente

Al di là del principio del piacere rappresenta nella dottrina freudiana una vera e propria rivoluzione la cui valenza si estende dal campo psicologico a quello filosofico: lo

–– Risoluzione (corretta e completa per clausole generali) Risoluzione (corretta e completa per clausole generali) –– Forward chaining (corretta e completa per clausole

dovrebbe cambiare qualcosa... l'intellettualismo etico non mi vede tra i suoi estimatori... non vedo perché sapere che la mia paura dei ragni dipende da quella volta che ho sentito

•  Riconsiderare gli enunciati della sillogistica dal punto di vista di questo linguaggio.. Forma

 Se espressione è uguale ad uno dei valori costanti il controllo passa alla sequenza di istruzioni a partire dalla prima istruzione associata al valore costante.  Oltre alla

Frege al termine del secolo XIX, la logica ha imparato a simbolizzare con lettere o altri segni non solo le variabili, gli argomenti dei predicati, ma i predicati stessi (terminali e

 Infatti, sia il formalismo che la regola di inferenza che viene qui applicata (il Principio di Risoluzione) sono molto più simili ai convenzionali linguaggi di programmazione che