Дан фрагмент программы (все переменные – integer):
z:=0; u:=x;
while u0 do
begin
if odd(u) then z:=z+y;
u:=u div 2;
end;
Выполните этот фрагмент с заданными x=10, y=8.
Чему равно z после выполнения?

29 Дек 2021 в 16:20
391 +1
0
0
Описание решения

Рассмотрим работу данной программы

Вначале имеем переменные :

z= 0 ; x = 10; y = 8 и u = x = 10

В програме есть цикл с условием

Данный цикл выполняется пока переменная u отлична от нуля

В теле цикла происходят следующие операции

если переменная u нечетная то к значению переменной z прибавляем значение y

Далее мы переменной z результат от деления нацело числа z на 2

Распишем работу программы

z= 0 ; x = 10; y = 8 и u = x = 10

u не равно нулю переходим к операторам внутри цикла

u не является нечетным числом никаких действий не производим

делим u на 2 : 10/2 = 5

присваиваем u = 5 (результат целочисленного деления на 2)

Переходим к началу цикла

u не равно нулю переходим к операторам внутри цикла

u нечетное число добавляем к z значение y

z = z+y; z= z+8 ;z=8

делим u на 2 : 5/2 = 2.5

целая часть 2 тогда u=2

Переходим к началу цикла

u не равно нулю переходим к операторам внутри цикла

u не является нечетным числом никаких действий не производим

делим u на 2 : 2/2 = 1 u = 1

Переходим к началу цикла

u не равно нулю переходим к операторам внутри цикла

u нечетное число добавляем к z значение y

z= z+8 = 8+8 = 16

делим u на 2 : 1/2 = 0.5

целая часть 0 тогда u=0

Переходим к началу цикла

u равно нулю и цикл завершается

Значение переменной z = 16

Также приложим скриншот выполнения программы

Ответ: z = 16

Готовый ответ
Готовый ответ был подготовлен экспертом по информатике
png
Screenshot_39
30.3 Кбайт25 ₽
6 Дек 2022 в 03:53
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир