Файл: Рекурсивные и итерационные алгоритмы: особенности и примеры использования (ПОНЯТИЕ РЕКУРСИВНОГО АЛГОРИТМА).pdf
Добавлен: 27.05.2023
Просмотров: 303
Скачиваний: 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 в расчет не принимается т.к. депозит возвращен клиенту.
Исходный кол:
- #include <iostream>
- #include <windows.h>
- using namespace std;
- double rec_fun(double sum, double per, int m, int i)
- {
- if(m==i)
- return sum;
- sum+=(sum/100.)*per;
- return rec_fun(sum, per, m, i+1);
- }
- int main ()
- {
- int m;
- double sum, per;
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- cout<<"Введите начальную сумму вклада (например: 124.34): "<< endl;
- cin>>sum;
- cout<<"Введите ежемесячный процент начисления по вкладу (например: 12.42): "<< endl;
- cin>>per;
- cout<<"Введите количество месяцев: "<< endl;
- cin>>m;
- cout<<"За "<<m<<" месяцев сумма вклада составит: "<<rec_fun(sum, per, m, 0)<<endl;
- 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 с.