Определите, что будет напечатано в результате выполнения следующего алгоритмаvar...

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

Определите, что будет напечатано в результате выполнения следующего алгоритма
var a,b:integer;
begin
a:=0;
b:=2364;
while b>0 do begin
if b mod 10<5 then</span>
a:=a+b mod 10;
b:=b div 10;
end;
writeln(a);
end.

И ОБЪЯСНИТЕ, УМОЛЯЮ, КАК ЭТО ВЫПОЛНЯТЬ?


Информатика (110 баллов) | 41 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

var a,b:integer;        - говорит программе, что будут использовать целые числа в переменных                        

                                         А и В 

begin                            - начало программы

a:=0;                             - а = 0

b:=2364;                       - b = 2364;

while b>0 do begin      - Пока b > 0  делать

f b mod 10<5 then       - Если b разделить на 10 в остатке получится число меньше 5 тогда</p>

a:=a+b mod 10;          - а = а + b разделить на 10 и найти остаток (этот остаток и прибавить

b:=b div 10;                 - b = b разделить на 10 и найти целую часть, на эту целую часть 

                                        заменить старое значение переменной b

end;                             - конец цикла

writeln(a);                     - напечатать А

end.                             - конец программы

 

Работает так:

1) a = 0

b = 2364

2364 > 0 да

2364 / 10 = 236 ост 4

4<5 да тогда а = 0 + 4 = 4</p>

b = 2364 / 10 = 236  - находим только целую часть числа

 

2) проверяем снова условие

236 > 0  да

236 / 10 = 23 ост 6

6 < 5 нет - ничего не делаем ( а осталось равно 4)

b = 236 / 10 = 23  - находим только целую часть числа

 

3) проверяем снова условие

23 > 0 да

23 / 10 = 2 ост 3

3<5  да тогда а = 4 + 3 = 7</p>

b = 23 / 10 = 2 -  находим только целую часть числа

 

4) проверяем снова условие

2 > 0 да

2/10 = 0 ост 2

2<5 да, тогда а = 7 + 2 = 9</p>

b = 2 / 10 = 0  -  находим только целую часть числа

5) проверяем снова условие

0 > 0 нет

 

закончили цикл

 

Напечатать а = 9

конец алгоритма

 

Алгоритм считает сумму цифр в числе В, которые меньше 5

(49.1k баллов)