Требовалось написать программу, при выполнении которой с клавиатуры считывается...

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

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число 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. Найдите все ошибки в этой программе (их может быть одна или несколько). Укажите все строки (одну или более), содержащие ошибки, и для каждой такой строки приведите правильный вариант.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.


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

Эта программа присваивает значение переменной N, потом присваивает переменной sum значение 1, за тем в случае пока N больше 1,  выделяет целое число при делении значения переменной N на 10 и  присваивает это значение переменной  N (повторяет эту операцию пока N больше 1), когда значение переменной N не больше 1 программа печатает на экран полученное в последнем цикле значение переменной sum.
Ответ: 
1) выведет 4
2) 10
3)sum := 0;
 while N >= 1 do

(102 баллов)