libri-javascript-python

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++

2- Variabili in C++

3- Operatori di assegnazione in C++

4- Esempi in C++

5- Casting in C++

Successione di Fibonacci in C++