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.