Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
| Бэйсик | Паскаль |
|---|---|
DIM N AS LONG INPUT N sum = 0 WHILE N >= 9 digit = N MOD 10 sum = sum + digit N = N \ 10 WEND PRINT sum END
| var N: longint; digit, sum: integer; begin readln(N); sum := 0; while N >= 9 do begin digit := N mod 10; sum := sum + digit; N := N div 10; end; writeln(sum); end.
|
| Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { long int N; int digit, sum; cin >> N; sum = 0; while (N >= 9) { digit = N % 10; sum = sum + digit; N = N / 10; } cout « sum « endl; }
| алг нач цел N, digit, sum ввод N sum := 0 нц пока N >= 9 digit := mod(N, 10) sum := sum + digit N := div(N, 10) кц вывод sum кон |
| Python | |
n = int(input()) sum = 0 while n >= 9: digit = n % 10 sum += digit n //=10; print(sum)
| |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 352.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Укажите все строки (одну или более), содержащие ошибки, и для каждой такой строки приведите правильный вариант. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
3. Укажите одно число для которого эта программа будет работать верно.
1. Программа выведет число 7 (как сумму чисел 2 и 5).
2. В качестве ответа для остальных чисел программа выдаёт сумму всех цифр, кроме старшей. Возможный (не единственный) вариант исправления для языка Паскаль: исправление условия продолжения цикла на while (N >= 1) do или while (N > 0) do. При этом замена на while (N >= 0) do корректной не является.
3. Программа работает верно для всех чисел, начинающихся на 9, в том числе для 9. [Достаточно указать любое такое число.]
Указания по оцениванию.
Обратите внимание! В задаче требовалось выполнить три действия.
Баллы за данное задание начисляются как сумма баллов за верное выполнение каждого действия.
1. Верно указано, что именно выведет программа при указанных в условии входных данных.
2. Указано число, при котором программа работает верно.
3. Указаны все строки (одна или более), в которые нужно внести исправления, и эти исправления внесены, при этом получена верно работающая программа.
При выполнении действия 3 верное указание на ошибку при неверном её исправлении не засчитывается.
Обратите внимание! Выбор ошибочных строк может быть выполнен не единственным способом. В работе (во фрагментах программ) допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора решения.
-------------
Дублирует задание № 5532.Спрятать критерии

