Inserimento fino a zero e somma prodotto negativi positivi

Progettare un algoritmo che legga da terminale/input una sequenza di interi positivi e/o negativi, si arresti ad inserire quando viene  immesso lo zero, stampi il prodotto degli interi positivi e la somma dei negativi.

Esercizio classico per affrontare l’argomento dei cicli semplici e approfondire altro tipo di uscita dal ciclo, non con un valore prefissato di iterazioni, ma con una interazione con l’utente.

Una riflessione sul codice. Abbiamo scelto il ciclo while con condizione in testa. Ovviamente la lettura dell’input dell’utente deve essere dentro il ciclo per essere reiterata. Potevamo fare due scelte. Leggere l’input una tantum fuori dal ciclo e poi dentro/in fondo al ciclo stesso, usare un do while che obbliga però ad almeno una iterazione, oppure procedere con uno stratagemma che fa comunque entra nel ciclo iniziale. Qui abbiamo scelto quest’ultima inizializzando a dovere la variabile su cui è fatta la lettura. Ricordiamo sempre al lettore che le variabili vanno inizializzate, spesso basta la zero ma altre volte il valore giusto permette di migliorare i propri algoritmi.

#include <iostream>

using namespace std;

/* 
Progettare un algoritmo che legga da terminale/input una sequenza di interi positivi e negativi,
si arresti ad inserire quando viene immesso 0, stampi il prodotto degli interi positivi e la somma 
dei negativi
*/

int main(int argc, char** argv) 
{
	int numero = -1;
	int somma = 0;
	int prodotto = 1;
	while (numero != 0)
	{
		cout << "Inserisci un numero (zero per uscire) "; 
		cin >> numero;
		
		if (numero > 0)
		{
			prodotto = prodotto * numero;
		}
		else
		{
			somma = somma + numero;
		}
	}
	
	
	cout << "somma negativi " << somma <<endl;
	cout << "prodotto positivi " <<prodotto << endl;
	
	getchar();
	return 0;
}

Ultima modifica 20 Ottobre 2023