Che cos’è un algoritmo in generale e in informatica

Chi si avvicina per la prima volta al mondo dell’informatica sente spesso parlare di algoritmo. Tuttavia, non tutti sanno che cos’è un algoritmo e/o a che cosa serve creare un algoritmo. Eccoti, pertanto, un articolo che senza fare ulteriori ricerche ti permetterà di capire questi semplici concetti.

Indice

Che cos’è un algoritmo in generale e in informatica

In generale, un algoritmo non è altro che una semplice procedura che tenta di risolvere un determinato problema applicando un certo numero di passi elementari.

Analogamente, in informatica un algoritmo non è altro che un semplice procedimento che permette la risoluzione di determinati problemi mediante l’applicazione di una sequenza finita di istruzioni che, a loro volta, devono essere interpretate ed eseguite fino alla loro conclusione seguendo un ben preciso ordine.

Da questa definizione si deducono, quindi, le seguenti proprietà fondamentali che deve avere un qualunque algoritmo:

  • i passi dell’algoritmo devono essere elementari, cioè non possono essere ulteriormente divisibili (atomicità);
  • i passi dell’algoritmo non possono essere interpretati in altri modi (non ambiguità);
  • l’algoritmo deve per forza essere svolto in un certo numero di passi e, allo stesso tempo, deve richiedere in ingresso soltanto una determinata quantità di dati (finitezza);
  • l’esecuzione dell’algoritmo deve terminare entro un certo periodo di tempo (terminazione);
  • l’esecuzione dell’algoritmo deve portare ad un risultato univoco (effettività);
  • ogni passo dell’algoritmo deve essere ben stabilito (determinismo).

Ad esempio, per preparare il caffè bisogna:

  • prendere la macchinetta del caffè, il caffè macinato ed un cucchiaino;
  • aprire la macchinetta del caffè e successivamente togliere il filtro;
  • riempire la macchinetta del caffè con dell’acqua;
  • mettere il caffè macinato nel filtro tramite il cucchiaino;
  • mettere il filtro con il caffè macinato sopra la macchinetta riempita con dell’acqua;
  • chiudere la macchinetta del caffè;
  • aprire il fornello;
  • posizionare la macchinetta del caffè sul fornello.

Come vedi, questo banale esempio rispecchia tutte le caratteristiche che dovrebbe avere un qualsiasi algoritmo, ed in più dovrebbe anche farti capire sia come si creano gli algoritmi, sia come dovrebbero essere tutti gli altri algoritmi.

Solamente che gli altri algoritmi potrebbero essere molto più lunghi ed intricati rispetto a questo esempio di algoritmo che indica come preparare il caffè.

Diagrammi di flusso

A volte, per mostrare la procedura seguita da un certo algoritmo potrebbe anche essere adoperato un cosiddetto diagramma di flusso.

Per rappresentare i diversi concetti, nella maggior parte dei casi questi diagrammi di flusso utilizzano, infatti, cinque distinti blocchi:

  • inizio;
  • ingresso/uscita;
  • elaborazione;
  • controllo;
  • fine.

Per chiarirti meglio le idee sull’utilità di questi diagrammi di flusso prendiamo, ad esempio, il seguente algoritmo che verifica se è possibile fare uno spuntino:

  1. inizia lo spuntino
  2. hai a disposizione qualcosa da poter mangiare?
  3. mangia
  4. hai ancora fame?
  5. fine dello spuntino

L’algoritmo esposto in questo modo risulta piuttosto difficile da comprendere.

Tuttavia, rappresentando il suddetto algoritmo attraverso un semplice diagramma di flusso sarà molto più facile capirne il funzionamento:

Diagramma di flusso

La rappresentazione grafica di un algoritmo mediante l’utilizzo di un diagramma di flusso potrebbe sembrare una sciocchezza, eppure, utilizzando questi semplici diagrammi di flusso, non solo sarà possibile esprimere concetti davvero molto complessi, ma a volte sarà anche possibile facilitare il compito al programmatore che dovrà creare dei complicati programmi.

Conclusioni

Dunque, un algoritmo non è altro che una sequenza finita di istruzioni ben precise e viene tipicamente utilizzato o per risolvere un insieme di problemi specifici, o per eseguire un determinato calcolo.

È proprio quindi grazie agli algoritmi che i computer sono in grado di elaborare i dati ricevuti in ingresso oltre ad automatizzare delle operazioni anche piuttosto complesse.

Arrivati comunque a questo punto dovresti aver finalmente capito che cos’è un algoritmo in generale e in informatica.