Sei sulla pagina 1di 4

VOL_1 / UNITA’ 1 / MOD_1 /

INTRODUZIONE AGLI ALGORITMI

[1.1.1.11]

Definiamo ALGORITMO1 qualunque schema o procedimento sistematico di calcolo.

A volte si usa, per lo stesso scopo, una rappresentazione grafica equivalente: il diagramma di flusso o FLOW
CHART.

Il numero finito e l’atomicità di questi passaggi ne sottolineano la possibilità di formalizzare la procedura


attraverso tecniche e formalismi differenti.

Il formalismo grafico dei flow chart è particolarmente indicato per esprimere un algoritmo anche se
vedremo che altri formalismi più potenti sono maggiormente indicati per la rappresentazione dei sistemi di
processo industriali.

E’ importante sottolineare che il procedimento prescinde dal tipo di dispositivo o di tecnologia con cui verrà
svolto il problema.

LE REGOLE DEGLI ALGORITMI

Gli algoritmi devono soddisfare le seguenti tre regole

1) Sono costituiti da un numero finito di regole precise


2) Devono potersi applicare a dati che variano in larga misura
3) Devono tendere ad un risultato coerente con la scelta corretta dei dati

In ambito matematico (ma è possibile estendere il ragionamento anche ad ogni processo o attività) la
risoluzione delle semplici operazioni aritmetiche (o i più articolati calcoli del MDC o del mcm) sono semplici
algoritmi che si possono codificare e rappresentare attraverso formalismi o metalinguaggi.

Lo scopo di questi passaggi è quello di poter sviluppare la risoluzione di un qualsiasi problema in modo da
poter essere eseguibile da una macchina logica.

A questo tipo di approccio viene dato il nome di CODING e si può tradurre come “pensare macchina”.

1
Il termine ALGORITMO deriva dal nome del matematico arabo AL-KHOWARIZMI (IX sec.)
1
Prometeo del 3° millennio: implicazioni antropologiche del CODING, della dittatura delle macchine e dei
numeri.
Il confine sempre più labile tra umano e macchina ci porta ad una riflessione inevitabile.
Ciò che è stato concepito come facilitazione alla fatica umana, nel tempo, conseguenza di una
straordinaria e geometrica evoluzione tecnica (e soprattutto informatica), è trasfigurato in una sorta di
archetipo, una sovrastruttura verso cui la società sta tendendo. L’uomo nel corso del tempo ha modificato
l’approccio al mondo fenomenico assumendo un atteggiamento sempre più simile ad una macchina.
L’uomo ha creato la macchina a sua immagine e somiglianza ma alla fine ne sta assumendo lui l’aspetto.
I miti prima del Golem e poi di Frankenstein, stanno rivelando un curioso paradosso in cui non è più la
macchina che evolvendo rischia di sopraffare l’essere umano, ma è l’uomo che sta inesorabilmente
trasformandosi in una macchina.
“Cogitare ex machina”, pensare macchina, più che uno sforzo che il progettista dei sistemi automatici deve
fare, è un’attitudine da cui guardarsi.

DAL PROBLEMA ALL’ALGORITMO

Il problema:

“Dati i numeri A e B interi e positivi A , B ∈ N , determinare il loro MCD”

Il problema si presenta “in solido”, come un unico blocco dal quale bisogna estrarre tutti gli elementi per
formulare una procedura di risoluzione: l’algoritmo.

E’ essenziale d unque una sua “riformulazione” che consentirà una “predisposizione” alla futura
“elaborazione”.

Lo schema potrebbe essere così codificato graficamente:

NO !!!

PROBLEMA ELABORAZIONE

SI !!!

RIFORMULAZIONE PREDISPOSIZIONE

Per elaborazione si intende la stesura di un formalismo che consente la più agevole trasposizione ad un
linguaggio comprensibile ad una macchina di calcolo (PC, PLC, o altro).

2
Questo tipo li formalismo, che prende il nome di METALINGUAGGIO 2, deve avere due caratteristiche
basilari:

1) Essere compatibile con il nostro linguaggio


2) Essere predisposto ad una diretta traduzione verso la macchina

Per affrontare il problema si propone di risolverlo secondo la procedura concepita da Euclide. In un certo
senso stiamo formalizzando un algoritmo Euclideo.

Al termine di questa procedura analitica si saranno poste le basi per riformulare e predisporre il problema.

Procedimento di Euclide per il calcolo dell’MCD.

Fase Azione Commento


1 Considerare i numeri A e B Fase in cui le variabili
generiche A e B vengono fatte
corrispondere a valori
numerici.
2 Confrontare i numeri al fine di valutare se:
A>B
A<B
A=B
3 Se A=B il calcolo si arresta e il risultato coincide con
il loro valore

4 Se il primo numero è minore del secondo,


scambiare i numeri tra loro.

5 Sottrarre A (minuendo) a B (sottraendo) e


sostituire la differenza e il sottraendo con il
contenuto di A e B.
Ripetere dalla fase numero 2.

2
METALINGUAGGIO è l’unione delle parole META+LINGUAGGIO, il prefisso META proviene dal greco <con, dopo>. In
questo caso può intendersi come “…che trascende ….”. Questo formalismo è ciò che trascende il linguaggio.
3
Si procede con una verifica ragionata su un esempio pratico.

“Calcolare il MCD di 3 e 7”

A3 B Fase Azione
3 7 1 Considerare i numeri 3 e 7
2 Il contenuto di A è minore di B
3 I numeri non sono uguali
7 3 4 I numeri vengono scambiati
Si esegue la differenza tra A e B;
5 7-3=4 e si pongono i risultati in A e B e si
torna alla fase 2
4 3 2 Il contenuto di B è minore di A
3 I numeri non sono uguali
Si esegue la differenza tra A e B;
5 7-3=4 e si pongono i risultati in A e B e si
torna alla fase 2
4 3 2 Il contenuto di B è minore di A
3 I numeri non sono uguali
Si esegue la differenza tra A e B;
5 4-3=1 e si pongono i risultati in A e B e si
torna alla fase 2
1 3 2 Il contenuto di A è minore di B
3 I numeri non sono uguali
3 1 4 I numeri vengono scambiati
Si esegue la differenza tra A e B;
5 3-1=2 e si pongono i risultati in A e B e si
torna alla fase 2
2 1 2 Il contenuto di B è minore di A
3 I numeri non sono uguali
Si esegue la differenza tra A e B;
5 2-1=1 e si pongono i risultati in A e B e si
torna alla fase 2
1 1 2 Il contenuto di B è uguale ad A
Poiché i risultati sono congruenti il
3
calcolo si arresta e il risultato è 1

L’ultimo passaggio sarà quello di formalizzare l’algoritmo e avverrà solo quando saranno note le regole
sintattiche e semantiche del METALINGUAGGIO.

3
Le caselle chiamate con A e B è da intendersi come due contenitori in cui appoggiare i risultati parziali che via via
saranno utilizzati per i confronti e le operazioni. Nei capitoli successivi questo ruolo sarà affidato a elementi
informatici chiamati “celle di memoria”.
4

Potrebbero piacerti anche