
for annidati
Esercitiamoci con i for annidati, al fine di approfondire l’argomento.
Primo esercizio sui for annidati
Realizzare un programma in C++, che visualizzi 6 righe dove ciascuna riga contiene i numeri da 1 a 6, come da esempio sotto:
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Realizzare questo algoritmo è piuttosto semplice.
Innanzitutto inizializziamo le due variabili contatore i e j e la costante n.
Poi realizziamo i due cicli for annidati e per ogni iterazione del ciclo esterno eseguiamo un ciclo interno da 1 a 6, che di volta in volta stampa il valore di j.
#include <iostream>
using namespace std;
main(){
int i,j,n;
n=6;
for(i=1;i<=n;i++) {
for(j=1;j<=n;j++)
cout<<"\t"<<j;
cout<<endl;
}
return 0;
}
Modifichiamo adesso il programma proponendo un secondo esempio.
Secondo esempio
Realizziamo un programma in C++, che visualizzi 6 righe così come da esempio:
1 2 3 4 5 6
2 3 4 5 6
3 4 5 6
4 5 6
5 6
6
Innanzitutto dichiariamo le variabili i, j ed n. Dopo utilizziamo i due cicli for annidati. Il primo lo facciamo partire da 0 fino ad n-1, mentre il secondo da j ad n-i, così ogni volta sommiamo i + j.
Stampiamo così il risultato ad ogni iterazione del ciclo interno.
Ecco di seguito la possibile soluzione:
#include <iostream>
using namespace std;
main(){
int i,j,n;
n=6;
for(i=0;i<n;i++) {
for(j=1;j<=n-i;j++){
cout<<"\t"<<j+i;
}
cout<<endl;
}
return 0;
}
Terzo esempio
Variamo l’esercizio precedente, producendo l’output come da esempio:
1 2 3 4 5 6
2 3 4 5 6 +
3 4 5 6 + +
4 5 6 + + +
5 6 + + + +
6 + + + + +
Cioè facciamo in modo da far apparire un simbolo al posto dei caratteri mancanti. Basta modificare il ciclo interno impostando j<=n e all’interno del ciclo controllare se j<=n-i allora stampare j+i, altrimenti stampare il carattere +.
Ecco dunque il codice di esempio:
#include <iostream>
using namespace std;
main(){
int i,j,n,c;
n=6;
for(i=0;i<n;i++) {
for(j=1;j<=n;j++){
if(j<=n-i)
cout<<"\t"<<j+i;
else
cout<<"\t"<<"+";
}
cout<<endl;
}
return 0;
}
Questi sono alcuni esempi sui cicli for annidati, nelle prossime lezioni proporrò tanti altri esempi.
Alcuni link utili
Indice argomenti linguaggio C++
1- Introduzione al linguaggio C++