Cosa è un algoritmo? Come si costruisce? A cosa serve? Se ti sei posto queste domande sei nel posto giusto!

algoritmi

Un algoritmo è “un insieme finito e numerabile di istruzioni atte a risolvere un problema di una determinata categoria”.
Il termine “algoritmo” deriva dalla trascrizione latina del nome del matematico persiano al-Khwarizmi.

L’algoritmo è un concetto fondamentale per l’informatica perché: un problema è calcolabile quando è risolvibile mediante un algoritmo. In altre parole, tutti i problemi risolvibili mediante algoritmo sono automaticamente calcolabili da un calcolatore.

Inoltre l’algoritmo è fondamentale per la programmazione in quanto è “scritto” in un linguaggio naturale, traducibile in qualsiasi linguaggio di programmazione, e garantisce la correttezza e la fine della soluzione di un problema.

algoritmo

Algoritmo dell’ amicizia del dr. Sheldon Cooper, Ph.D — The Big Bang Theory —

Proprietà fondamentali di un algoritmo

  • Istruzioni non ambigue: ogni operazione prevista dall’algoritmo deve essere univocamente interpretabile dall’esecutore. Questo implica che i risultati ottenuti dall’esecuzione dell’algoritmo non cambiano al variare dell’esecutore (macchina/persona);
  • Istruzioni eseguibili: ogni operazione deve essere eseguibile con le risorse a disposizione dell’esecutore;
  • Ordine di esecuzione delle istruzioni deterministico;
  • Numero finito di passi di esecuzione: questo implica che il numero totale di istruzioni da eseguire, per ogni insieme di dati di ingresso, è finito e le operazioni da esse specificate devono essere eseguite un numero finito di volte.

Proprietà auspicabili

  • Corretto;
  • Efficiente: fa uso limitato di risorse (tempo di esecuzione e quantità di memoria utilizzata);
  • Leggibile: facilmente comprensibile;
  • Modificabile: l’algoritmo deve essere facilmente modificabile, a fronte di (piccole) modifiche nelle specifiche del problema risolto dall’algoritmo.

Come costruire un algoritmo

Per costruire un algoritmo abbiamo bisogno di 4 costrutti, che sono:

Ovale:  questo simbolo si utilizza per indicare l’inizio e la fine dell’algoritmo.

ovale

Parallelogramma: usato per indicare operazioni di ingresso (Input) oppure operazioni di uscita (Output).

Gli input sono dati che l’utente da in pasto al programma, come ad esempio l’ inserimento di un numero, mentre l’output è il risultato che il sistema restituisce dopo aver svolto delle operazioni, come ad esempio il risultato di una somma.

parallelogramma

I = input; O = output

Rettangolo:  Nel rettangolo si scrivono le operazioni (assegnazioni, operazioni aritmetiche) che vogliamo far svolgere al nostro programma.

Alcuni esempi di operazioni sono:

  • Assegna il valore 3 alla variabile X;
  • Calcola la somma di A e B;
  • Incrementa Z.

Rombo: il rombo indica una condizione, le condizioni sono molto importanti nei programmi in quanto permettono di scegliere strade diverse in funzione del risultato della condizione. Alcuni esempi di condizioni sono:

  • Se A è maggiore di B, allora scrivi 1, altrimenti scrivi 0;
  • Se A è uguale a B, scrivi 0, altrimenti scrivi 1;
  • Se A è diverso da 0, aggiungi B ad A.

rombo

In questo articolo abbiamo descritto i costrutti fondamentali per costruire un algoritmo. Nei prossimi articoli verranno illustrati nel dettaglio alcuni algoritmi fondamentali, tra cui la somma di numeri, la media, la ricerca e molto altro.

 

Il prossimo passo da compiere è costruire un algoritmo strutturato, che descriveremo nel prossimo articolo.

Stai cercando altre guide? Allora dai uno sguardo alla nostra raccolta dedicata agli Algoritmi.

Alla prossima!