// 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;}