11 Класс. Практикум. Глава 2. Часть 7

advertisement
Работа 3.7. Рекурсивные методы программирования
(к § §2.3.1 – 2.3.3)
Уровень 1
Вычислить сумму первых M элементов числовой последовательности, заданной
рекуррентной формулой. Использовать рекурсивно-определенную функцию
1. a n  arctg a n 1  1, a1 = 0.
2. an  2 
1
an1
, a1 = 2.
1
2
3. an  tg an1 , a1 = 0,5.
1
2
4. an  cos an1 , a1 = 0,5.
2  an21
, a1 = 2.
5. an 
2 an  1
6. an 
an1  an2
, a1 = 1, a2 = 2.
2
7. an  e  a , a1 = 0.
n 1
8. an 
x
, a1 = x.
2an21
Уровень 2
Дана общая формула для элементов числовой последовательности. Вычислить
сумму первых М элементов. Для этого: описать частично-рекурсивную функцию,
использовать рекурсивно-определенную подпрограмму.
(1) n n
9. an  n ,
2
2n
10. an 
;
(n  1)!
11. an 
2n  1
;
2n
12. an 
10 n
;
n!
13. an 
(1) n 2 n
,
n!
14. an 
n!
;
(2n)!
Уровень 3
Решить задачу, используя рекурсивную подпрограмму:
15. Даны натуральное число n и вещественное положительное число k.
Вычислить:
k  2k  k (n  1)  kn .
16. Дано число x и числовой массив { a0, a1, a2, …, an}. Вычислить по
схеме Горнера значение алгебраического многочлена:
y  an x n  an1 x n1  an2 x n2    a1 x  a0 .
17. Описать функцию C(m, n), где 0  m  n, для вычисления
биномиального
коэффициента
C nm
по
следующей
формуле:
C n0  C nn  1; C nm  C nm1  C nm11 при 0  m  n. Получить значение C107 .
18. Найти сумму цифр заданного натурального числа.
19. Подсчитать количество цифр в заданном натуральном числе.
20. Описать рекурсивную функцию Root(a, b, ), которая методом
деления отрезка пополам находит с точностью  корень уравнения f(x) = 0 на
отрезке [a, b] (считать, что  > 0, a < b, f(a)  f(b) < 0 и f(x) — непрерывная и
монотонная на отрезке [a, b]). Используя функцию, найти корень уравнения
sin 2x – ln x=0 на отрезке [1, 2 ] с точностью 10-5.
21. Описать функцию min(X) для определения минимального элемента
линейного массива X, введя вспомогательную рекурсивную функцию min1(k),
находящую минимум среди последних элементов массива X, начиная с k-го.
С помощью функции найти минимальный элемент массива, вводимого с
клавиатуры.
22. Описать рекурсивную логическую функцию Simm(S, I, J),
проверяющую, является ли симметричной часть строки S, начинающаяся i-м
и заканчивающаяся j-м ее элементами. Протестировать функцию.
23. Составить программу нахождения числа, которое образуется из
данного натурального числа при записи его цифр в обратном порядке.
Например, для числа 1234 получаем ответ 4321.
24. Составить программу перевода данного натурального числа в pичную систему счисления (2  p  9).
25.
Дана
символьная
строка,
представляющая
собой
запись
натурального числа в p-ичной системе счисления (2  p  9). Составить
программу перевода этого числа в десятичную систему счисления.
26. Описать рекурсивную логическую функцию, которая возвращает
TRUE, если её аргумент — простое число. Протестировать функцию.
27. Описать функцию, которая удаляет из строки все лишние пробелы.
Пробелы считаются лишними, если их подряд идёт более двух, если они
стоят в конце строки после последней точки, если стоят после
открывающегося парного знака препинания. Протестировать функцию.
28. Разработать функцию для вычисления определителя матрицы
порядка n (1  n  20). Протестировать функцию.
29. Дано n различных натуральных чисел. Напечатать все перестановки
этих чисел.
Download