Упр.91 ГДЗ Рабочая тетрадь Босова 9 класс (Информатика)
Рассмотрим вариант решения задания из учебника Босова 9 класс, Просвещение: 91. Запишите соотношение, используемое в приведенной ниже подпрограмме. procedure f(n: integer); begin if n > 1 then begin f(n div 2); end; write (‘**’) ; end; Определите, сколько звездочек будет выведено в результате вызова f(7) подпрограммы. Вычисления фиксируйте в таблице: f(1) = 2; f(n) = n div 2; n 1 2 3 4 5 6 7 f(n) 2 4 4 6 6 6 6
Подпрограмма вызывает саму себя, пока $$n > 1$$, а затем каждый раз выполняет команду write(‘**’). Значит, число выведенных звёздочек зависит от количества вызовов процедуры.
Составим значения по условию:
$$f(1)=2$$
$$f(n)=n \div 2$$
| $$n$$ | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| $$f(n)$$ | 2 | 4 | 4 | 6 | 6 | 6 | 6 |
Для вызова $$f(7)$$ получаем цепочку:
$$7 \to 3 \to 1$$
Процедура выполнит команду write(‘**’) три раза, то есть выведет:
$$3 \cdot 2 = 6$$ звёздочек.
Ответ
6