Главная arrow С++ (часть 2) arrow Расчет суммы начального вложения, необходимой для получения заданной будущей величины

Расчет суммы начального вложения, необходимой для получения заданной будущей величины

В некоторых ситуациях требуется определить, какова должна быть первоначальная сумма вложения для достижения заданной будущей величины вклада. К примеру, вы откладываете деньги на оплату высшего образования вашего ребенка и знаете, что через 5 лет вам потребуется 75 ООО долларов. Сколько вам нужно вложить сейчас под 7% годовых? Программа, приведенная в листинге 6.3, может найти ответ на этот вопрос с помощью следующей формулы:
Initial Investment = = target Value / ((rateOfRet / compPerYear) + 1) compPerYear * numYears)^
где targetValue обозначает заданную будущую величину вложения, a rateOfRet-compPerYear и numYears — как обычно, процентную ставку, количество начислений процентов в течение года и продолжительность хранения вложейця в годах соответственно. Если переменная rateOfRet содержит годовую ставку, переменной compPepYear следует присвоить значение 1. функция initvaio (листинг 6.3) использует данную формулу для проведения расчета. В качестве параметров ей передаются будущая величина вложения, процентная ставка, продолжительность инвестиционного проекта И количество начислений процентов в течение года. Функция возвращает начальную величину инвестиции.
^^гинг 6.3. Расчет суммы начального вложения • j
f include <iostream> finclude *<cmath> finclude <iomanip> finclude <locale>
using namespace std;
// Вычисляет первоначальную величину инвестиции, необходимую // для получения заданной величины в будущем, double initval(double targetValue, double rateOfRet, int numYears, int compPerYear)  {
double b, e;
rateOfRet /= 100.0; // преобразует проценты в дробь
b = (l + rateOfRet/compPerYear); e = compPerYear * numYears;
return targetValue / pow(b, e) ;
}
int main() { double p, r; int y, cpy;
// Присваивает locale значение english. // Откорректируйте, если необходимо, язык/регион, cout. imbue(locale("english"));
cout « "Enter desired future value:  ";
cin » р;
cout « "Enter rate of return: "; cin » r;
cout « "Enter number years: "; cin » y;
cout « "Enter number of compoundings per year: "; cin » cpy;
cout « "\nlnitial investment required: " « fixed « setprecision(2) « initvaKp, r, y, cpy) « endl;
return 0;
}
Далее приведен пример вывода программы:
Enter desired future value: 75000
Enter the rate of return (as a percentage): 7
Enter number of years: 5
Enter number of compoundings per year: 4
Initial Investment required: 53,011.84