vuoi
o PayPal
tutte le volte che vuoi
Questo programma implementa una funzione RICORSIVA.
#include <cstdlib>
#include <iostream>
using namespace std;
double AcquisisciImporto();
double AcquisisciSommaPagata();
void ComunicaResto(double);
int main()
{ double importo, // prezzo della merce
somma; // somma pagata
/* Ripete finche' la somma pagata e` inferiore all'importo dovuto */
do { importo = AcquisisciImporto();
somma = AcquisisciSommaPagata();
if(somma < importo)
cout << "somma insufficiente!" << endl;
} while (somma < importo);
/* Calcolo e visualizzazione del resto */
cout.flags(ios::fixed); cout.precision(2);
cout << "\nResto: " << somma - importo << endl;
ComunicaResto(somma - importo);
cout << endl;
system("pause");
}
double AcquisisciImporto()
{ double valore;
cout << "\nTotale della merce (Euro): ";
cin >> valore;
return valore;
}
double AcquisisciSommaPagata()
{ double valore;
cout << "Somma pagata.......(Euro): ";
cin >> valore;
return valore;
}
/* Calcolo del resto con metodo ricorsivo */
void ComunicaResto(double resto)
{ const unsigned maxtagli = 15;
static unsigned i = 0; // variabile contatore
unsigned pezzi; // numero pezzi di un certo taglio
// Array contenente i tagli disponibili moltiplicati per 100
unsigned taglio[maxtagli] = {
50000, // 500.00 Euro