Требовалось написать программку, при исполненьи которой с клавиатуры считывается натуральное
Требовалось написать программку, при выполнении которой с клавиатуры считывается естественное число N, не превосходящее 10^9, и выводится сумма цифр этого числа. Программер спешил и написал программку ошибочно:
var N: longint;
sum, d: integer;
begin
readln(n);
sum :=0;
while N gt; 0 do begin
d := N mod 10;
N := N div 10;
sum := sum + 1;
end;
writeln(sum);
end.
Последовательно сделайте последующее.
1. Напишите, что выведет эта программка при вводе числа 256.
2. Приведите пример такового трехзначного числа, при вводе которого программка выдаёт верный результат.
3. Найдите все ошибки в этой программке ( их может быть одна или несколько).
ввели n=256
ngt;0 ? - да, означает далее идёт блок из цикла, и будет он повторятся до тех пор пока n будет gt;0.
d:=256 mod 10
d:=6, т.к. mod берёт остаток от деления.
n:=256 div 10
n:=25, т.к. div делит нацело и остаток не берёт.
sum:=sum+1;
sum:=1;
______________________
цикл 1-ый раз завершился и вновь проверяется условие ngt;0, если да, то вновь запускает цикл. n:=25gt;0
d:=25 mod 10
d:=5
n:=25 div 10
n:=2
sum:=1+1
sum:=2;
______________________
вновь завершился цикл и проверяется условие ngt;0, n:=2gt;0
d:=2 mod 10;
d:=2;
n:=2 div 10
n:=0
sum:=2+1;
sum:=3;
____________________
кончается цикл и проверяется условие ngt;0? n:=0 gt;0 - нет. цикл кончается и выводится значение sum.
Ответ: 3.
2) 120, 210, 111 и т.д.
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.