In questa lezione risolveremo alcuni esercizi sul ciclo do-while in C++, al fine di comprendere meglio come poterlo utilizzare nei nostri algoritmi.
Primo esercizio sul ciclo do-while in C++
Scrivere un programma che mostra a video i numeri pari compresi tra 0 e 100 in ordine decrescente, cioè da 100 a 0.
Per la realizzazione del seguente algoritmo inizializziamo una variabile n a 100. Dopo, con un ciclo do-while che itera finché n è maggiore o uguale a zero, stampiamo n e dopo lo decrementiamo di 2.
Ecco dunque il codice completo:
#include <iostream>
using namespace std;
main() {
int n=100;
do {
cout<<n<<"\t";
n-=2;
} while (n>=0);
return 0;
}
Lo stesso esercizio sviluppato con il ciclo while:
#include <iostream>
using namespace std;
main() {
int n=100;
while (n>=0){
cout<<n<<"\t";
n-=2;
}
return 0;
}
Secondo esercizio
Leggere e sommare una quantità indefinita di numeri reali finché‚ la loro somma diventa uguale a zero.
Innanzitutto dichiariamo una variabile float per i numeri reali e inizializziamo la somma a zero. Dopo, con un ciclo do-while, inseriamo i numeri e li sommiamo. Appena la somma diventa zero usciamo fuori dal ciclo.
#include <iostream>
using namespace std;
main() {
float n;
int s=0;
do {
cout<<"Inserisci un numero: ";
cin>>n;
s+=n;
} while(s!=0);
cout<<"La somma e': "<<s;
return 0;
}
Provate adesso a sviluppare lo stesso esercizio con il ciclo while, state attenti ad impostare bene l’algoritmo.
Terzo esercizio sul ciclo do-while in C++
Realizzare un algoritmo che accetta in input solo un numero il cui valore assoluto sia compreso tra 5 e 10. Al termine stampare il numero inserito.
Il programma richiede di impostare bene la condizione che richiede il numero, nel caso in cui non sia compreso nell’intervallo specificato.
Quindi utilizzo ad esempio il not: while(!(abs(n)>=5 && abs(n)<=10)), ma questo, come vedremo in seguito, non è l’unico modo.
Ecco dunque l’esempio completo:
#include <iostream>
#include <cmath>
using namespace std;
main() {
float n;
do {
cout<<"Inserisci un numero: ";
cin>>n;
} while(!(abs(n)>=5 && abs(n)<=10));
cout<<n;
return 0;
}
Quindi la condizione poteva anche essere impostata in questo modo:
while(abs(n)<5 || abs(n)>10);
Quarto esercizio sul ciclo do-while in C++
Inserire una serie di numeri interi e sommarli. Interrompere l’immissione al sesto valore pari e visualizzare quindi in output la somma ottenuta.
Per realizzare questo algoritmo innanzitutto utilizziamo una variabile intera n, che rappresenta i numeri in input, una variabile p che serve a contare i numeri pari inseriti e una variabile s per sommare tutti i valori inseriti.
Quindi impostiamo la condizione, finché n è diverso da 6, e all’interno del ciclo do-while chiediamo di inserire un numero in input e se pari incrementiamo il contatore dei pari.
#include <iostream>
using namespace std;
main() {
int n, p=0, s=0;
do {
cout<<"Inserisci un numero: ";
cin>>n;
s+=n;
if(n%2==0)
p++;
} while(p!=6);
cout<<"Somma: "<<s;
return 0;
}
Lo stesso algoritmo si poteva risolvere con un ciclo while.
Ecco quindi, di seguito, una possibile soluzione con il while:
#include <iostream>
using namespace std;
main() {
int n, p=0, s=0;
while(p!=6){
cout<<"Inserisci un numero: ";
cin>>n;
s+=n;
if(n%2==0)
p++;
}
cout<<"Somma: "<<s;
return 0;
}
Questi sono solo alcuni semplici esercizi sul ciclo do-while in C++, nelle prossime lezioni, approfondiremo ancora l’argomento.
Alcuni link utili
Indice argomenti linguaggio C++
1- Introduzione al linguaggio C++
3- Operatori di assegnazione in C++
Successione di Fibonacci in C++