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