Nel 1966, Corrado Böhm e Giuseppe Jacopini enunciarono il teorema di Böhm e Jacopini: qualunque algoritmo può essere realizzato utilizzando i soli costrutti sintattici fondamentali, ovvero sequenza, selezione e iterazione.
Il costrutto di selezione si divide in binaria e unaria.
Il costrutto di selezione binaria permette di effettuare una scelta tra due possibili opzioni. Si può quindi dire che SE la condizione risulta vera ALLORA avverrà una determinata azione (o una determinata serie di azioni) ALTRIMENTI se la condizione risulta falsa avverrà un'altra azione o una serie di azioni.
Vediamo la sintassi per il diagramma a blocchi e lo pseudocodice:
Il costrutto di selezione unaria prevede un'azione o una serie di azioni nel caso la condizione risulti vera. Risulta quindi che SE la condizione risulta vera ALLORA verrà eseguita un'azione (o una serie di azioni) ALTRIMENTI il flusso del programma proseguirà senza fare nulla.
Utilizzata per risolvere i problemi in cui si opera una scelta (tra più di due alternative) in dipendenza al valore di un parametro.
.
<Selettore> è il nome della variabile il cui valore discrimina la scelta;
<Valore1> è il possibile valore della variabile.
I costrutti iterativi (detti anche cicli) vengono utilizzati quando un'istruzione o una serie di istruzioni deve essere eseguita fino al verificarsi di una determinata condizione. Esistono tre iterazioni:
pre-condizionale;
post-condizionale;
enumerativa.
Come preannuncia il nome, nelle iterazioni pre-condizionali viene prima controllata la condizione e poi (SE LA CONDIZIONE RISULTA VERA) si passa all'esecuzione delle azioni. La <Condizione> viene definita guardia del ciclo. Le azioni presenti nel ramo vero del ciclo prendono invece il nome di corpo del ciclo.
Essendo la guardia del ciclo posta prima delle azioni, non è detto che queste azioni verranno eseguite almeno una volta durante l'esecuzione dell'algoritmo.
Nell'iterazione post-condizionale, la condizione viene verificata dopo l'esecuzione delle istruzioni che compongono il corpo del ciclo. Anche in questo caso la <Condizione> prende il nome di guardia del ciclo.
La particolarità dell'iterazione post-condizionale è che le azioni componenti il corpo del ciclo vengono eseguite almeno una volta durante l'esecuzione dell'algoritmo.
L'iterazione enumerativa deriva dalla struttura dell'iterazione pre-condizionale. Permette di ripetere il corpo del ciclo fino per un determinato numero di volte. La condizione di arresto è indicata dal valore massimo raggiungibile da una variabile chiamata indice (avente funzione di contatore).