Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
РЕКУРСИИ. ТИПЫ РЕКУРСИЙ. Отчет по лабораторной работе №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 – Третий результат работы.
Взаимная рекурсия представляет собой циклическую последовательность вызовов несколько функций.