Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчеты / ЯП3

.pdf
Скачиваний:
6
Добавлен:
05.06.2022
Размер:
206.12 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра комплексной информационной безопасности электронно-

вычислительных систем (КИБЭВС)

РЕКУРСИИ. ТИПЫ РЕКУРСИЙ. Отчет по лабораторной работе №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

Соседние файлы в папке Отчеты