Strutture iterative del linguaggio C
Sito: | Materiali Didattici |
Corso: | (Classe 2a) - Scienze e Tecnologie Applicate |
Libro: | Strutture iterative del linguaggio C |
Stampato da: | Utente ospite |
Data: | venerdì, 17 maggio 2024, 11:24 |
1. Strutture iterative
Nel linguaggio C una struttura iterativa è un blocco di istruzioni eseguito per uno o più cicli, in base a un'espressione logica di controllo che determina l'interruzione dell'iterazione.
Le principali istruzioni iterative del linguaggio C sono le seguenti:
WHILE. L'espressione di controllo viene verificata prima del ciclo. L'iterazione si conclude quando l'espressione di controllo è vera. Il numero delle iterazioni non è determinato a priori.
DO WHILE. L'espressione di controllo viene verificata prima del controllo viene verificata prima del ciclo. Pertanto, l'iterazione viene eseguita almeno una volta e si conclude quando l'espressione di controllo è falsa. Il numero delle iterazioni non è determinato a priori.
Differenza tra WHILE e DO WHILE. Le due istruzioni iterative sono simili. In entrambe il ciclo dipende da un'espressione di controllo e il numero delle iterazioni non è conosciuto all'inizio. Tuttavia, nel ciclo WHILE l'istruzione di controllo è all'inizio. Pertanto, se l'espressione di controllo è falsa, l'iterazione non viene eseguita nemmeno una volta. Viceversa, nel ciclo DO WHILE l'espressione di controllo è alla fine. Quindi, l'iterazione viene eseguita almeno una volta.
FOR. L'espressione di controllo determina il numero esatto dei cicli. In questo caso il numero delle iterazioni è noto fin dall'inizio.
2. Il ciclo WHILE
Nel linguaggio C l'istruzione While crea una struttura iterativa condizionata che esegue lo stesso blocco di codice fin quando si verifica un particolare evento.
La sintassi della funzione While
La sintassi dell'istruzione While è la seguente:
While ( espressione di controllo ) {
// blocco di istruzioni
}
Se l'espressione di controllo è vera il blocco di istruzioni compreso tra le parentesi graffe {} viene eseguito una o più volte. Ogni esecuzione del blocco di istruzioni è detto ciclo o iterazione. In ogni ciclo sono eseguite le stesse istruzioni del blocco.
Il ciclo si interrompe quando l'espressione di controllo diventa falsa.
Un esempio pratico
int n;
n=0;
while ( n<11 ) {
printf(" %d ", n );
n++;
}
return 0;
3. Il ciclo DO WHILE
Nel linguaggio C la funzione Do While crea un'iterazione condizionata a un evento con controllo posticipato. La sintassi della funzione Do While
DO {
// blocco di istruzioni
}
WHILE ( espressione di controllo );
Come funziona la funzione DO WHILE
Nel primo ciclo la funzione DO esegue le istruzioni racchiuse tra le parentesi graffe {} indipendentemente dall'espressione di controllo. Al termine del primo ciclo la funzione WHILE verifica se l'espressione di controllo è vera. Se l'espressione è vera, la funzione DO esegue il blocco di istruzioni tra le parentesi graffe per il secondo ciclo. E così via.
Un esempio pratico
int n;
n=0;
do {
printf(" %d ", n );
n++;
}
while ( n<11 );
return 0;
Quando si interrompe l'iterazione?
L'iterazione si interrompe quando l'espressione di controllo diventa falsa.
4. Il ciclo FOR
L'istruzione FOR nel linguaggio C crea un ciclo iterativo predefinito compiendo N cicli.
FOR( inizio; controllo; incremento ) {
// blocco istruzioni
}
Nella componente inizio è indicato il valore iniziale della variabile mentre nella componente controllo è indicata la condizione di esecuzione del ciclo. Nell'elemento incremento, infine, si indica l'incremento o il decremento della variabile al termine di ogni ciclo.
Se l'espressione di controllo è vera, la funzione FOR esegue il blocco delle istruzioni. Al termine dell'iterazione la variabile di controllo viene incrementata ( o decrementata ) e comincia il ciclo successivo.
L'iterazione FOR si interrompe quando l'espressione di controllo è falsa.
Un esempio pratico
5. Cicli annidati
Nella programmazione strutturata del linguaggio C i cicli annidati sono iterazioni eseguite dentro un'altra iterazione.
Un esempio pratico di annidamento
Nel seguente esempio è presente un ciclo annidato scritto in linguaggio C. L'annidamento è realizzato utilizzando due istruzioni FOR.
Il ciclo più esterno esegue dieci cicli incrementando la variabile i da 0 a 8. Ogni ciclo scrive una riga. Il ciclo più interno, invece, esegue dieci cicli incrementando la variabile j da 1 a 10. Ogni ciclo più interno stampa il risultato dell'espressione matematica (i*10)+j.
Il risultato a video del programma è il seguente.
L'annidamento della FOR è la tabella della tombola con i numeri incolonnati da 1 a 90. Il flow chart dell'algoritmo del precedente esempio di ciclo annidato è il seguente:
6. Le interruzioni del ciclo
break;
Nel linguaggio C l'istruzione break interrompe le iterazioni di una struttura ciclica ( for, while ) prima del tempo.
E' utilizzata per forzare l'uscita dal ciclo. In genere è associata a una struttura condizionale IF per associarla al verificarsi di un evento.
Nel caso dei cicli annidati, l'istruzione break interrompe soltanto il ciclo più interno. I cicli più esterni continuano a essere eseguiti.
continue;
Nel linguaggio C l'istruzione Continue interrompe l'iterazione di un ciclo per saltare a quella successiva.
L'istruzione continue è usata nei cicli FOR, WHILE e DO WHILE. Quando il compilatore incontra l'istruzione Continue, interrompe l'iterazione corrente tornando all'espressione di controllo per iniziare l'interazione successiva, senza uscire dal ciclo.