ЯП3 / ЯП3
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) Кафедра безопасности информационных систем (БИС)
Отчет по лабораторной работе №3
по дисциплине «Языки программирования» По теме «Рекурсии»
Студент гр. 731-2
_____________ А.Д. Коноваленко
_____________
Принял Старший научный сотрудник
_________ _____________ А.С. Романов
_____________
Томск 2023
|
СОДЕРЖАНИЕ |
|
Введение................................................................................................................... |
3 |
|
1 ХОД РАБОТЫ ...................................................................................................... |
4 |
|
1.1 |
Реализация типов рекурсий........................................................................... |
4 |
1.2 |
Индивидуальное задание............................................................................... |
7 |
Заключение ......................................................................................................... |
10 |
|
Приложение А .................................................................................................... |
11 |
2
Введение
Цель работы: изучение различных типов рекурсий и способов их применения для решения практических задач.
3
1 ХОД РАБОТЫ
1.1 Реализация типов рекурсий
Линейная рекурсия:
На рисунках 1.1 и 1.2 представлены код линейной рекурсии поиска факториала числа и результат работы программного кода соответственно.
Рисунок 1.1 – Код линейной рекурсии
Рисунок 1.2 – Результат работы кода ошибки линейной рекурсии
Повторная рекурсия:
На рисунках 1.3 и 1.4 представлены код повторной рекурсии целочисленного деления числа с помощью повторного вычитания и результат работы программного кода соответственно.
4
Рисунок 1.3 – Код повторной рекурсии
Рисунок 1.4 – Результат работы кода повторной рекурсии
Взаимная рекурсия:
На рисунках 1.5 и 1.6 представлены код взаимной рекурсии определения четности или нечетности числа и результат работы программного кода соответственно.
Рисунок 1.5 – Код взаимной рекурсии
Рисунок 1.6 – Результат работы кода взаимной рекурсии
Каскадная рекурсия:
На рисунках 1.7 и 1.8 представлены код каскадной рекурсии вычисления n-го элемента последовательности натуральных чисел и результат работы программного кода соответственно.
5
Рисунок 1.7 – Код каскадной рекурсии
Рисунок 1.8 – Результат работы кода каскадной рекурсии
Удаленная рекурсия:
На рисунках 1.9 и 1.10 представлены код удаленной рекурсии вычисления функции Аккермана-Петера и результат работы программного кода соответственно.
Рисунок 1.9 – Код удаленной рекурсии
Рисунок 1.10 – Результат работы кода удаленной рекурсии
6
1.2 Индивидуальное задание
Код индивидуального задания был написан на языке программирования С++. Листинг программы представлен в приложении А.
Вариант индивидуального задания - №10 На рисунках 1.11 - 1.12 представлены код программы, а на рисунке 1.13
представлен результат работы кода.
7
Рисунок 1.11 – Код рекурсии
8
Рисунок 1.12 – Код функции main
Рисунок 1.13 – Результат работы кода
9
Заключение
В ходе выполнения работы было осуществлено знакомство с
различными типами рекурсий и способами их применения для решения
практических задач.
10