Дан фрагмент программы, определите значение переменных s и х после ее выполнения. Запишите оператор вывода значений этих переменных на печать с комментарием
s:=0; х:=1385
while x > 0 do begin
s:= s + x mod 2;
x:= x div 10;
end;
Ответы
Ответ:
s:=0; х:=1385
while x > 0 do begin
1) s:= s + x mod 2 = 1 ;
x:= x div 10 = 138;
2) s:= s + x mod 2 = 1 ;
x:= x div 10 = 13;
3) s:= s + x mod 2 = 2 ;
x:= x div 10 = 1;
4) s:= s + x mod 2 = 3 ;
x:= x div 10 = 0;
write(s); // s = 3
write(x); //х = 0
end
Объяснение:
x mod 2 - остаток после деления х на 2
x div 10 - целое число, которое осталось после деления х на 10
s:=0; х:=1385 - изначальные данные
while x > 0 do begin - "продолжать пока х > 0"
//комментарий на строке
write() - вывод переменной в скобке
s:=0; х:=1385
while x > 0 do begin
1) s:= s + x mod 2 = 0 + 1 = 1 ;
x:= x div 10 = 1385:10 = 138 (ост. 5 не пишется);
2) s:= s + x mod 2 = 1 + 0 = 1 ;
x:= x div 10 = 138:10 = 13 (ост. 8 не пишется);
3) s:= s + x mod 2 = 1 + 1 = 2 ;
x:= x div 10 = 13:10 = 1 (ост. 3 не пишется);
4) s:= s + x mod 2 = 2 + 1 = 3 ;
x:= x div 10 = 1:10 = 0 (ост. 1 не пишется);
end
дальше в Паскале ничего нового