Запишите число, которое будет напечатано в результате выполнения программы. var s, n: integer;

Вопрос посетителя

Запишите число, которое будет напечатано в результате выполнения программы.
var s, n: integer;
begin
  s := 33;
  n := 1;
  while s > 0 do begin
    s := s – 7;
    n := n * 3
  end;
  writeln(n)
end.

Ответ эксперта

Решение:
1)    из программы видно, что начальные значения переменных s и n равны соответственно 33 и 1
2)    цикл заканчивается, когда нарушается условие s > 0, то есть количество шагов цикла определяется изменением переменной s
3)    после окончания цикла выводится значение переменной n
4)    таким образом, задача сводится к тому, чтобы определить число шагов цикла, необходимое для того, чтобы значение s стало меньше или равно 0
5)    с каждым шагом цикла значение s уменьшается на 7, а значение n увеличивается в 3 раза, так что n=3^k, где k – это число шагов цикла
6)    поскольку s уменьшается на 7, конечное значение s должно быть равно 33-7*k , причём первое значение, меньшее или равное 0, достигается при k=5 (и s=33–7*5=-2)
7)    тогда n=3^k=3^5=243
Ответ:  243.

image_pdfСкачать ответimage_printРаспечатать решение

Добавить комментарий

Похожие вопросы от пользователей