Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo...
-
Upload
mario-giuliano -
Category
Documents
-
view
217 -
download
0
Transcript of Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo...
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
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
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:
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
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
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
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
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
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è
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
Rappresentiamo le strutture di controllo
Selezione
se <condizione>
allora <P1>
altrimenti
<P2>
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