In questa lezione proponiamo altri esempi con il while in C++, prima di passare al ciclo for.
Esempi con while in C++
Scrivere un programma che, leggendo due numeri interi, sottrae il minore dal maggiore finché la loro differenza diventa inferiore a 3 unità, visualizzando sullo schermo il risultato di ogni iterazione.
Per la realizzazione del seguente algoritmo in C++, ci serviranno le seguenti variabili:
int a, b – Le variabili che contengono i due valori che dobbiamo inserire in input.
int d – La variabile che contiene la differenza tra le due variabili.
int temp – La variabile che serve per lo scambio dei valori, qualora a fosse minore di b.
Innanzitutto inseriamo i valori interi a e b e dopo controlliamo se a è maggiore di b. Se ciò è vero effettuiamo uno scambio di variabili ponendo in a il valore di b e in b il valore di a. Così posso effettuare la sottrazione: d=a-b.
Poi impostiamo la condizione del while. Finchè d è maggiore o uguale a 3 continuiamo a sottrarre il numero b a d. Ad ogni iterazione stampiamo il risultato ottenuto.
Ecco dunque una possibile risoluzione dell’algoritmo proposto in C++:
#include <iostream>
using namespace std;
int main() {
int a, b, d, temp;
cout << "Inserisci a: ";
cin >> a;
cout << "Inserisci b: ";
cin >> b;
if (a < b) {
temp = a;
a = b;
b = temp;
}
d = a - b;
while (d >= 3) {
d = d - b;
cout << d << endl;
}
return 0;
}
Secondo esempio
Leggere da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi, il programma termina quando si inserisce un numero negativo. Per ogni numero introdotto stampare la media progressiva.
Innanzitutto dichiariamo le varibili necessarie:
int n – Rappresenta il numero inserito di volta in volta
int s – Rappresenta la variabile per la somma dei numeri
int i – Rappresenta il contatore dei numeri inseriti. Necessario per il calcolo della media.
float m – Rappresenta la media dei numeri inseriti.
Dopo aver dichiarato le variabili, inseriamo un numero e assegniamo alla somma il valore di questo numero.
Poi creiamo il ciclo while dove impostiamo la condizione n>0. All’interno del ciclo sommiamo i numeri e calcoliamo la media stampandola di volta in volta. Per stampare il valore decimale della media, facciamo un’operazione di casting, come spiegato nella lezione: casting in c++.
Ecco dunque una possibile risoluzione:
#include <iostream>
using namespace std;
int main() {
int n, s, i = 1;
float m;
cout << "Inserisci n: ";
cin >> n;
s = n;
while (n > 0) {
cout << "Inserisci n: ";
cin >> n;
i++;
s += n;
m = float(s) / i;
cout << "Media: " << m << endl;
}
return 0;
}
Questi sono solo alcuni esempi con il while in C++, nella prossima lezione affronteremo il ciclo for e compareremo i due costrutti, al fine di capire quando preferire l’uno all’altro.
Alcuni link utili
Indice argomenti linguaggio C++
1- Introduzione al linguaggio C++
3- Operatori di assegnazione in C++
Successione di Fibonacci in C++