Файл: Рекурсивные и итерационные алгоритмы: особенности и примеры использования (ПОНЯТИЕ РЕКУРСИВНОГО АЛГОРИТМА).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 27.05.2023

Просмотров: 304

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

n — количество операций по капитализации начисленных процентов в течение общего срока привлечения денежных средств;

Sp – сумма процентов (доходов).

При начислении процентов необходимо учитывать и еще один маленький нюанс. При определении количества дней начисления процентов по вкладу (t) или количества календарных дней в периоде, по итогам которого банк производит капитализацию начисленных процентов (j), не учитывается день закрытия (снятия) вклада. Так, например, 02.11.17 банк принял депозит сроком на 7 дней. Полный срок депозита с 02.11.17 по 09.11.17, т.е. 8 календарных дней. А период начисления процентов по депозиту будет с 02.11.17 по 08.11.17, т.е. – 7 календарных дней. День 09.11.17 в расчет не принимается т.к. депозит возвращен клиенту.

Исходный кол:

  1. #include <iostream>
  2. #include <windows.h>
  3. using namespace std;
  4. double rec_fun(double sum, double per, int m, int i)
  5. {
  6. if(m==i)
  7. return sum;
  8. sum+=(sum/100.)*per;
  9. return rec_fun(sum, per, m, i+1);
  10. }
  11. int main ()
  12. {
  13. int m;
  14. double sum, per;
  15. SetConsoleCP(1251);
  16. SetConsoleOutputCP(1251);
  17. cout<<"Введите начальную сумму вклада (например: 124.34): "<< endl;
  18. cin>>sum;
  19. cout<<"Введите ежемесячный процент начисления по вкладу (например: 12.42): "<< endl;
  20. cin>>per;
  21. cout<<"Введите количество месяцев: "<< endl;
  22. cin>>m;
  23. cout<<"За "<<m<<" месяцев сумма вклада составит: "<<rec_fun(sum, per, m, 0)<<endl;
  24. return 0;

Результат работы программы представлен на рисунке 10.

Рисунок 10 – Результат работы программы.

ЗАКЛЮЧЕНИЕ

В результате работы над курсовой работой было исследовано понятие рекурсии и итерационных алгоритмов.

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

Во второй главе рассмотрены итерационные алгоритмы, как средство нахождения корней уравнения методом хорд.

В третей главе представлен практический результат использования итерационных алгоритмов, а в четвертой результат использования рекурсивных алгоритмов.

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


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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск : Изд-во Тихоокеан. гос.ун-та, 2011. – 56 с. Режим доступа:

http://pnu.edu.ru/media/filer_public/2013/02/25/book_basics.pdf.

2. Программирование и основы алгоритмизации: Для инженерных специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. Казань: Изд-во Казанского национального исследовательского технического ун-та - КАИ, 2013, 153 с. Режим доступа: http://au.kai.ru/documents/Auzyak_Progr_osn_alg_C_2013.pdf.

3. Основы алгоритмизации и программирования : учебное пособие / Г.Р. Кадырова. – Ульяновск : УлГТУ, 2014. – 95 с. . Режим доступа:

http://venec.ulstu.ru/lib/disk/2014/137.pdf

4. Основы алгоритмизации и программирования. Курс лекций. Режим доступа: http://lib.ssga.ru/fulltext/UMK/исходные%20для%20Кацко/заменить%20полностью/Информатика/лекции/13%20Основы%20алгоритмизации%20и%20программирования.pdf

5. Белов П.М. Основы алгоритмизации в информационных системах: Учебн. Пособие.- Спб.: СЗТУ, 2003. – 85с. Режим доступа:

http://www.ict.edu.ru/ft/005406/nwpi225.pdf

6. Основы алгоритмизации и программирования: Метод. указ. / Сост.: И.П. Рак, А.В. Терехов, А.В. Селезнев. Тамбов: Изд-во Тамб. гос. техн. ун-та. Режим доступа: http://www.ict.edu.ru/ft/004758/terehov.pdf.

7. Макаров В.Л. Программирование и основы алгоритмизации.: учебн. пособие.-Спб., СЗТУ, 2003, - 110с. Режим доступа: http://window.edu.ru/resource/126/25126/files/nwpi223.pdf

8. Сергиевский Г.М. Функциональное и логическое программирование : учеб. пособие для студентов высш. учеб. заведений / Г.М. Сергиевский, Н.Г. Волченков. — М.: Издательский центр «Академия», 2010.- 320с.

9. Миллер, Р. Последовательные и параллельные алгоритмы: Общий подход / Р. Миллер, Л. Боксер ; пер. с англ. — М. : БИНОМ. Лаборатория знаний, 2006. — 406 с.

10. Плис, А.И. Математический практикум для инженеров и программистов[Текст]: Учеб. пособие. – 2-е изд. перераб. и доп. / А.И. Плис, Н.А. Сливина. – М.: Финансы и Статистика, 2003. – 565 с.