LEZAL0 Algoritmi(0) Analisi del problema Analizzare un problema significa compiere i seguenti passi: 1. Descrivere il problema: definire i dati in input, i confini del problema , i dati in output, le risorse a disposizione, le soluzioni adottate. 2. Definire il procedimento (algoritmo) 3. Eseguire l’algoritmo Si arriva cosi’ alla nozione di algoritmo: Concetto di algoritmo Il calcolatore elettronico per risolvere un problema utilizza un algoritmo, cioè un insieme di azioni (o istruzioni) che, eseguite secondo un ordine prestabilito, permettono di trovare il risultato cercato sulla base dei dati in ingresso. Il concetto di algoritmo è uno dei concetti di base dell'intera matematica: i più semplici ed antichi algoritmi sono le regole per eseguire le operazioni dell'aritmetica elementare, formulate dal matematico arabo medioevale Al-Khuwarizmi, da cui deriva appunto il nome di algoritmo. Si può definire un algoritmo come una sequenza ordinata e finita di passi (operazioni o istruzioni) elementari che conduce ad un ben determinato risultato in un tempo finito. Sequenza : l’ordine temporale con cui le azioni vengono eseguite Finita:l’ elaborazione deve avere termine in un tempo finito Passi elementari:l’ azione deve essere direttamente eseguita dall’ esecutore senza aiuti esterni. Altre caratteristiche dell’ algoritmo Realizzabile :deve poter essere eseguito dall’ esecutore. Nel nostro caso l’ esecutore è il computer, il quale possiede le seguenti abilità: Eseguire le quattro operazioni; Svolgere operazioni di confronto; Trasferire dati da una zona all’ altra del computer; Acquisire dati dall’ ambiente esterno; Comunicare dati all’ ambiente esterno. Non ambiguo:interpretabile in modo univoco dall’ esecutore Risultato osservabile: ogni istruzione deve produrre un effetto riscontrabile Deterministico: ad ogni passo dell’ esecuzione deve essere definita una ed una sola operazione da eseguire successivamente Generale: deve risolvere tutti i problemi della stessa categoria Esaustivo: deve essere indicata la soluzione per tutti i casi che si possono verificare Dall’algoritmo al processo: 1. Stesura dell’algoritmo ovvero descrizione delle azioni da intraprendere per trasformare un insieme di dati iniziali in un insieme di risultati finali. L’algoritmo viene rappresentato tramite un diagramma di flusso (flowchart) o tramite uno pseudolinguaggio. 2. Traduzione dell’algoritmo descritto nel diagramma di flusso in un programma usando un linguaggio di programmazione. Il linguaggio di programmazione è un insieme di simboli e regole per rappresentare le istruzioni di un algoritmo e la loro concatenazione che il computer è in grado di interpretare ed eseguire. 3. Il programma una volta corretto può essere mandato in esecuzione sul computer. Il programma mentre viene eseguito viene detto processo