ответ: Вычисление сколько раз введенное число m программа будет делить.
При введении числа 5241, выдаст число 4.
Объяснение кода программы:
(1) Название программы.
Объявление переменных, которые будут в коде.
Выполняется чтение переменной m.
(2) Обнуляем переменную k для последующего суммирования.
(3) Пока M не будет равно 0, программа будет суммировать k следующим образом: 0+1, затем значение k сменится на 1 и будет 1+1 и т.д.
После суммирования по циклу идёт деление m на 10. К примеру, если мы задали число m = 5, то после данной операции число m будет уже 0,5.
Программа снова вернётся к циклу (3) и, если уже m будет равно 0, она напишет, сколько раз пришлось провести операцию деления. Это количество обозначается под переменной k.
2. Наименьшие значения A, при которых программа выведет верный ответ, равны 2 и 3.
3. В программе допущена типичная для начинающих программистов ошибка «смещения кадра»: значение переменной K, необходимое при первом выполнении цикла, присваивается до начала цикла, а значение для следующего оборота цикла вычисляется в конце предыдущего оборота. В результате, при завершении цикла K имеет значение больше, чем нужно. Вторая ошибка – неверный шаг изменения K. «Идеальная» программа решения этой задачи должна выглядеть так (приведён пример на языке Бейсик):
DIM A,S,K AS INTEGER
INPUT A
S = 0
K = −1
WHILE S <= A
K = K + 2
S = S + K*(K+1)
WEND
PRINT K
END
Но по условиям задания менять местами строки нельзя, их можно только исправлять. Поэтому, кроме исправления шага, приходится корректировать значение K при выводе. Пример исправления для языка Паскаль:
Первая ошибка:
k := k+1;
Исправленная строка:
k := k+2
Вторая ошибка:
writeln(k)
Исправленная строка:
writeln(k-2)
В программах на других языках ошибочные строки и их исправления аналогичны.
Незначительной опиской, не влияющей на оценку, следует считать отсутствие знаков и служебных слов после содержательной части исправления.
ответ: Вычисление сколько раз введенное число m программа будет делить.
При введении числа 5241, выдаст число 4.
Объяснение кода программы:
(1) Название программы.
Объявление переменных, которые будут в коде.
Выполняется чтение переменной m.
(2) Обнуляем переменную k для последующего суммирования.
(3) Пока M не будет равно 0, программа будет суммировать k следующим образом: 0+1, затем значение k сменится на 1 и будет 1+1 и т.д.
После суммирования по циклу идёт деление m на 10. К примеру, если мы задали число m = 5, то после данной операции число m будет уже 0,5.
Программа снова вернётся к циклу (3) и, если уже m будет равно 0, она напишет, сколько раз пришлось провести операцию деления. Это количество обозначается под переменной k.
1. При вводе числа 15 программа выведет число 4.
2. Наименьшие значения A, при которых программа выведет верный ответ, равны 2 и 3.
3. В программе допущена типичная для начинающих программистов ошибка «смещения кадра»: значение переменной K, необходимое при первом выполнении цикла, присваивается до начала цикла, а значение для следующего оборота цикла вычисляется в конце предыдущего оборота. В результате, при завершении цикла K имеет значение больше, чем нужно. Вторая ошибка – неверный шаг изменения K. «Идеальная» программа решения этой задачи должна выглядеть так (приведён пример на языке Бейсик):
DIM A,S,K AS INTEGER
INPUT A
S = 0
K = −1
WHILE S <= A
K = K + 2
S = S + K*(K+1)
WEND
PRINT K
END
Но по условиям задания менять местами строки нельзя, их можно только исправлять. Поэтому, кроме исправления шага, приходится корректировать значение K при выводе. Пример исправления для языка Паскаль:
Первая ошибка:
k := k+1;
Исправленная строка:
k := k+2
Вторая ошибка:
writeln(k)
Исправленная строка:
writeln(k-2)
В программах на других языках ошибочные строки и их исправления аналогичны.
Незначительной опиской, не влияющей на оценку, следует считать отсутствие знаков и служебных слов после содержательной части исправления.