Sei interessato o avviato da poco nell’ambito della programmazione, ma desideri capirci un po’ di più sugli algoritmi? Leggi qua! L’algoritmo è, per definizione, una sequenza finita di passi necessari per la risoluzione di un problema o l’esecuzione di una computazione; nello specifico, un algoritmo deve avere caratteristiche di generalità. Un’altra definizione chiara dell’algoritmo dice che è un metodo di elaborazione da applicare a certi dati iniziali per ottenere risultati con dati finali. L’importante è che dal principio il problema sia ben posto, così da aver ben chiaro l’obiettivo da raggiungere, i dati di partenza e la possibilità di risoluzione per chi lo affronta.
Importante non confondere il risultato che si vuole ottenere con la soluzione a prescindere. Il passo successivo all’individuazione dell’algoritmo risolutivo è la trasformazione di esso in un programma scritto usando un linguaggio di programmazione, pertanto è possibile affermare che l’algoritmo ed il relativo programma sono due descrizioni dello stesso modo di risoluzione. C’è un risolutore (colui che individua il metodo di risoluzione) e un esecutore (la macchina che funge da mezzo per il metodo, descritto tramite algoritmo). L’algoritmo è, dunque, la descrizione delle operazioni da svolgere, dunque una serie di istruzioni. Quando esso viene eseguito si ottiene un flusso d’esecuzione, costituito da ‘passi’. Un algoritmo deve avere: generalità, comprensibilità, eseguibilità, finitezza, riproducibilità, non ambiguità, discretezza, non limitatezza dell’input né dei passi d’esecuzione.
Per descrivere gli algoritmi si deve ricorrere a linguaggi formali (artificiali) appositi: linguaggio lineare o linguaggio di progetto, e linguaggio grafico, basato su simboli (diagramma di flusso o diagramma a blocchi). Ricorda infine il concetto di variabile: si intende un oggetto con un nome e che permette di conservare un certo valore; l’insieme delle variabili in un algoritmo prende il nome di area lavoro. Una variabile è caratterizzata dal tipo, dal nome e dal contenuto.