Предмет: Информатика, автор: polinamyuf

ДАЮ 50 БАЛЛОВ!!
Определите значение переменной s после выполнения фрагмента программы при указанных значениях a
p:=a;
s:=o;
while p>o do
begin
s:=s+p mod 10;
p:=p div 10;
end;

1) а=27
2) а=39
3) а=223

Ответы

Автор ответа: valgrisa
2

Ответ:

значение переменной s после выполнения фрагмента

1) s = 9 (при а = 27)

2) s = 12 (при а = 39)

3) s = 7 (при а = 223)

Объяснение:

программа вычисляет сумму цифр числа

переменной p присваивается значение переменной a (p := a;)

переменной s присваивается начальное значение равное 0 (s := 0;)

цикл с предусловием (while) пока условие (p > 0) истинно (да)

выполняем действия:

суммируем значение переменной s с последней цифрой переменной p (s := s + p mod 10;, mod - остаток от целочисленного деления)

отбрасываем последнюю цифру переменной p (p := p div 10;, div - целочисленное деление)

1)

а = 27

p = a = 27

s = 0

проверяем условие p > 0 (27 > 0, да)

выполняем действия:

s = s + p mod 10 = 0 + 27 mod 10 = 0 + 7 = 7

p = p div 10 = 27 div 10 = 2

s = 7

p = 2

проверяем условие p > 0 (2 > 0, да)

выполняем действия:

s = s + p mod 10 = 7 + 2 mod 10 = 7 + 2 = 9

p = p div 10 = 2 div 10 = 0

s = 9

p = 0

проверяем условие p > 0 (0 > 0, нет)

действия не выполняем, т.к. условие ложно и цикл прерывается, значение переменных остаётся без изменений

2)

а = 39

p = a = 39

s = 0

проверяем условие p > 0 (39 > 0, да)

выполняем действия:

s = s + p mod 10 = 0 + 39 mod 10 = 0 + 9 = 9

p = p div 10 = 39 div 10 = 3

s = 9

p = 3

проверяем условие p > 0 (3 > 0, да)

выполняем действия:

s = s + p mod 10 = 9 + 3 mod 10 = 9 + 3 = 12

p = p div 10 = 3 div 10 = 0

s = 12

p = 0

проверяем условие p > 0 (0 > 0, нет)

действия не выполняем, т.к. условие ложно и цикл прерывается, значение переменных остаётся без изменений

3)

а = 223

p = a = 223

s = 0

проверяем условие p > 0 (223 > 0, да)

выполняем действия:

s = s + p mod 10 = 0 + 223 mod 10 = 0 + 3 = 3

p = p div 10 = 223 div 10 = 22

s = 3

p = 22

проверяем условие p > 0 (22 > 0, да)

выполняем действия:

s = s + p mod 10 = 3 + 22 mod 10 = 3 + 2 = 5

p = p div 10 = 22 div 10 = 2

s = 5

p = 2

проверяем условие p > 0 (2 > 0, да)

выполняем действия:

s = s + p mod 10 = 5 + 2 mod 10 = 5 + 2 = 7

p = p div 10 = 2 div 10 = 0

s = 7

p = 0

проверяем условие p > 0 (0 > 0, нет)

действия не выполняем, т.к. условие ложно и цикл прерывается, значение переменных остаётся без изменений

Похожие вопросы
Предмет: Английский язык, автор: nosochek14