Prof.
Elaborazione dell informazione Algoritmo (procedura dielaborazione) Prima definizione: successione finita e ordinata di passi (operazioni) che risolve una classe di problemi in un tempo finito. Programma Codifica dell algoritmo in un linguaggio comprensibile dall esecutore. Esecutore Una macchina capace di eseguire i programmi (le azioni specificate dall algoritmo codificate in un determinato linguaggio di programmazione).
Definizione di algoritmo Un algoritmo è una successione finita e ordinata di operazioni elementari, non ambigue ed effettivamente eseguibili che, applicate ad un insieme di condizioni iniziali, allo scopo di risolvere una classe di problemi, produce un risultato e termina inuna quantità di tempo finita. Ogni compito che noi svolgiamo quotidianamente può essere visto come un algoritmo.
Definizione di algoritmo Un algoritmo è una successione finita e ordinata di operazioni elementari, non ambigue ed effettivamente eseguibili che, applicate ad un insieme di condizioni iniziali, allo scopo di risolvere una classe di problemi, produce un risultato e termina inuna quantità di tempo finita. Parole chiave: Successione finita e ordinata. Operazioni non ambigue ed effettivamente calcolabili. Risolve una classe di problemi. Produce un risultato. Termina in un tempo finito.
Definizione di algoritmo: successione finita e ordinata Algoritmo: unasuccessione finitae ordinata dioperazioni Per finita si intende che un algoritmo ha un inizio ed una fine: non ci sono infinite operazioni da compiere. Di conseguenza, un algoritmo ha sempre un inizio ed una fine. Per ordinato si intende che l ordine con il quale si eseguono le operazioni è fondamentale. Cambiando l ordine con il quale si eseguono le operazioni, cambia l algoritmo stesso.
Definizione di algoritmo: operazioni elementari, non ambigue ed effettivamente eseguibili Algoritmo: operazioni elementari, non ambigue ed effettivamente calcolabili, applicate ad un insieme di condizioni iniziali Operazionielementari (atomicao primitiva) Operazione non atomica: risolvi equazione di II grado. Operazioni atomiche: Richiedi il coefficiente a; Richiedi il coefficiente b; Richiedi il coefficiente c; Calcola il delta; Operazioni non ambigue, nel senso che ogni operazione prevista dall algoritmo deve essere univocamente interpretabile dall esecutore. In questo modo, i risultati ottenuti dall'esecuzione dell'algoritmo non cambiano al variare dell esecutore (macchinao essere umano). Operazione ambigua: se l acqua è calda calare la pasta. Operazione non ambigua: se l acqua raggiunge i 100 C calare la pasta. Operazioni effettivamente eseguibili, nel senso che le informazioni devono poter essere eseguite con le risorse a disposizione dell esecutore: Operazione non effettivamente eseguibile su un PC: prepara il caffè. Operazione effettivamente eseguibile su un PC: calcola l area di un rettangolo.
Definizione di algoritmo: risolve una classe di problemi Algoritmo: allo scopo di risolvere una classe di problemi Classe di problemi: calcolo dell area di un generico rettangolo (qualunque sia la base e qualunque sia l altezza). Problema: calcolo dell area del rettangolo con base di 6cm e altezza di 4cm.
: viene prodotto un risultato in un tempo finito Algoritmo: produce un risultato e termina in una quantità di tempo finito. L algoritmo deve produrre un risultato finale. Ad esempio, il valore dell area del rettangolo dopo che l utilizzatore ha fornito in INPUT il valore della base e dell altezza del rettangolo. L algoritmo deve produrre il suddetto risultato in un tempo finito (anche in virtù del numero finito di passi di cui è costituito).
: le proprietà Tutte le caratteristiche analizzate a proposito degli algoritmo si possono sintetizzare con le seguenti proprietà. Atomicità. I passi costituenti (le operazioni) devono essere elementari, ovvero non ulteriormente scomponibili. Non ambiguità. I passi costituenti devono essere interpretabili in modo diretto e univoco dall'esecutore, siaesso umano o artificiale. Finitezza. L'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso. Terminazione. L'esecuzione deve avere termine dopo un tempo finito. Effettività. L'esecuzione deve portare a un risultato univoco.
: le proprietà Inoltre: Un algoritmo si dice completo quando considera tutti i casi che sipossonoverificare nell esecuzione. Supponiamo di voler verificare se un numero N è positivo, nullo o negativo. Se l algoritmo verificasse solo se il numero N è positivo o negativo, senza controllare se è nullo, allora non saprebbe come comportarsi nel caso in cui N=0. Un algoritmo siffatto sarebbe non completo. Un algoritmo si dice generale quando risolve una classe di problemi. Considera l esempio di prima sulla definizione di classe di problemi. Un algoritmo si dice deterministico quando partendo dalla stessa situazione iniziale (gli stessi input) fornisce sempre lo stesso risultato (output).
Operazioni: istruzioni In informatica le operazioni vengono dette istruzioni. Tipi di istruzioni: Azioni: calcola ilvalore x Controllo: se si verifica A allora calcola x altrimenti calcola y Comunicazione: leggiilvalore x ; stampa ilvalore y Salto: se si verifica A allora prosegui altrimenti salta ad un altra istruzione
Esempi di algoritmi Ricetta di cucina. Sequenza di operazioni per registrare un programma con un videoregistratore. Sequenza di operazioni per montare una tenda. Sequenza di operazioni per moltiplicare due numeri. Sequenza di operazioni per lavarsi i denti
Un algoritmo ben scritto Consideriamo l algoritmoper lavarsi i denti: 1.Prendi lospazzolino. 2.Prendi il dentifricio. 3.Metti il dentifricio sullo spazzolino. 4.Posa ildentifricio. 5.Apri l acqua. 6.Bagna lospazzolino. 7.Chiudi l acqua. 8.Porta lo spazzolino alla bocca. 9.Spazzolare. 10.Controlla se i denti sono puliti. a. Se i denti non sono ancora puliti, ritorna all operazione 9. b. Se i denti sono puliti vai all operazione 11. 11.Posa lospazzolino. 12.Apri l acqua. 13.Sciacqua labocca. 14.Chiudi l acqua.
Un algoritmo ben scritto Nell esempio mostrato, si verificano le proprietà finito e ordinato. L algoritmo è finito: inizia con l operazione 1 e termina con l operazione 14. L algoritmo è ordinato: se cambiassi l ordine di alcune operazioni, potrei ottenere:
Un algoritmo mal scritto 1. Posa il dentifricio. 2. Spazzolare. 3. Chiudi l acqua. 4. Posa lo spazzolino. 5. Prendi il dentifricio. 6. Metti il dentifricio sullo spazzolino. 7. Apri l acqua. 8. Bagna lo spazzolino. 9. Chiudi l acqua. 10. Porta lo spazzolino alla bocca. 11. Controlla se i denti sono puliti. 12. Prendi lo spazzolino. a. Se i denti non sono ancora puliti, ritorna all operazione 11. b. Se i denti sono puliti vai all operazione 13. 13. Apri l acqua. 14. Sciacqua la bocca. Da come possiamo osservare, le operazioni restano le stesse, benché l ordine sia variato, ma sicuramente con questo algoritmo non potremmo dire di aver lavato i denti correttamente.
Concetto di algoritmo L obiettivo è la costruzione di uno o più mezzi di calcolo in grado di eseguire operazioni primitive (ovvero effettivamente calcolabili). Un mezzo di calcolo che esegue operazioni primitive permette di automatizzare la soluzione di un problemaespressa daun algoritmo. La soluzione di un problema espressa da un algoritmo costituito da sequenze di operazioni primitive può essere automatizzata.
Rappresentazione degli algoritmi Uno degli strumenti utilizzati per introdurre e rappresentare gli algoritmi è rappresentato dai diagrammi di flusso (flowchart diagrams) o diagrammi a blocchi. Inizio Fine Azione Comunicazione I Comunicazione O V Controllo F Salto
Un algoritmo rappresentato con i diagrammi di flusso Verificare se un numero è maggiore di 10 oppure no. Nel caso in cui il numero sia maggiore di 10 raddoppiarlo, altrimenti, dividerlo per 2. Stampare il nuovo numero. Inizio Inserisci un numero O N I V N>10 N ß N*2 N ß N/2 F Il nuovo numero è:, N O Fine