1aC     
Esercitazione di laboratorio n.12
Strutture di controllo
Quando risolviamo un problema mediante un algoritmo, dobbiamo combinare le varie istruzioni utilizzando delle particolari strutture.

Ad esempio, l'algoritmo per determinare se un numero intero n è primo:

"Divido ripetutamente il numero per tutti i numeri da 1 fino al numero n.
Se il resto di tali divisioni è 0 per 2 volte allora il numero è primo."

Si osserva quindi che questo algoritmo ripete delle istruzioni e contiene un condizionale (se...allora).

Per scrivere programmi che risolvono problemi significativi occorre organizzare le istruzioni in tre strutture:
  • la sequenza: le istruzioni vengono eseguite tutte nella sequenza in cui sono state scritte, dalla prima all'ultima.
  • il condizionale (decision making): permette di eseguire o meno delle istruzioni a seconda che sia soddisfatta o meno una certa condizione (booleana); questa struttura permette quindi una 'ramificazione' del flusso delle istruzioni, facendo in modo che il programma esegua una sezione di codice o un'altra sezione di codice.
  • il ciclo (loop): permette di eseguire una porzione di codice più volte, fino a che una condizione risulta soddisfatta.
    Ogni passaggio attraverso il ciclo è detto iterazione.

E' stato dimostrato il seguente teorema fondamentale:
"Ogni algoritmo può essere espresso con le sole tre strutture di controllo fondamentali: sequenza di istruzioni, selezione e iterazione" (teorema di Jacopini - Bohm, 1966)