- •Кафедра «Информатика»
- •Введение
- •I. Цели и задачи выполнения контрольной работы
- •II. Указания по выполнению контрольной работы
- •2.1. Общие требования к содержанию и оформлению контрольной работы
- •2.2. Требования к теоретической части работы
- •2.3. Требования к практической части работы и рекомендации по ее выполнению
- •Постановка задачи
- •Формализация задачи
- •Алгоритмизация задачи
- •Программирование
- •III. Варианты третьего задания на контрольную работу
- •Потоки периодических платежей регулярных инвестиционных проектов
- •Литература
- •Оглавление
- •Информатика
- •192171, Г. Санкт-Петербург, ул. Седова, 55/1
Постановка задачи
В интересах реконструкции производства фирма предполагает взять в банке кредит. Для оценки своих возможностей выплаты по данному кредиту необходимо разработать машинную программу расчета ежемесячных платежей и общую сумму выплат при различных условиях кредитования, а именно: твердой, льготной (50%) или прогрессивной (с 2%-ой ежемесячной надбавкой) налоговой ставки.
Формализация задачи
Как следует из условия задачи, в качестве исходных данных для решения такой задачи выступают:
-
сумма кредита – Kredit;
-
ставка % (годовых) – Pr;
-
вид кредита - Vkr (обозначим для простоты выполнения операции сравнения данный признак целыми числами):
Vkr = 1-твердая ставка;
Vkr = 2-льготный;
Vkr = 3-прогрессивный;
-
и срок выплаты (число месяцев) – N.
Известно, что величина текущего (ежемесячного) платежа - Plat состоит из основного платежа по кредиту - OsnPlat и процентов от остатка на момент выплаты - ProcPlat,
Plat(I) = OsnPlat + ProcPlat(I),
которые определяются, в свою очередь, путем
OsnPlat = Kredit / N,
ProcPlat(I)= Ost(I)* Pr.
Остаток же средств на момент выплаты может быть найден следующим образом:
Ost(I) = Kredit - OsnPlat * (I - 1),
где I – номер очередного периода выплаты.
Сумма всех платежей представляется в этом случае традиционно:
.
Алгоритмизация задачи
Проведение подобных расчетов, как правило, связано с их многовариантностью. Следовательно, программное обеспечение данной задачи должно предусмотреть возможность реализации диалогового режима, позволяющего в случае необходимости, многократное изменение исходных данных и повторение расчетов. При этом из приведенных выше выражений следует, что все перечисленные исходные данные являются одиночными и вводятся для решения задачи только один раз. Данное обстоятельство и отражается в алгоритме в виде блока 1 (см. рис. 1).
Очевидно, что все предварительные операции по определению величин, которые не зависят от ежемесячных изменений, целесообразно выполнить в начале программы (блок 2). Здесь же следует, наверное, объявить и «обнулить» (т.е. присвоить ей начальное значение =0) ту переменную SummPlat, с помощью которой будет автоматически накапливаться сумма результирующего платежа.
Размеры ежемесячного платежа по процентам ProcPlat(I), а, следовательно, и все ежемесячные платежи - Plat(I), а также величина остатка Ost(I)в каждом месяце I, будут разными. Поэтому с точки зрения математики они должны быть представлены массивами размерностью N, а для своего определения потребует, очевидно, организации многократных повторения одних и тех же операций.
Однако прежде чем приступить к этой стадии вычислений, необходимо выяснить, с каким же значением процентной ставки предстоит делать соответствующие начисления.
1
2
4
3
6
5
7
8
9
10
11
12
Рис. 1. Алгоритм решения задачи по расчету платежей кредита (вариант).
Для реализации в машинной программе выбора того или иного варианта направлений решения задачи используется условный оператор IF … THEN, соответствующее изображение которого в алгоритме представлено в виде блоков 3 и 5. Организация же повторных операций (цикла вычислений) отображается обычно с помощью блока, обозначенного на рис. 1 номером 7.
Вывод результатов вычислений, интересующих пользователя программы, отображается в алгоритме блоками типа 10 и 11.
Таким образом, исходя из заданных требований к ПО алгоритм приложения, решающего поставленную задачу, целом может быть представлен, например, так как это показано на рис. 1.