Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 10^9, и выводится количество цифр этого числа. Программист торопился и написал программу неправильно.
var N: longint;
sum: integer;
begin
readln(N);
sum := 1;
while N > 1 do
begin
N := N div 10;
sum := sum + 1;
end;
writeln(sum);
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 938?
2. Укажите одно число, для которого программа будет работать верно.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Укажите все строки (одну или более), содержащие ошибки, и для каждой такой строки приведите правильный вариант.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Ответы на вопрос
Ответил Derbyshevkamil
1
эта программа присваивает значение переменной N, потом присваивает переменной sum значение 1, за тем в случае пока N больше 1, выделяет целое число при делении значения переменной N на 10 и присваивает это значение переменной N (повторяет эту операцию пока N больше 1), когда значение переменной N не больше 1 программа печатает на экран полученное в последнем цикле значение переменной sum.
Ответ:
1) выведет 4
2) 10
3)sum := 0;
while N >= 1 do
Ответ:
1) выведет 4
2) 10
3)sum := 0;
while N >= 1 do
Новые вопросы