Evitare inutili ripetizioni con il ciclo FOR

Il Ciclo FOR è una delle istruzioni di comando più adoperate e semplici da utilizzare, grazie alla quale evitiamo di ripetere inutilmente righe di codice e ridurre al minimo il tempo di programmazione. Il ciclo FOR viene di norma adoperato per le istruzioni cicliche, che vengono ripetute un numero stabilito di volte prima di concludersi. Come visto nei precedenti articoli, lavoreremo su Dev-C++ [LINK], un software open source per ambiente Microsoft Windows.

IDE

Per poter scrivere il nostro codice, apriamo il programma Dev-C++ e andiamo sul menu File, poi su Nuovo->File sorgente.

Testo

Possiamo anche usare la combinazione di tasti Ctrl+N.

Testo

Codice

Adopereremo tre esempi, molto semplici ma utili per darti un’idea delle applicazioni del Ciclo FOR. Il primo esempio [LINK] prevede la scrittura di un messaggio di testo ripetuto per un certo numero di volte. Iniziamo come ogni volta ad includere la libreria iostream, per gestire l’input e l’output, poi adoperiamo il namespace.


#include <iostream>

using namespace std;

Precediamo creando la solita funzione main() e iniziamo a scrivere il ciclo FOR. Partiamo semplicemente con la scritta for, apriamo poi una parentesi e dichiariamo una variabile intera. Tale variabile andrà incrementata di una unità per volta, fino ad un massimo di 10 volte. In poche parole, ogni volta che la variabile aumenterà, il programma eseguirà una specifica istruzione per poi concludersi al raggiungimento del massimo numero di volte consentite.


for (int i = 0; i <= 9; i++){
cout << "Hello World" << endl;
}

Nel nostro caso, partiamo dal valore numerico 0 e stampiamo il messaggio “Hello World”, poi la variabile verrà incrementata di una unità (i++ significa proprio incrementa di 1) e stamperà di nuovo il messaggio. Questa operazione verrà ripetuta fino a 10 volte, poi si interromperà e passeremo alle istruzioni successive; nel nostro caso a return 0 per terminare il programma.


return 0;

Andiamo a compilare e lanciare il programma. Se tutto è andato bene e non ci sono errori, verrà mostrato questo risultato.

for

Nel secondo esempio [LINK] andiamo ad adoperare un po’ di matematica, sommando tutti i numeri interi compresi tra 0 e 9. Anche in questo caso adoperiamo la libreria iostream, per gestire l’input e l’output, ed il namespace.

#include <iostream>

using namespace std;

Creiamo la funzione main() e dichiariamo una variabile interna n che ci servirà per determinare il numero che si ottiene dalla somma dei numeri interi compresi tra 0 e 9. Apriamo il ciclo for dichiarando la variabile intera i che incrementeremo di una unità per volta per un massimo di 10 volte. All’interno del ciclo, ogni volta che i viene incrementata viene sommata ad n.


int n = 0;

for (int i = 0; i <= 9; i++){
n = n + i;
}

Prima di procedere, chiariamo il significato di n = n + i. In informatica non si usano sempre le stesse regole di scrittura presenti nella matematica scolastica. La ragione è una semplificazione nella programmazione. Il significato di tale operazione è da interpretare così: la prima n, quella posta prima dell’uguale, è come se fosse una n proveniente dal futuro, il cui valore è determinato da i che viene sommato alla n del passato. Sarebbe come dire che il valore futuro di n è 10, in quanto la n che c’era prima aveva valore 9 ed è stata sommata ad 1. Adesso siamo pronti a stampare il risultato finale. Al di fuori del ciclo FOR andiamo a stampare il valore n, corrispondente al valore ottenuto alla fine del ciclo stesso.


cout <<"La somma dei numeri tra 0 e 9 corrisponde a: " << n << endl;

Non dimentichiamoci di concludere con il solito return 0. Compiliamo e avviamo il programma. Il risultato della somma dei numeri compresi tra 0 e 9 sarà quindi 45.

FOR

Nel terzo ed ultimo esempio [LINK] effettueremo il prodotto dei numeri compresi tra 1 e 9. Non adoperiamo 0 perché qualsiasi numero moltiplicato per 0 darà sempre 0, pertanto la variabile n avrà valore 1. Diversamente dall’esempio di prima, andremo a utilizzare il prodotto invece della somma, ma il risultato è il medesimo.


#include <iostream>

using namespace std;

int main (){
int n = 1;

for (int i = 1; i <= 9; i++){
n = n * i;
}

cout <<"Il prodotto dei numeri tra 1 e 9 corrisponde a: " << n << endl;

return 0;
}

Effettuata la compilazione ed avviato il programma il risultato sarà il seguente.

FOR