|
Программирование >> Формирование пользовательского контейнера
Листинг 6.1. Расчет регулярных платежей по ссуде #include <iostream> # include <cinath> #include <ioinanip> #include <locale> using namespace std; Вычисляет регулярные платежи по ссуде, double regpay(double principal, double intRate, int numYears, int payPerYear) { double numer; double denom; double b, e; intRate /= 100.0; преобразует проценты в дробь □ максимальный аннуитет от инвестиции; □ оставшаяся величина долга по ссуде. Эти программы можно использовать в том виде, в котором они приведены или модифицировать в соответствии с вашими потребностями. Честно говоря, эти программы могут оказаться самыми полезными, несмотря на то, что они наиболее простые в этой книге. Вычисление платежей по ссуде Вычисление регулярных платежей по ссуде (например, при покупке в рассрочку машины или дома) - возможно, самый популярный вид финансовых расчетов. Платежи вычисляют с помощью следующей формулы: Payment = (intRate * (principal / payPerYear))/ /(1 - ((intRate / payPerYear) + l)-payPerYear numVears ) где intRate обозначает процентную ставку, principal - ссуду, payPerYear ~ число платежей в течение года, а numYears - количество лет, отпущенных на погашение ссуды. В профамме, приведенной в листинге 6.1, функция regpayo использует эту формулу для вычисления регулярных платежей. В качестве парамефов она принимает величину ссуды, процентную ставку, продолжительность ссуды в годах и количество платежей в течение года, а возвращает - сумму платежа. int main () { double p, r; int y, ppy; Устанавливает locale равным english. Задайте нужный вам язык и/или регион. cout.imbuedocaleCenglish )); cout Enter principal: ; cin p; cout Enter interest rate (as a percentage): ; cin r; cout Enter number years: ; cin y; cout Enter number of payments per year: ; cin ppy; cout \nPayment: fixed setprecision(2) regpay(p, r, y, ppy) endl; return 0; numer = intRate * principal / payPerYear; e = -(payPerYear * numYears); b = (intRate / payPerYear) + 1.0; denom = 1.0 - pow(b, e); retxim numer / denom; 232 Алавае Для того чтобы рассчитать регулярные платежи по ссуде, просто введите необходимую информацию в ответ на запросы программы. Далее приведен вывод программы. Enter principal: 1000 Enter interest rate (as a percentage): 9 Enter nuinber years: 5 Enter nuinber of payments per year:. 12 Payment: 20.76 Функция main () содержит несколько элементов, заслуживающих внимания. Во-первых, в региональной настройке (locale) потока вывода cout выбран английский язык. Это сделано с помощью вызова функции-члена imbue о, которая передает как параметр объект locale со значением engiish. В результате денежные суммы выводятся в формате, принятом в англоязычных странах: запятая отделяет тысячи, а точка - дробную часть. Во-вторых, перед выводом на экран числовой формат рассчитанного платежа изменяется на формат с фиксированной точкой (fixed) и точностью представления (precision), равной двум. В результате на экран выводятся два знака в дробной части (после точки) с соответствующим округлением. При необходимости дробная часть заполняется нулями. Подобный подход применяется во всех финансовых программах. При использовании других региональных установок или языка просто измените язык/регион объекта locale, передаваемого функции imbue (). Расчет будущей величины инвестиции Другое часто встречающееся вычисление - расчет будущей величины вложения по величине первоначальной инвестиции, процентной ставке, количеству начислений процентов в течение- года и длительности инвестиционного проекта в годах. Например, вы хотите знать, сколько денег будет на вашем пенсионном счету через 12 лет, если в данный момент он содержит 98 ООО долларов и средняя годовая ставка составляет 6%. Приведенная в листинге 6.2 профамма позволяет решить эту задачу. Для расчета будущей величины вклада воспользуемся следующей формулой: Future Value = = principal * ((rateOfRet / COmpPerYear) + 1) compPerYea.< numVeais где rateOfRet - процентная ставка (rate of return), principal содержит начальную величину вклада, compPerYear определяет количество начислений процентов в течение года, а numYears - продолжительность хранения вклада в годах. Если в качестве значения переменной rateOfRet используется
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |