Che cos’è un algoritmo in informatica?

Che cos’è un algoritmo in informatica?

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

Che cos'è un algoritmo in informatica?

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 specifici problemi mediante l’applicazione di una sequenza finita di precise 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 specifici 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 eseguire i seguenti passi (in ordine):

  1. prendere la macchinetta del caffè, il caffè macinato ed un cucchiaino;
  2. aprire la macchinetta del caffè e successivamente togliere il filtro;
  3. riempire la macchinetta del caffè con dell’acqua;
  4. mettere il caffè macinato nel filtro tramite il cucchiaino;
  5. mettere il filtro con il caffè macinato sopra la macchinetta riempita con dell’acqua;
  6. chiudere la macchinetta del caffè;
  7. aprire il fornello;
  8. posizionare la macchinetta del caffè sul fornello.

Come vedi, questo banale esempio rispecchia tutte le proprietà 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 che consente di 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 dello stesso:

Diagrammi di flusso in informatica
Diagrammi di flusso in informatica

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 all’analista e al programmatore che dovrà analizzare e creare complicati programmi.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *