Отчеты / ЯП3
.pdfМинистерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
РЕКУРСИИ. ТИПЫ РЕКУРСИЙ. Отчет по лабораторной работе №3
по дисциплине «Языки программирования»
Выполнил:
Студент гр. 710-2
_______ _____Кузьмина А.А.
__.04.2022
Принял:
Младший научный сотрудник
Кафедры КИБЭВС
_______ ________Полюга В.А.
___.04.2022
Томск - 2022
2
1 Введение
Цель работы: изучение различных типов рекурсий и способов их применения для решения практических задач.
Для работы использовался язык программирования С# и среда разработки Microsoft Visual Studio 2019.
В данной лабораторной работе рассмотрим такие типы рекурсии, как линейная, повторная, взаимная, каскадная и удаленная.
3
2 Ход работы
Рассмотрим линейную рекурсию:
На рисунке 1 представлен фрагмент кода, который с помощью рекурсии находит факториал числа. Результат работы представлен на рисунке 2.
Рисунок 1 – Первый фрагмент кода.
Рисунок 2 – Первый результат работы.
Рекурсия является линейной, если функция содержит единственный условный вызов самой себя.
4
Далее рассмотрим повторную функцию:
На рисунке 3 представлен фрагмент кода c повторной рекурсией. Результат работы представлен на рисунке 4.
Рисунок 3 – Второй фрагмент кода
Рисунок 4 – Второй результат работы.
Частный |
случай |
линейной |
рекурсии |
с |
отсутствующими |
предварительными или отложенными вычислениями.
5
Рассмотрим взаимную рекурсию:
На рисунке 5 показан фрагмент кода с взаимной рекурсией. Результат работы представлен на рисунке 6.
Рисунок 5 – Третий фрагмент кода.
Рисунок 6 – Третий результат работы.
Взаимная рекурсия представляет собой циклическую последовательность вызовов несколько функций.
6
Далее рассмотрим каскадную рекурсию:
На рисунке 7 представлен фрагмент кода с каскадной рекурсией. Ниже на рисунке 8 показан результат работы.
Рисунок 7 – Четвертый фрагмент кода.
Рисунок 8 – Четвертый результат работы.
В каскадной рекурсии вызов рекурсивной функции по любой из всех возможных ветвей алгоритма встречается более одного раза.
7
После этого рассмотрим удаленную рекурсию:
На рисунке 9 представлен фрагмент кода с удаленной рекурсией. Ниже на рисунке 10 показан результат работы.
Рисунок 9 – Пятый фрагмент кода.
Рисунок 10 – Пятый результат работы.
Если в теле функции при рекурсивных вызовах, в выражениях,
являющихся фактическими параметрами, снова встречаются рекурсивные вызовы этой функции.
8
3Заключение
Впроцессе выполнения лабораторной работы были получены знания об различных типах рекурсий, способов их применения и решения практических задач.
Всреде разработки Microsoft Visual Studio 2019 на языке программирования С# был написан код, реализующий такие типы рекурсий,
как линейная, повторная, взаимная, каскадная и удаленная.
Отчет был написан согласно ОС ТУСУР-01.2013