|
Программирование >> Формирование пользовательского контейнера
6.5. Расчет максимально возможного аннуитета #include <iostreain> iinclude <cmath> - iinclude <iomanip> ♦include <locale> ing namespace std; Вычисляет максимальный аннуитет, который / может быть получен от вложения в течение определенного периода времени. ° Ь1е maxwd(double principal, double rateOfRet. int numYears, int nianPerYear) { double b. e; <3ouble tl. t2; расчет максимального размера аннуитета для заданной суммы вложения £ше один расчет аннуитета позволяет найти максимально возможный раз-jiep выплат (на покрытие регулярных расходов) в течение определенного периода при заданном размере вложения. Например, если у вас есть 5(Ю ООО долларов на пенсионном счете, сколько вы можете брать ежемесячно в течение 20 лет с учетом процентной ставки 6%? Приведенная далее формула вычисляет максимально допустимую величину регулярных расходов. Maximum Withdrawal = principal * (((rateOfRet / wdPerYear)/ /(-1 + ((rateOfRet / WdPerYear) + l)wdPerYearni.mYcar.))+ +(rateOfRet * wdPerYear)), 1де rateOfRet задает процентную ставку, principal содержит величину начального вложения, wdPerYear определяет число выплат в год, nuniYeai-s - продолжительность получения аннуитета в годах. функция maxwdo, приведенная в листинге 6.5, вычисляет максимальный размер регулярных расходов в течение указанного периода времени при заданной процентной ставке. Ей передаются величина инвестиции, процентная ставка, продолжительность получения аннуитета в годах и количество начислений процентов в год. Функция возвращает величину максимально возможного аннуитета. if2 rateOfRet /= 100.0; преобразует проценты в дробь tl = rateOfRet / numPerYear; b = (1 + tl); e = numPerYear * numYears; t2 = pow(b. e) - 1; return principal * (tl/t2 + tl); int mainO { double p, r; int y, wpy; Присваивает locale значение engiish. Откорректируйте, если необходимо, язык/регион. cout. imbue(locale( engiish )); cout Enter principal: ; cin p; cout Enter rate of return (as a percentage): ; cin r; cout Enter number years: ; cin y; cout Enter number of withdrawals per year: ; cin wpy; cout \nMaximum withdrawal: fixed setprecis,ion(2) maxwd(p, r, y, wpy) endl; return 0; дддее приведен пример вывода профаммы из листинга 6.5. goter principal: 500000 goter rate of return (as a percentage): 6 gjjter nuiriber of years: 20 gter nuinber of withdrawals per year: 12 jiaximum withdrawal: 3,582.16 Определение остатка непогашенной ссуды Часто возникает желание узнать остаток непогашенной ссуды (remaining balance on а loan). Его легко вычислить, если вам известны первоначальная величина ссуды, процентная ставка, время, на которое выдана ссуда, и количество уже сделанных платежей. Для того чтобы найти остаток непогашенной ссуды, нужно сложить все сделанные платежи, вычитая из каждого платежа сумму выплаты по процентам, и затем полученный результат вычесть из первоначального размера ссуды. Функция balanced. Приведенная в листинге 6.6, находит остаток непогашенной ссуды. Ей передаются первоначальный размер ссуды, процентная ставка, величина платежа, количество платежей в год и количество сделанных платежей- Функция возвращает остаток непогашенной ссуды. 1нг 6.6. Расчет остатка непогашенной ссуды linclude <ioscreain> ♦include <cmath> iinclude <iomanip> iinclude <locale> ing namespace std; Находит остаток непогашенной ссуды, uble balance(double principal, double intRate, double payment, int payPerYear, int numPayments) { double bal = principal; double rate = intRate / payPerYear; rate /= 100.0; преобразует проценты в дробь
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |