Определите, что будет напечатано в результате выполнения следующего алгоритмаvar a,b:integer;begina:=0;b:=2364;while b больше 0 do beginif b mod 10 меньше 5 thena:=a+b mod 10;b:=b div 10;end;writeln(a);end. И ОБЪЯСНИТЕ, УМОЛЯ...
Определите, что будет напечатано в результате выполнения следующего алгоритма
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. И ОБЪЯСНИТЕ, УМОЛЯЮ, КАК ЭТО ВЫПОЛНЯТЬ?
Ответ(ы) на вопрос:
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 тогда 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 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 b = 23 / 10 = 2 - находим только целую часть числа 4) проверяем снова условие 2 > 0 да 2/10 = 0 ост 2 2<5 да, тогда а = 7 + 2 = 9 b = 2 / 10 = 0 - находим только целую часть числа 5) проверяем снова условие 0 > 0 нет закончили цикл Напечатать а = 9 конец алгоритма Алгоритм считает сумму цифр в числе В, которые меньше 5
Не нашли ответ?
Похожие вопросы