99
Il Barometro
Pericolosità
POSSIBILI CAUSE
DESCRIZIONE
SOLUZIONI
I programmatori inesperti
tendono ad “aggrovigliare”
il programma introducendo
numerosi salti privi di
regole. La semplicità di
utilizzare i salti un qualsiasi
punto del programma
sembra una soluzione
immediata e opportuna,
ma non c’è niente di più
sbagliato: se si inizia a
sviluppare programmi a
caso senza saper bene
dove si va a parare, si
rischia di complicare
notevolmente le cose,
e ciò che inizialmente
può sembrare una
buona soluzione, con
l’aumentare del codice
può rivelarsi disastroso.
Consigliamo di realizzare
prima uno schema di
flusso dell’algoritmo per
il problema da risolvere,
in particolare per quanto
riguarda i cicli, per poi
implementare il tutto
tenendo a mente che
il linguaggio adottato
consentirà solo ed
esclusivamente una
programmazione
strutturata.
La programmazione strutturata
nasce come proposta per
regolamentare e standardizzare le
metodologie di programmazione
(Dijkstra, 1965).
Obiettivo:
•
rendere più facile la lettura dei
programmi (e quindi la loro
modifica e manutenzione)
Idea di base:
•
la parte esecutiva di un
programma viene vista come
un comando (complesso
o strutturato) ottenuto
componendo istruzioni
elementari, mediante alcune
regole di composizione (strutture
di controllo)
Ma queste restrizioni, cioè
l’utilizzo di solamente sequenza,
selezione e iterazione senza l’uso
dei salti, dà la stessa “potenza di
calcolo” (espressività) oppure si
perde qualcosa?
Teorema di Bohm-Jacopini
(1966)
(in versione semplificata)
Le strutture di sequenza, selezione
e iterazione sono sufficienti a
esprimere un qualsiasi algoritmo.
Ciò significa che l’uso di queste
sole strutture non limita il potere
espressivo.
Per rendere più chiari e leggibili i
programmi è opportuno rifarsi alle
regole della
programmazione
strutturata
. Questo paradigma
impone l’uso esclusivo di tre
strutture di base per la costruzione
di ogni algoritmo. Queste tre
strutture possono essere combinate
tra loro, giustapponendole o
annidandole una dentro l’altra.
Soluzione proposta per l’esempio
errato:
1. INIZIO
2. i
←
0
3. Incrementa i di uno
4. Stampa i*i
5. se i<10 vai a al punto 3
6. stampa “Programma terminato.”
7. Esci dal programma
Correzione vulnerabilità
1
La programmazione strutturata ormai è entrata
di diritto nella quasi totalità dei linguaggi di
programmazione.
INIZIO
FINE
O
i
←
0
“Programma
terminato”
O
i*i
i
←
i+1
i < 10