Nello sviluppo di un pogramma di complessità medio-bassa è utile ricondursi alle seguenti fasi:
Ridefinizione del poblema e individuazione degli input e degli output
Per ridefinire il problema da risolvere occorre studiare la situazione attentamente, descrivere, se necessario e possibile, la situazione reale e cercare di ricavare il modello matematico che porta alla soluzione del problema. È possibile considerare in questa fase il software che si vuole realizzare come un sistema che ricevuti degli input produce degli output:
![]() |
![]() |
![]() |
Non si può prescindere nella ricerca della strategia risolutiva dall'individuazione precisa di quali siano gli input e gli output, del legame tra questi e dal tempo/momento della loro disponibilità.
La corretta individuazione degli input, degli output e del modello matematico dovrà portare nella fase successiva all'individuazione delle strutture di controllo che, opportunamente composte, descrivono la strategia risolutiva necessaria a raggiungere gli output desiderati dagli input disponibili.
Descrizione delle variabili
La tabella delle variabili è una tabella nella quale si elencano i simboli (identificatori) che si ritiene di dover utilizzare all'interno dell'algoritmo. Di norma all'identificatore si associa una breve descrizione, il tipo di dato rappresentato e l'ambito di utilizzo (per l'input, per l'output o come variabile di lavoro). Un esempio di tabella delle variabili potrebbe essere:
Identificatore |
Descrizione |
Tipo |
Uso |
r |
Raggio |
reale |
Input |
h |
Altezza |
reale |
Input |
Ab |
Area della base |
reale |
Lavoro |
Vc |
Volume del cilindro |
reale |
Output |
Descrizione dell'algoritmo
In questa fase si utilizzano solitamente strumenti quali pseudo-codice o diagramma a blocchi (flow-chart o diagrammi di flusso), con i quali è possibile, utilizzando fomalismi condivisi, descrivere la strategia risolutiva che si intende adottare. All'interno di un algoritmo è possibile riconoscere operazioni quali:
Codifica dell'algoritmo
L'ultima fase del lavoro (in realtà ve ne sono delle altre ma, per i nostri scopi, quelle descritte sono sufficienti) consiste nel descrivere l'algoritmo utilizzando un linguaggio di programmazione. È importante osservare che non esiste necessaiamente una corrispondenza univoca tra singola azione descritta nell'algoritmo e singola istruzione del programma ottenuto con l'operazione di codifica.Sta all'abiltà e all'espeienza del pogrammatore, che spesso non ha sviluppato in prima persona la fase di analisi e quindi potrebbe non aver scritto l'algoritmo, ottenere dall'algoritmo stesso le istruzioni corrispondenti nel linguaggio di programmazione che è chiamato ad utilizzare. Va da se, quindi, che l'algoitmo deve essere scritto in modo indipendente dal linguaggio da utilizzare e che il linguaggio di programmazione utilizzato non deve influenzare la rappresentazione dell'algoritmo.