Чему будет равно значение переменной c в результате выполнения фрагмента программы...

0 голосов
78 просмотров

Чему будет равно значение переменной c в результате выполнения фрагмента программы
a:=1257; c:=0;
while a>0 do begin
if a mod 2<>0 then b:=a mod 10; c:=c+b;
a:=a div 10; end;


Информатика (34 баллов) | 78 просмотров
Дан 1 ответ
0 голосов
Решение: я попробую объяснить словами...
var a,b,c:integer;
begin
a:=1257;
c:=0;
  while (a>0) do              т.к a>0 (1257>0) начинаем решить действия
    begin
      if (a mod 2 <> 0) then   Здесь: 1257:2=628 (остаток 1)
        b:= a mod 10;            Здесь: 1257:10=125 (остаток 7)
        c:=c+b;                     Получается, мы складываем остатки и
        a:=a div 10;               получаем 8. Для ответа нам пригодится
    end;                              число, составленное из остатка а и 8,
    writeln(c);                       то есть 18.
end.

Ответ: 18.
(669 баллов)