1 . Dal problema all ’ algoritmo versione 6.2 – Settembre 2024
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