All pastes #1006187 Raw Edit

clueless

public cpp v1 · immutable
#1006187 ·published 2008-05-03 18:07 UTC
rendered paste body
// Zamierzasz złożyć w banku pewną sumę pieniędzy, np. 10000zł,// ale chcesz wybrać najkorzystniejszą formę oszczędzania.// Bank oferuje ci cztery warianty lokaty terminowej.// Każda z lokat trwa tyle samo - 1 rok - natomiast poszczególne warianty// różnią się między sobą oprocentowaniem w skali roku i sposobem kapitalizacji// odstek. Wariant I polega na tym, że stopa odsetek w skali rocznej wynosi a%// i są one dopisywane na zakończenie trwania lokaty(po 1 roku). Wariant II// opiera się na kapitalizacji pół rocznej, a stopa odsetek wynosi b%.// Wariant III - co kwartał odsetki są dopisywane i wynoszą c%.// Ostatni wariant to kapitalizacja miesięczna z rocznym oprocentowaniem d%.// Napisz program który pobierze od użytkownika dane ( kwota i poszczególne// oprocentowanie w skali roku) oraz wskarze który wariant jest// najkorzystniejszy i dlaczego.#include <iostream>#define YEAR 12// FIXME: Jaki jest sens pisać w C++ jeśli się nie używa obiektowości?class Account {	private:		int period;		// compounding period in full months		double interest;	// interest rate as a percent per year 		double state;		// state of and account in PLN		int time;		// time passed	public:		Account(int p, double i, double s) {			period = p;			interest = i;			state = s;		}		void setState(double s) { state = s; }		double getState() { return state; }		void compound(int t) {			time += t;			while ( time-period >= 0 ) {				time -= period;				state *= 1 + interest*period/YEAR;			}		}};using namespace std;int main() {	double sum = 10000.;	// initial amount	double a, b, c, d;	// percentage	// FIXME: to jest bardzo brzydki sposób na realizację	//	"pobierze od użytkownika dane"	cout << "Initial amount [PLN]? ";	cin  >> sum;	cout << "Variant 1, compounded annualy,     percentage = ";	cin >> a;	cout << "Variant 2, compounded half a year, percentage = ";	cin >> b;	cout << "Variant 3, compounded quarterly,   percentage = ";	cin >> c;	cout << "Variant 4, compounded monthly,     percentage = ";	cin >> d;	// create accounts	Account *x[4] = {		new Account( 12, a, sum ),		new Account(  6, b, sum ),		new Account(  3, c, sum ),		new Account(  1, d, sum )	};	// calculate	double max = 0; int j = 0;	for (int i=0; i<4; i++) {		x[i]->compound( YEAR );		if (x[i]->getState() > max)			max = x[j=i]->getState();	}	// output	cout << "Best results using Variant " << j+1 << endl;	cout.precision(2);	cout << fixed << max << "PLN after a year" << endl;	return 0;}