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: realizzabile precisa e non ambigua eseguibile in tempo finito deve produrre un risultato osservabile deterministica elementare Un algoritmo dev’essere: esaustivo riproducibile composto da un numero finito di istruzioni
Strutture di controllo Consideriamo 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 Sollevare il ricevitore Attendere il segnale di linea Comporre il numero Attendere il segnale di occupato Deporre il ricevitore algoritmo sostitutivo? 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 conduci la conversazione deponi il ricevitore altrimenti 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 Le strutture di controllo sono innestabili una nell’ altra 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 fine se 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 attendere la risposta condurre la conversazione deporre il ricevitore altrimenti fine se 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