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

fajzullaevamar fajzullaevamar    3   21.05.2019 08:20    0

Ответы
Караго Караго  15.06.2020 08:49

Есть две переменные а и б
Изначально а=0, б=2364

 

Пока б будет больше 0 он будет выполнять следующие действия:

если остаток от б/10 меньше нуля тогда к А прибавляется этот остаток.
 Б делим на 10 и повторяем

 

Вывод А

 

Сама задача вычисляет сумму цифр в числе которые меньше 5.
Дано Б = 2364.

Задача смотрит остаток от 2364 mod 10 = 4

4 меньше пяти соответственно в А=4

далее 2364/10=236

 

теперь 236 mod 10 = 6

6 больше пяти поэтому ниче не делаем

236 div 10 = 23

 

теперь 23 mod 10 = 3

3 меньше пяти соответственно А=А+3 = 4+3 = 7

23 див 10 = 2

 

теперь 2 mod 10 = 2

2 меньше 5 соответственно А=А+3 = 7+2 = 9

2 див 10 = 0

 

Так как Б=0 программа выходит из цикла и выводит А, т.е. число 9

 

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика