Вопрос:

Укажите число, которое будет выведено на экран при вводе х = 16 в результате работы следующей программы: var x, L, M: longint; begin readln(x); L := 0; M:= 0; while x > 0 do begin L:= L + 1; if x mod 2 = 0 then M:= M + x mod 10; x:= x div 10; end; writeln(L+M); end.

Смотреть решения всех заданий с листа

Ответ:

Разберем программу по шагам, чтобы понять, какое число будет выведено на экран.

Первоначально, x = 16, L = 0, M = 0.

Цикл while x > 0 do begin ... end; будет выполняться до тех пор, пока x больше 0.

  1. Первая итерация цикла:
    • L := L + 1; => L = 0 + 1 = 1
    • if x mod 2 = 0 then => 16 mod 2 = 0 (истина)
    • M := M + x mod 10; => M = 0 + 16 mod 10 = 0 + 6 = 6
    • x := x div 10; => x = 16 div 10 = 1 (целочисленное деление)
  2. Вторая итерация цикла:
    • L := L + 1; => L = 1 + 1 = 2
    • if x mod 2 = 0 then => 1 mod 2 = 0 (ложь)
    • x := x div 10; => x = 1 div 10 = 0

Цикл завершается, так как x стал равен 0.

В конце программы выводится L + M, то есть 2 + 6 = 8.

Ответ: 8
ГДЗ по фото 📸
Подать жалобу Правообладателю