Блок задач

3. Структуры данных

Темы
Сложность 2

Задача «Кредитный калькулятор»

Написать программу, рассчитывающую график платежей по кредиту.

Входные данные

Текстовый файл:

<процентная ставка> <сумма кредита> <срок кредита_в_месяцах> <дата выдачи кредита> 

Постановка задачи

При заданной годовой процентной ставке P, сумме кредита S, сроке кредита в N месяцев и дате выдачи кредита D программа должна вывести таблицу рассчета погашения кредита:

Предполагается, что выплаты производятся аннуитетными платежами (ежемесячная сумма выплаты не меняется, но с каждым месяцем в этой сумме содержится больше выплат основного долга по кредиту и меньше процентных выплат).

Вычисление суммы аннуитетного платежа производится по формуле:

, где p – это нормализованная месячная процентная ставка (p = P / 100 / 12).

Для S = 1200000, P = 17 и N = 36 сумма аннуитетного платежа равна 42783.27.

Для вычисления процентной составляющей в платеже можно воспользоваться следующей формулой: Percent = p * Rem, где Rem – остаток задолженности по кредиту. Тогда сумма, идущая в погашение основного долга, равна Principal = Payment - Percent.

Кроме показа таблицы программа должна вычислить и отобразить общую сумму переплаты (суммарное количество выплаченных процентов).

Выходные данные

Текстовый файл

Дата         Сумма к оплате       Проценты       Основной долг
...
15.09.2014       42783.27         2340.90        40442.37
15.10.2014       42783.27         1767.96        41015.31
...

Примечания

  1. Все расчёты должны вестись в рублях и копейках. Это будет приводить к округлению суммы аннуитетного платежа. Остатки по округлению нужно добавить к сумме последнего платежа (его размер может отличаться). Проверьте, что сумма всех погашений основного долга равна сумме займа!
  2. Платежи происходят ежемесячно в одно и то же число. Если этого числа не существует (30 февраля), то дата переходит на 1-е число следующего месяца. Если день выпадает на субботу или воскресенье, то дата платежа переходит на следующий понедельник.