3° Anno TEORIA 2. Dal problema all'algoritmo | Page 3

1. Dal problema all’ algoritmo versione 6.3 – Ottobre 2025
L’ algoritmo deve infatti avere le seguenti caratteristiche: essere ……..
NON AMBIGUO ossia UNIVOCO
FINITO
GENERALE DETTAGLIATO DETERMINISTICO
COMPLETO
OSSERVABILE NEI RISULTATI LIMITATO NEL TEMPO
EFFICIENTE
Ogni passo o azione elementare deve essere univocamente interpretabile dall’ esecutore Il processo risolutivo descritto dall’ algoritmo deve cioè terminare dopo un numero finito di passi o azioni elementari e deve essere caratterizzato da un punto iniziale e da uno finale. L’ algoritmo va inteso come metodo di risoluzione non di un unico caso ma di una classe di problemi di uno stesso tipo Ad ogni passo dell’ algoritmo deve corrispondere un’ azione elementare che l’ esecutore è in grado di compiere deve risolvere il problema in tutti i suoi aspetti e sempre in tutti i casi. L’ algoritmo partendo dalle stesse condizioni iniziali deve fornire sempre gli stessi risultati finali. L’ algoritmo deve considerare tutti i casi possibili che si possono verificare durante l’ esecuzione e per ogni caso indicare la soluzione da seguire. Deve esserci un riscontro oggettivo dei risultati prodotti dall’ algoritmo ossia la verifica deve essere testabile
Anche se impiega molto tempo deve comunque avere un punto di arresto
L’ esecuzione dell’ algoritmo deve comportare l’ utilizzo, tendenzialmente, di meno risorse possibili
Per descrivere un algoritmo bisogna necessariamente utilizzare un linguaggio. La cosa più ovvia sarebbe quella di utilizzare il nostro linguaggio naturale ossia l’ italiano ma a causa delle sue possibili ambiguità( che vedremo in seguito) occorre utilizzare i cosiddetti linguaggi formali. Nel nostro caso useremo come linguaggio formale un linguaggio di progetto o pseudolinguaggio simile all’ italiano ma con qualche accorgimento per eliminare le possibili ambiguità:
PROBLEMA
DATI( di input) ALGORITMO Formalizzato( Pseudocodifica)
DATI( di lavoro o di elaborazione)
DATI( di output)
SOLUZIONE
Un secondo linguaggio formale per la rappresentazione dell’ algoritmo consiste nell’ utilizzare particolari simboli grafici( ossia disegni), connessi fra loro, che rappresentano le diverse azioni elementari descritte nell’ algoritmo. Questa rappresentazione grafica pende il nome di“ Flow- Chart” o“ Diagramma di Flusso”:
DATI( di input) ALGORITMO
PROBLEMA
Formalizzato( Flow-chart)
DATI( di lavoro o di elaborazione)
DATI( di output)
SOLUZIONE
Nel caso in cui l’ algoritmo formalizzato( espresso in pseudolinguaggio e / o con diagramma di flusso) debba essere eseguito in modo automatico dal computer, vi è la necessità di tradurlo in un linguaggio che possa essere capito ed eseguito dal computer cioè in linguaggio binario o linguaggio macchina( costituito dai soli simboli 0 ed 1). Tale attività veniva fatta una volta direttamente dall’ uomo( e per alcune attività tecniche può ancora esser fatta) oppure può essere effettuata da particolari programmi( compilatori ed interpreti) che hanno il compito di tradurre in linguaggio macchina un algoritmo formalizzato scritto in un
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 3