Strutture di controllo Flashcards
Strutture di un programma
Un qualsiasi programma può essere realizzato utilizzando tre sole strutture fondamentali:
- struttura sequenziale;
- struttura di selezione (if, if/else e switch);
- struttura di iterazione (while, for, repeat e do. . .while). Qualsiasi programma è formato unicamente da queste strutture, naturalmente in una combinazione appropriata, a seconda dell’algoritmo che si trova alla base del programma stesso. Le tre strutture fondamentali possono essere concatenate (una di seguito all’altra) o nidificate (annidate, una dentro l’altra); non possono invece essere intrecciate o accavallate.
Strutture sequenziali
Nelle strutture sequenziali il flusso di esecuzione deve essere eseguito un passo dopo l’altro secondo un ordine specificato. Quindi, una struttura sequenziale permette l’esecuzione di più istruzioni una dopo l’altra. Le istruzioni possono essere di qualsiasi tipo.
Strutture di selezione
Un’istruzione di selezione serve a decidere quale azione intraprendere tra diverse alternative possibili.
L’istruzione if esegue un’azione soltanto se una condizione è vera (true), mentre la salta se la condizione è falsa (false).
L’istruzione if/else esegue un’azione se la condizione è vera, mentre ne esegue un’altra se la condizione è falsa.
L’istruzione switch esegue un’azione scelta tra una rosa di alternative, a seconda del valore intero di un’espressione.
La struttura if è un’istruzione di selezione singola, poiché sceglie o ignora una singola azione (oppure un singolo gruppo di azioni). L’istruzione if/else è un’istruzione di selezione doppia, poiché sceglie una tra due azioni alternative. L’istruzione switch è un’istruzione di selezione multipla poiché sceglie una tra varie azioni alternative (o gruppo di azioni).
Strutture iterative
Una struttura iterativa (o struttura per cicli) permette di eseguire delle istruzioni ripetutamente finché una condizione (detta condizione di continuazione del ciclo) rimane vera. Quando la condizione non è più verificata la struttura termina e si passa alla struttura successiva. La verifica della condizione di continuazione del ciclo può essere fatta in testa oppure può essere fatta in coda alla struttura iterativa. Nel secondo caso le istruzioni nel corpo del ciclo vengono eseguite almeno una volta.
Esistono quattro strutture iterative, ossia while, for, repeat e do. . .while.
Le istruzioni while e for eseguono un’azione (o un gruppo di azioni) nel loro corpo zero o più volte (se la condizione del ciclo è inizialmente falsa, l’azione non sarà eseguita).
L’istruzione repeat esegue un blocco di istruzioni ciclicamente finché non si incontra un’istruzione break che forza l’uscita dal loop.
L’istruzione do. . .while esegue l’azione (o gruppo di azioni) nel suo corpo una o più volte.
Parole riservate
Le parole if, if/else, switch, while, for, repeat, do. . .while e break sono parole riservate, il cui compito è quello di distinguere una ben precisa caratteristica del linguaggio di programmazione. Non è possibile utilizzare una parola riservata come identificatore, ossia come nome di una variabile. Anche TRUE e FALSE sono parole riservate che non possono essere usate come identificatori.
if
L’istruzione if è una struttura di controllo a una sola entrata/una sola uscita. Se la condizione è vera viene eseguito il blocco di istruzioni successive. Se invece la condizione è falsa, il blocco viene saltato e si passa direttamente al-la struttura successiva del programma senza eseguire nulla.
if/else
La struttura if/else consente al programmatore di indicare un blocco di istruzioni da eseguire quando la condizione è vera e un blocco di istruzioni alternative nel caso la condizione sia falsa.
while
Il ciclo while esegue un blocco di istruzioni finchè risulta vera l’espressione logica presente nella condizione di continuazione del ciclo; quando l’espressione risulta falsa si esce dal ciclo while.
L’istruzione while esegue un blocco di istruzioni finché la condizione di continuazione del ciclo resta vera. Ad un certo punto, la condizione diventerà falsa; in quel momento l’iterazione termina e l’esecuzione del programma prosegue dalla prima istruzione che si trova dopo la struttura iterativa while. Il corpo di un’istruzione iterativa while può contenere un’istruzione singola o un blocco. L’istruzione while esegue un blocco di istruzioni nel suo corpo zero o più volte (se la condizione di continuazione del ciclo è falsa, il blocco non sarà eseguito). Se l’operazione all’interno della struttura while non è tale da rendere la condizione falsa ad un certo punto, si ottiene un errore logico, detto ciclo infinito, perché l’iterazione non termina mai.
L’istruzione iterativa while può essere usata per implementare un ciclo controllato da un contatore e un ciclo controllato da un valore sentinella.
Iterazione controllata da un contatore
In un’iterazione while controllata da un contatore sono necessari quattro elementi:
- una variabile contatore del ciclo;
- il valore iniziale della variabile contatore;
- la quantità di incremento o decremento, con la quale viene modificata la variabile contatore ad ogni iterazione del ciclo;
- la condizione che verifichi se la variabile contatore ha raggiunto il suo valore finale (ovvero se il ciclo debba continuare o meno).
Iterazione controllata da un valore sentinella
Il valore sentinella ha lo scopo di indicare la fine dell’immissione dei dati di input (può, ad esempio, essere un ritorno a capo senza l’immissione di un nuovo dato). Nell’iterazione controllata da un valore sentinella si legge un valore prima che il programma raggiunga l’istruzione while. Questo valore è usato per determinare se il flusso di controllo del programma debba entrare nel corpo dell’istruzione while.
for
L’istruzione iterativa for consente di specificare le caratteristiche dell’iterazione controllata da un contatore in una singola riga di codice.