Forward (процедурная директива)
Используя Forward-описания (предописания), можно делать процедуры или функции известными без фактического определения их операторной части.
С точки предописания, другие процедуры и функции могут вызывать предописанную подпрограмму, делая возможной взаимную рекурсию.
Решение:
1) Цепочка вызовов: F(11) → G(10) → F(8) → G(7) → F(5) → G(4) → F(2) → G(1)
2) За один вызов функции G выводится одна звёздочка, внутри функции F звездочки не выводятся
Ответ: 4
Решение (построение дерева вызовов):
В начале каждого вызова на экран выводится значение единственного параметра функции, достаточно определить порядок рекурсивных вызовов и сложить значения параметров
n<5
Ответ: 49
Решение (динамическое программирование)
1) Определим рекуррентную формулу;
G(n) сумма чисел, которая выводится при вызове F(n)
2) n >= 6: процедура выводит число n:
G(n) = n при n >= 6
3) n < 6: процедура выводит число n и дважды вызывает сама себя:
G(n) = n + G(n+2) + G(3n) при n < 6
6
7
8
9
10
11
12
13
14
15
27
22
39
30
79
Ответ: 79
Решение:
Определим рекуррентную формулу; обозначим через G(n) количество звездочек при вызове F(n)
G(n) = 1 при всех n <= 0
G(n) = 1 + G(n-2) + G(n div 2) при n > 0
1
3
5
7
11
13
19
21
Ответ: 21
Решение:
Ответ: 1
Решение:
F(5) = F(4) * 5
F(5) = F(3) * 4 * 5
F(5) = F(2) * 3 * 4 * 5
F(5) = F(1) * 2 * 3 * 4 * 5
F(5) = 1 * 2 * 3 * 4 * 5
Ответ: 120
Решение:
Для n < 3 (то есть, для 1 и 2) функция выводит одну звездочку
F(1) = F(2) = 1
Для n>=3 рекуррентная формула
F(n) = F(n-1) + F(n-2) + F(n-2)
= F(n-1) + 2*F(n-2)
1
1
3
5
11
21
Ответ: 21
Если квадратный трехчлен задан в виде
, то абсцисса, соответствующая точке минимума, вычисляется по формуле
Решение:
Функция f возвращает куб переданного ей числа
После ввода k работает цикл, который увеличивает i до тех пор, пока значение куба f(i) не станет больше или равно k
построим таблицу значений функции f(i) (кубов чисел):
При k=10 цикл завершится при i=3
При k=10 и i=3 условие
f(i)-k <= k-f(i-1)
27-10 <= 10-8
17 <= 2
⇒ выводится на экран не i, а i-1, то есть 2
итак, нам нужно найти, сколько значений k дадут на выходе 2
нам нужно найти, сколько значений k дадут на выходе 2
Преобразуем условие
f(i)+f(i-1) <= 2k
При выполнении обратного условия,
2k < f(i)+f(i-1)
k < (f(i)+f(i-1))/2
Выводится число i-1 вместо i
Составим еще одну таблицу:
Подходят числа в диапазоне [5;17], всего их 17-5+1 = 13
Ответ: 13
Решение:
В результате анализа можно сделать вывод, что цикл ищет максимум функции F(H,t) на интервале от a до b
Выводится значение R, а величина M не выводится и не влияет на вычисление R
Функция F вычисляет значение
F:=11*(x-H)*(x-H) + 13;
график этой эта функции – парабола с ветвями, направленными вверх
Вершина параболы находится в точке x = H При изменении H парабола двигается влево или вправо (но не вверх-вниз!)
Итак, мы ищем максимальное значение квадратичной функции, и хотим, чтобы это значение было наименьшим
Решение:
Вычислим значения функции F при i=1,2,3…
i=0: f(0)=2
i=1: f(1)=7
i=2: f(2)=16
i=3: f(3)=29
i=4: f(4)=46
К ∈ [29;45]
⇒ 45-29+1=17 чисел
Ответ: 17
Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.
Email: Нажмите что бы посмотреть