2 курс - Основы алгоритмизации _ вариант 3 / Задания / Лабораторная работа 13
.docЛабораторная работа 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.