Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo...

13
Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto

Transcript of Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo...

Page 1: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Che cos’è un algoritmo?

La vita di tutti i giorni è scandita da sequenze di azioni

che compiamo automaticamente nell’ ordine esatto

Page 2: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Che cos’è un algoritmo?

Per realizzare altre azioni dobbiamo seguire le istruzioni.

Ricetta di cucina per preparare l’ arrosto di vitello

Dosi per quattro persone: 700gr. di polpa di vitello, 50 gr. di burro, mezzo bicchiere di vino bianco, un mestolo di brodo, rosmarino e sale.

mettere nella pentola due rametti di rosmarino

rosolare la carne in burro e olio ben caldi

bagnare con il vino

lasciare evaporare

aggiungere il brodo

cuocere a fuoco lento per circa un’ ora

restringere alla fine a fuoco vivace

Page 3: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Che cos’è un algoritmo?

La risoluzione di un problema può essere divisa in due fasi:

prima fase: si definisce il problema descrivendo i dati

che sono coinvolti e i risultati attesi

seconda fase: viene stabilita l’ esatta sequenza delle

azioni da compiere

Un algoritmo è l’ insieme delle istruzioni

da compiere per risolvere un problema

Page 4: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Caratteristiche dell’ algoritmo

realizzabile precisa e non ambigua eseguibile in tempo finito deve produrre un risultato osservabile deterministica elementareUn algoritmo dev’essere: esaustivo riproducibile composto da un numero finito di istruzioni

Ogni istruzione dell’ algoritmo dev’ essere:

Page 5: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Strutture di controlloConsideriamo l’ algoritmo:

Effettuare una telefonata.

Sollevare il ricevitore

Attendere il segnale di linea

Comporre il numero

Attendere la risposta

Condurre la conversazione

Deporre il ricevitore

Cosa succede se non c’è il segnale

di linea oppure il telefono è

occupato?

Sollevare il ricevitore

Attendere il segnale di linea

Comporre il numero

Attendere il segnale di occupato

Deporre il ricevitore

Page 6: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Strutture di controllo

Occorre avere un solo algoritmo che permetta di descrivere

contemporaneamente più sequenze di esecuzione

E’ necessario affiancare alle istruzioni che effettuano

operazioni altre istruzioni che selezionano differenti vie dell’

algoritmo controllandone l’ esecuzione.

Si inseriscono le strutture di controllo:

sequenza

selezione

iterazione

Page 7: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Strutture di controllo

La sequenza

sollevare il ricevitore

comporre il numero

La selezione

se il numero è libero

allora

attendi la risposta

conduci la conversazione

deponi il ricevitore

altrimenti

deponi il ricevitore

L’ iterazione

ripeti

componi una cifra

fino al completamento del numero

Page 8: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Strutture di controllo

La struttura di selezione permette di scegliere tra due

o più alternative

Effettuare una telefonata

Sollevare il ricevitore

Attendere il segnale di linea

Comporre il numero

se c’è il segnale libero

allora

attendere la risposta

condurre la conversazione

deporre il ricevitore

altrimenti

deporre il ricevitore

fine se

Le strutture di controllo sono innestabili una nell’ altra

Effettuare una telefonata Sollevare il ricevitore Attendere il segnale di linea se il segnale di linea è presente allora Comporre il numero se c’è il segnale libero allora attendere la risposta condurre la conversazione

deporre il ricevitore altrimenti

deporre il ricevitore fine se altrimenti deporre il ricevitore fine

Page 9: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Strutture di controlloLa struttura di iterazione permette che una o più istruzioni

sia eseguita più volte

Fintantoché ci sono cifre da comporre

componi una cifra

oppure

Ripeti

componi una cifra

finchè sono finite le cifre

Page 10: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Pseudocodifica

È la descrizione di un algoritmo utilizzando parole del

linguaggio comune

È’ un linguaggio sintetico composto da un vocabolario e

da una sintassi molto ristretti

Parole chiave:

Inizio............ Fine

Leggi………… Scrivi

Se…. allora…. altrimenti

Finchè ….. esegui

Ripeti……. finchè

Page 11: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Calcoliamo l’ area di un rettangolo

Dati di input: base, altezza

Dati di output: area

Inizio

leggi(base; altezza)

area base*altezza

scrivi(area)

Fine

Page 12: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Rappresentiamo le strutture di controllo

Selezione

se <condizione>

allora <P1>

altrimenti

<P2>

Page 13: Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.

Calcoliamo il valore assoluto

dati di input: numero intero A

dati di output: valore assoluto di A

Inizio

Leggi(A)

se A ≥ 0

allora Assoluto = A

altrimenti Assoluto = -A

scrivi(Assoluto)

Fine