Che cos’è un algoritmo in informatica?

Che cos’è un algoritmo in informatica?

Nel mondo digitale, gli algoritmi regnano sovrani. Sono le istruzioni dettagliate che guidano i computer nell’esecuzione di compiti complessi, dalla ricerca di informazioni online all’analisi di grandi volumi di dati. Ma cosa sono esattamente gli algoritmi e quali sono le loro caratteristiche fondamentali?

Che cos'è un algoritmo in informatica?

Un algoritmo può essere definito come una sequenza finita e ordinata di istruzioni che descrive un processo per risolvere un problema specifico. In altre parole, è una ricetta dettagliata che spiega passo dopo passo come raggiungere un determinato obiettivo.

Per funzionare correttamente, un algoritmo deve possedere alcune proprietà essenziali:

  • Atomicità: Ogni passo dell’algoritmo deve essere un’operazione elementare, non ulteriormente scomponibile in passaggi più piccoli.
  • Non ambiguità: Le istruzioni dell’algoritmo devono essere chiare e univoche, non lasciando spazio a interpretazioni differenti.
  • Finitezza: L’algoritmo deve terminare in un numero finito di passi, utilizzando una quantità definita di dati in ingresso.
  • Terminazione: L’esecuzione dell’algoritmo deve sempre giungere a termine in un tempo finito, evitando cicli infiniti o blocchi.
  • Effettività: L’algoritmo deve sempre produrre un risultato univoco e corretto per ogni insieme di dati di ingresso valido.
  • Determinismo: L’esecuzione dell’algoritmo con gli stessi dati di ingresso deve sempre produrre lo stesso risultato, indipendentemente da fattori esterni o da scelte casuali.

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 *