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

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

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 10^9, и выводится количество цифр этого числа. Программист торопился и написал программу неправильно:

var N: longint;

count: integer;

begin

readln(N);

count := 1;

while N > 1 do begin

count := count + 1;

N := N div 10;

end;

writeln(count);

end.

Последовательно выполните следующее:
Определите, что выведет программа при вводе числа 123.
Укажите одно число, для которого программа выводит неверный результат.
Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:

а) выпишите строку, в которой сделана ошибка;

б) укажите, как надо исправить ошибку - приведите правильный вариант строки.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, имеющую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.


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

При вводе числа 123 программа выведет 3.
Для числа 2 программа выведет 2, что неверно

Ошибки в 5 и 6 строках. 
1) а) 5 строка (count := 1;)
    б) count := 0;
2) a) 6 строка (while N > 1 do begin)
    б) while N >= 1 do begin

(8.2k баллов)