Финансовые функции и рекурсия (183683)

Посмотреть архив целиком

Министерство образования РФ

Тульский государственный педагогический университет

имени Л.Н. Толстого

Кафедра информатики












Дипломная работа

"Финансовые функции" и рекурсия


Выполнил:

Научный руководитель:









Тула-2000


План


Введение 4

Динамика вклада 7

Задача о величине вклада 7

Задача о величине вклада после снятия денег в конце каждого периода 11

Задача о величине вклада после внесения (снятия) денег в конце или начале каждого периода 13

Задача о изменяющихся процентных ставках 15

Задача о изменяющихся процентных ставках и величинах снимаемых денег 16

Дисконтирование. Инвестиции. Консолидирование 19

Задача о дисконтировании 19

Задача о инвестировании проекта 21

Задача о консолидировании платежей 23

Платежи 25

Задача о равных платежах в конце каждого периода 25

Задача о платежах с одинаковой современной стоимостью 30

Задача о платежах на проценты 31

Разные задачи 34

Задача о величине процентной ставки 34

Задача о величине процентной ставки 2 36

Задача о количестве периодов для расчета заемщика с банком 38

Задача о суммарной способности к кредитованию 41

Задача о минимальном количестве банков 42

Задача о изменении величины суммарного кредитования 43

Заключение 50

Литература 51



Введение


В электронные таблицы Excel, систему управления базами данных Access, язык программирования Visual Basic и многие другие современные компьютерные технологии встроены так называемые “финансовые функции”: fv(), pv(), pmt(), ppmt(), ipmt(), rate(), nper() и т.д. В повседневной жизни с задачами, в которых они могут быть использованы, приходится сталкиваться достаточно часто. Это заставляет преподавателей информатики педагогических вузов не только знакомить студентов различных специальностей с синтаксисом и семантикой этих функций, но и уделять особое внимание поиску новых методик и технологий обучения, ориентированных на прочное усвоение соответствующих знаний. И здесь на помощь может прийти рекурсия, с помощью которой строятся лаконичные и легко понимаемые алгоритмы, а затем и соответствующие информационные модели в виде рекурсивных программ на том или ином языке программирования [9, 10]. И что особенно важно, набор упомянутых финансовых функций и рекурсивные алгоритмы их вычисления могут служить весьма подходящим фоновым материалом для начального освоения студентами рекурсии как достаточно общего и эффективного метода решения практических задач.

Заметим, что вычисление значений финансовых функций с помощью электронных таблиц Excel или других пакетов прикладных программ можно признать целесообразным лишь при уже полностью сформированном понимании их синтаксиса и семантики. Но при первом знакомстве с этими и другими функциями рекурсивный подход в полной мере демонстрирует все свои дидактические преимущества по сравнению с простым описанием функций и решением по ним соответствующих прикладных задач. Он дает возможность не только всесторонне понять содержание излагаемого материала, но сделать это быстро и эффективно. И что особенно важно, полученные знания становятся достоянием долговременной памяти. Последний вывод убедительно подтверждается результатами проверочной работы, проведенной в двух группах студентов через год после ознакомления их с финансовыми функциями. Результаты эти оказались и удивительными, и убедительными. Более 36 процентов студентов, которым материал преподносился традиционно, с предъявленным заданием не справились. В то же самое время в группе, осваивавшей этот же материал с использованием рекурсии, с заданием не справились лишь 12 процентов студентов (3 человека). Столь разительное различие в уровне усвоения знаний в экспериментальной и контрольной группах заставляет нас по-новому оценить дидактические возможности рекурсии и осознать её роль и место в построении современного курса информатики в педагогических вузах. И эта роль, по-видимому, будет возрастать вместе с дальнейшим развитием компьютерной техники и программного обеспечения. В связи с этим главной задачей данной дипломной работы является разработка методик решения финансовых задач рекурсивными методами и их практическая реализация в виде обучающей программы (Web-узла) по данной теме.

При отборе материала для первоначального знакомства студентов и учащихся с рекурсивными методами решения прикладных задач, ориентированных на экономические специальности, существенную роль играют два фактора: наличие экономического содержания в этих задачах и прозрачность свойств рекурсивности рассматриваемых в них объектов. И то, и другое в полной мере может быть обеспечено рекурсивной реализацией финансовых функций.

Большой выбор содержательных задач, решаемых финансовыми функциями, можно встретить в сфере банковской деятельности [1,3-6]. Причем возникают они здесь на обслуживании всего лишь двух операций. Банк, являясь финансовым посредником между вкладчиками и заемщиками (рис.1), с одной стороны, принимает деньги и платит по ним проценты, а с другой стороны, дает кредиты и получает за них проценты. Разность между той суммой, которую получает банк от заемщиков по процентам за конкретный период, и той, которую он платит вкладчикам по процентам за этот же период, и составляет прибыль банка. Как говорил американский писатель-сатирик Генри Уилер Шоу [2, с.30] “Банковский процент не знает ни отдыха, ни богослужений, он работает и по ночам, и в воскресенье, и даже в дождливые дни”.


Рис.1. Банк как финансовый посредник между вкладчиками и заемщиками


В рассматриваемой ниже серии задач везде речь идет об обычных вкладах и сложных процентах, а решения оформлены в виде рекурсивных программ-функций на языке программирования вычислительной среды Mathcad. Все они делятся на три категории: прямые рекурсивные аналоги, частные случаи и обобщения встроенных в Excel финансовых функций. Для первой категории функций и их аргументов используются стандартные обозначения. В иных ситуациях обозначения произвольны. Наличие почти во всех задачах несложно выводимой при определенных навыках, но обычно громоздкой, конечной формулы-решения позволяет на контрольных примерах легко проверить правильность составленных для них рекурсивных программ. Отметим, что все приведенные программы, благодаря рекурсивности, весьма просты и для их написания не требуется знания соответствующих конечных формул. В дополнении к данной работе дается краткое описание Mathcad и программы Microsoft FrontPage 2000, с помощью которой был создан Web-узел.


Динамика вклада


Начнем упомянутую серию задач с рассмотрения простой и многим знакомой житейской проблемы хранения денег в банке.


Задача о величине вклада


Вкладчик положил в банк сумму в sum денежных единиц под p процентов за один период времени (год, месяц, неделя и т.д.). Составить программу-функцию, возвращающую величину вклада по истечении n периодов времени (n = 1, 2, …).

Решение. Пусть invest(sum,p,n)  искомая функция. Вычисления значений invest() можно проводить по известной формуле:

invest(sum,p,n) = sum(1+p/100) n.

Однако в учебных целях нас будет интересовать рекурсивный вариант алгоритма решения задачи. Её параметризация реализована в постановке. Рекурсию будем осуществлять по параметру n. База рекурсии очевидна. В самом деле, если вклад положен на хранение и взят сразу, то есть до истечения первого периода времени начисления процентов, то возврату подлежит начальная сумма вклада  sum. Далее, декомпозиция может быть реализована исходя из следующего факта. Положить некоторую сумму в банк на n периодов – это то же самое, что положить эту сумму на n – 1 период, взять и снова положить на 1 период. Соответствующий вариант программы-функции решения задачи выглядит так:

(1)

Реализуя декомпозицию иным способом, получим другой вариант рекурсивной программы (1). Например, сделаем это исходя из такого факта. Положить некоторую сумму в банк на n периодов – это то же самое, что положить эту сумму на 1 период, взять и снова положить на n1 период. Соответствующая программа-функция выглядит так:

(2)

В данной и подобной ей задачах указанные декомпозиционные посылки программно реализуются приблизительно с равной степенью сложности и, тем самым, обе имеют право на существование. Однако может возникнуть ситуация, когда предпочтение должно быть отдано той или иной конкретной посылке. Например, если в последующем имеется необходимость перейти к нерекурсивному варианту программы, то лучше пользоваться посылкой первого типа, а если есть проблемы с доказательством правильности реализуемого алгоритма, то целесообразно работать с посылкой второго типа.

Нетрудно видеть, что общее количество рекурсивных вызовов при вычислении invest(sum,p,n) и invest1(sum,p,n) равно n. Можно было бы уменьшить это значение до величины floor(log2(n)) +1, где floor()  целая часть натурального числа , исходя из следующих двух декомпозиционных посылок.

Пусть сумма sum=m g денежных единиц помещена на вклад при ставке в p процентов за период. Тогда через n периодов sum возрастет до той же самой величины, что и совокупная сумма m отдельных вкладов по g денежных единиц каждый, также помещенных под р процентов за период. Не ограничивая общности, величину sum можно считать целым неотрицательным числом. В противном случае можно было бы перейти к иному номиналу денежных единиц. Значения m и g также будем считать целыми числами.


Случайные файлы

Файл
1106-1.rtf
12236-1.rtf
71257.rtf
ГОСТ 23253-78.doc
32252.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.