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

Лабораторная работа 13.

Рекурсивные алгоритмы.

Цель работы:

Получить практические навыки работы с рекурсивными алгоритмами.

Для каждой задачи своего варианта написать рекурсивные алгоритмы, выполняющие указанные действия.

Продемонстрировать на подобранных примерах правильность работы программы. Примеры подобрать самостоятельно. В программе должны быть указаны фамилия, группа, номер варианта, условия заданий. В основном алгоритме предусмотреть ввод корректных данных, вызов функции и вывод результата.

Варианты заданий:

1. Составить рекурсивную функцию для перевода данного натурального числа в р-ичную систему счисления (2  р 9).

2. Описать функцию min(x) для определения минимального элемента линейного массива х, введя вспомогательную рекурсивную функцию min1(k), находящую минимум среди последних элементов массива х, начиная с k-го.

1. Описать функцию С(m,n), где 0 m n, для вычисления биномиального коэффициента по следующей формуле: при 0< m< n.

2. Описать рекурсивную логическую функцию Simm(S, i, j), проверяющую, является ли симметричной часть строки S, начинающаяся i-м и кончающаяся j-м ее элементами

1. Описать рекурсивную функцию Root(a, b, ), которая методом деления отрезка пополам находит с точностью  корень уравнения f(x) = 0 на отрезке [а, b] (считать, что  > 0, а < b, f(a) • f(b) < 0 и f(x)- непрерывная и монотонная на отрезке [а, b]).

2. Написать рекурсивную функцию поиска индекса максимального элемента в массиве.

1. Описать рекурсивную функцию hord(a, b, ), которая методом хорд находит с точностью  корень уравнения f(x) = 0 на отрезке [а, b] (считать, что > 0, а < b, f(a) • f(b) < 0 и f(x) – непрерывная и монотонная на отрезке [а, b]).

Метод хорд работает аналогично методу половинного деления, но отрезок [a, b] делится точкой с не пополам. Проведём хорду АВ, где А(а, f(a)), B(b, f(b)), а точка С(с, 0) получается при пересечении этой хорды с осью абсцисс. Формулу для с вывести нетрудно, используя уравнение прямой АВ и подставив в него у =0.

2. Дана символьная строка, представляющая собой запись натурального числа в р-ичной системе счисления (2  р  9). Составить программу перевода этого числа в десятичную систему счисления.

1. Составить рекурсивную функцию для перевода данного натурального числа в р-ичную систему счисления (2  р 9).

2. Составить программу нахождения числа, которое образуется из данного натурального числа при записи его цифр в обратном порядке. Например, для числа 1234 получаем ответ 4321.

1. Описать рекурсивную логическую функцию Simm(S, i, j), проверяющую, является ли симметричной часть строки S, начинающаяся i-м и кончающаяся j-м ее элементами

2. Написать рекурсивную функцию нахождения цифрового корня натурального числа (число от 1 до 9). Для нахождения цифрового корня необходимо сложить все цифры числа. Если полученное число не является однозначным, процесс продолжается.

1. Описать функцию С(m,n), где 0 m n, для вычисления биномиального коэффициента по следующей формуле: при 0< m< n.

2. Описать рекурсивную функцию Root(a, b, ), которая методом деления отрезка пополам находит с точностью  корень уравнения f(x) = 0 на отрезке [а, b] (считать, что > 0, а < b, f(a) • f(b) < 0 и f(x)- непрерывная и монотонная на отрезке [а, b]).

1. Описать рекурсивную функцию hord(a, b, ), которая методом хорд находит с точностью  корень уравнения f(x) = 0 на отрезке [а, b] (считать, что > 0, а < b, f(a) • f(b) < 0 и f(x) – непрерывная и монотонная на отрезке [а, b]).

Метод хорд работает аналогично методу половинного деления, но отрезок [a, b] делится точкой с не пополам. Проведём хорду АВ, где А(а, f(a)), B(b, f(b)), а точка С(с, 0) получается при пересечении этой хорды с осью абсцисс. Формулу для с вывести нетрудно, используя уравнение прямой АВ и подставив в него у =0.

2. Написать рекурсивную функцию поиска индекса максимального элемента в массиве.

1. Описать функцию min(x) для определения минимального элемента линейного массива х, введя вспомогательную рекурсивную функцию min1(k), находящую минимум среди последних элементов массива х, начиная с k-го.

2. Написать рекурсивную функцию нахождения цифрового корня натурального числа (число от 1 до 9). Для нахождения цифрового корня необходимо сложить все цифры числа. Если полученное число не является однозначным, процесс продолжается.

1. Дана символьная строка, представляющая собой запись натурального числа в р-ичной системе счисления (2  р  9). Составить программу перевода этого числа в десятичную систему счисления

2. Составить программу нахождения числа, которое образуется из данного натурального числа при записи его цифр в обратном порядке. Например, для числа 1234 получаем ответ 4321.