Определение остатка непогашенной ссуды |
Часто возникает желание узнать остаток непогашенной ссуды (remaining balance on a loan). Его легко вычислить, если вам известны первоначальная величина ссуды, процентная ставка, время, на которое выдана ссуда, и количество уже сделанных платежей. Для того чтобы найти остаток непогашенной ссуды, нужно сложить все сделанные платежи, вычитая из каждого платежа сумму выплаты по процентам, и затем полученный результат вычесть из первоначального размера ссуды. Функция baianceo, приведенная в листинге 6.6, находит остаток непогашенной ссуды. Ей передаются первоначальный размер ссуды, процентная ставка, величина платежа, количество платежей в год и количество сделанных платежей. Функция возвращает остаток непогашенной ссуды. "^ГГ"------------------------------------—--------------------------------------------------------------------------------------------------- Листинг 6.6. Расчет остатка непогашенной ссуды finclude <ioscream> ¦include <cmath> finclude <iomanip> finclude <locale> Using namespace std; 4 Находит остаток непогашенной ссуды. double balance(double principal, double intRate, double payment, int payPerYear, int numPayments) { double bal = principal; double rate = intRate / payPerYear; rate /= 100.0; // преобразует проценты в дробь for(int i = 0; i < numPayments; i++) bal -= payment - (bal * rate); return bal; ) int mainO { double p. r, pmt; int ppy, npmt; // Присваивает locale значение english. // Откорректируйте, если необходимо, язык/регион. cout. imbue(locale("english")); cout « "Enter original principal: "; cin » p; cout « "Enter interest rate (as a percentage): "; cin » r; cout « "Enter payment: "; cin » pmt; cout « "Enter number of payments per year: "; cin » ppy; cout «. "Enter number of payments made: "; cin » npmt; cout « "Remaining balance: " « fixed « setprecision(2) « balance(p, r, pmt, ppy, npmt) « endl; return 0; } Далее приведен пример вывода программы из листинга 6.6. Enter original principal: 10000 Enter payment: 207.58 number of payments per year: 12 gtiter number of payments made: 30 R0naining balance: 5,558.19
|