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

2- Variabili in C++

3- Operatori di assegnazione in C++

4- Esempi in C++

5- Casting in C++

Successione di Fibonacci in C++