L'algoritmo
Un algoritmo è una sequenza di azioni elementari per risolvere un problema.
Perché si chiama algoritmo? Il nome algoritmo deriva dal matematico persiano al-Khawarizmi che teorizzò il metodo della suddivisione del procedimento di risoluzione del problema in un numero finito di passi elementari.
Nell'informatica l'algoritmo consiste in una serie di calcoli e operazioni logico-matematiche per giungere alla risoluzione di un particolare problema.
A cosa serve l'algoritmo nella programmazione
Gli algoritmi sono molto utili durante lo sviluppo di un programma informatico.
Prima di programmare qualsiasi cosa, devi sapere come risolvere il problema. Altrimenti cosa programmi?
Un problema è calcolabile soltanto se è risolvibile. Se un problema non ha una soluzione logica, non puoi programmare una procedura automatica per risolverlo.
A questo pensa l'analista.
Cosa fa l'analista?
L'analista cerca un processo logico per risolvere il problema.
Una volta trovata la strada, suddivide il processo in singoli passi logici da seguire per giungere alla soluzione.
Ogni operazione viene suddivisa in piccole azioni da compiere in sequenza. Fino alla soluzione del problema.
Può trattarsi di un cammino lineare oppure condizionato al verificarsi di alcuni eventi.
In genere l'algoritmo è rappresentato con un diagramma a blocchi o flowchart.
Nota. Il nome degli algoritmi è seguito dalla funzione che svolgono ( es. algoritmo di ricerca, di ordinamento, di compressione, ecc. ).
Non c'è ancora un programma informatico. Ma ora è più chiaro cosa si deve programmare.
A questo punto l'algoritmo ( analisi ) può passare nelle mani del programmatore.
Cosa fa il programmatore?
Il programmatore codifica l'algoritmo in una serie di comandi e istruzioni rispettando la sintassi di un linguaggio di programmazione.
Il risultato finale è un programma informatico, ossia un software, che può essere eseguito dal computer.
Cos'è un programma informatico? E' una lista di istruzioni ( codice sorgente ) comprensibili dal computer. Può trattarsi di un programma interpretato ed eseguibile oppure compilato in linguaggio macchina ( oggetto ).
Come fare un algoritmo
Immagina un problema da risolvere, poi trova la soluzione.
Ora scomponi la soluzione in una serie di operazioni elementari da compiere in sequenza.
Un esempio pratico
Questo semplice algoritmo ti mostra come calcolare la media aritmetica di due numeri.
- Inserisci il primo numero N1 ( primo dato di input )
- Inserisci il secondo numero N2 ( primo dato di input )
- Somma i due numeri ( S=N1+N2 )
- Dividi la somma per due ( M=S/2 )
- Stampa il risultato della divisione ( M ) in output
In ogni singolo passo viene descritta una singola operazione da compiere.
Cosa fa l'algoritmo? Nei primi due passi l'utente inserisce i due dati di input ( N1 e N2 ). Nel terzo e quarto passo l'algoritmo svolge i calcoli dell'elaborazione. Nel quinto e ultimo passo, infine, l'algoritmo restituisce il risultato in output.
Come si rappresenta l'algoritmo?
Puoi rappresentare l'algoritmo precedente con il seguente diagramma di flusso.
Nota. E' un algoritmo molto semplice. In quelli più complessi devi considerare molte più variabili in input e utilizzare gli eventi condizionati ( es. IF THEN ).
Quali sono le proprietà di un algoritmo?
Un buon algoritmo ha le seguenti caratteristiche:
- E' atomico. I passi devono essere elementari e non ulteriormente scomponibili.
- E' chiaro. I passi devono essere chiaramente interpretabili, senza fraintendimenti o equivoci. Ogni possibile ambiguità deve essere rimossa.
- Ha un numero finito di passi. L'algoritmo deve avere un numero finito di passi.
- Ha un numero finito di dati di input. L'algoritmo deve usare un numero finito di dati in ingresso ( input ).
- Ha un inizio e una fine. Il calcolo ha un inizio e una fine entro un lasso di tempo di elaborazione finito.
- La soluzione univoca. Il risultato dell'elaborazione deve essere chiaro e univoco.