Concetti Chiave

  • L'algoritmo, derivante dal matematico al-Khawarizmi, rappresenta un insieme finito di azioni ordinarie e sistematiche per risolvere un problema specifico.
  • Per essere considerato un algoritmo, deve possedere proprietà essenziali come finitezza, univocità, generalità, completezza, osservabilità e determinismo.
  • L'efficienza di un algoritmo è fondamentale e si riferisce alla sua correttezza, velocità e utilizzo parsimonioso delle risorse necessarie per ottenere risultati.
  • Gli algoritmi possono essere rappresentati graficamente tramite diagrammi a blocchi, che utilizzano simboli precisi, o attraverso pseudolinguaggio, che offre una descrizione formale senza ambiguità.
  • Lo pseudocodice è l'attività di scrittura dello pseudolinguaggio, fornendo una descrizione chiara e senza ambiguità delle azioni da eseguire nell'algoritmo.

L’algoritmo - prende il nome dal matematico arabo Abu Ja’far Mohammed ibn Musa al-Khawarizmi - deve indicare in modo chiaro, sistematico e rigoroso le azioni da eseguire una dopo l’altra: vanno indicate le analisi e i dati - che devono essere il più precisi possibile, per evitare i problemi di interpretazione così da ottenere un risultato fedele a ciò che è stato chiesto - e la strategia risolutiva. L'algoritmo è il procedimento risolutivo di un problema, ed è descritto da un insieme finito e azioni elementari definite, che formano una successione ordinata e finita di passaggi, la quale esecuzione si arresta per fornire i risultati del problema partendo dai valori assunti dai dati iniziali.

Proprietà essenziali degli algoritmi

Un algoritmo, per essere definito tale, deve essere: finito, la strategia risolutiva deve essere composta da un numero finito di azioni elementari; deve essere univoco e preciso, ciò significa che ogni azione deve essere descritta minuziosamente e chiaramente per evitare i problemi di interpretazione; generale: deve essere valido per tutti i problemi della sua stessa classe; completo: vanno considerati tutti i casi possibili verificabili e indicarne la soluzione; osservabile nei risultanti, quindi i risultati devono essere esplicitati e deve esserci un riscontro oggettivo del risultato; deterministico: partendo dagli stessi dati iniziali, l'esecuzione dell'algoritmo deve dare gli stessi risultati.

Efficienza e rappresentazione degli algoritmi

Per risolvere un problema, esistono svariate risoluzioni differenti tuttavia solo una delle tante va selezionata, ciò è possibile tramite un parametro detto efficienza. Un algoritmo si può definire efficiente quando è corretto, è veloce ed è parsimonioso - per quanto riguarda le risorse utilizzate per produrre il risultato.

Un algoritmo è rappresentabile tramite un diagramma a blocchi o lo pseudolinguaggio.

Diagramma a blocchi: è la descrizione, in modo grafico, di un algoritmo ed è rappresentata per mezzo di simboli precisi e intuitivi.

Pseudolinguaggio: è un linguaggio più preciso rispetto al linguaggio naturale che usufruisce di metafore, allegorie, sinonimi e ambiguità che non garantiscono al 100% la comprensione , senza alcuna ambiguità, del problema. Quindi lo pseudolinguaggio è un linguaggio formale, che utilizza simboli ai quali è attribuibile un solo significato, la descrizione formale dell’algoritmo è detta pseudo codice e la pseudocodifica è l’attività di scrittura dello pseudocodice.

Domande da interrogazione

  1. Quali sono le proprietà essenziali che un algoritmo deve possedere?
  2. Un algoritmo deve essere finito, univoco e preciso, generale, completo, osservabile nei risultati e deterministico, per garantire l'efficacia nella risoluzione dei problemi (come descritto nel testo).

  3. Come si definisce l'efficienza di un algoritmo?
  4. L'efficienza di un algoritmo si riferisce alla sua correttezza, velocità e parsimonia nell'uso delle risorse per produrre un risultato, permettendo di selezionare la migliore risoluzione tra le varie possibili (secondo quanto indicato nel testo).

  5. Quali sono le modalità di rappresentazione di un algoritmo?
  6. Un algoritmo può essere rappresentato tramite un diagramma a blocchi, che utilizza simboli grafici, o tramite pseudolinguaggio, che è un linguaggio formale privo di ambiguità, utilizzato per descrivere l'algoritmo in modo preciso (come spiegato nel testo).

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community