Рассмотрим задачу пошагово. Нам нужно определить значение переменной \(k\), чтобы при выполнении программы на экран выводилось число 149.
Исходный код:
s := 1;
n := 0;
for i := 1 to k do begin
s := s * 2;
n := n + 3;
end;
write(s + n);
Объяснение шаг за шагом:
Изначальные значения:
- \(s := 1\)
- \(n := 0\)
Цикл:
for i := 1 to k do
выполняется \(k\) раз. Каждый раз:
- \(s := s * 2\)
- \(n := n + 3\)
- После выполнения цикла:
- \(s\) будет равно \(2^k\), потому что начиная с 1, при каждом проходе умножение на 2 происходит \(k\) раз: \[ s = 2^k \]
- \(n\) будет равно \(3 \times k\), поскольку каждый раз добавляется 3, для \(k\) повторений: \[ n = 3k \]
- Итоговая команда:
write(s + n);
выведет сумму: \[ s + n = 2^k + 3k \]
Задача: найти \(k\), при котором: \[ 2^k + 3k = 149 \]
Теперь подбираем \(k\), начиная с небольших значений:
Для \(k=1:\) \[ 2^1 + 3 \times 1 = 2 + 3 = 5 \] Нет, меньше 149.
Для \(k=2:\) \[ 4 + 6 = 10 \] Нет.
Для \(k=3:\) \[ 8 + 9 = 17 \] Нет.
Для \(k=4:\) \[ 16 + 12 = 28 \] Нет.
Для \(k=5:\) \[ 32 + 15 = 47 \] Нет.
Для \(k=6:\) \[ 64 + 18 = 82 \] Нет.
Для \(k=7:\) \[ 128 + 21 = 149 \] Это подходит!
Ответ: \(k=7\).
Итак, переменная \(k\) должна быть равна 7.