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
Ogni istruzione dell’ algoritmo dev’ essere:






Un



realizzabile
precisa e non ambigua
eseguibile in tempo finito
deve produrre un risultato osservabile
deterministica
elementare
algoritmo dev’essere:
esaustivo
riproducibile
composto da un numero finito di istruzioni
Strutture di controllo
Consideriamo l’ algoritmo:
Sollevare il ricevitore
Effettuare una telefonata.
Attendere il segnale di linea
Sollevare il ricevitore
Comporre il numero
Attendere il segnale di linea
Attendere il segnale di occupato
Comporre il numero
Deporre il ricevitore
Attendere la risposta
Condurre la conversazione
Deporre il ricevitore
Cosa succede se non c’è il segnale di linea
oppure il telefono è occupato?
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
L’ iterazione
ripeti
componi una cifra
fino al completamento del numero
conduci la conversazione
deponi il ricevitore
altrimenti
deponi il ricevitore
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 controllo
La 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
Scarica

A-Orr -algoritmi