Требовалось написать программу, при выполнении которой с клавиатуры вводится натуральное число, не превосходящее 108, и выводится его первая (старшая) цифра. Ученик написал такую программу:
Бейсик | Паскаль
DIM N AS LONG
INPUT N
WHILE N>10
N = N MOD 10
WEND
PRINT N
END
|
var n: longint;
begin
read(n);
while n>10 do begin
n := n mod 10
end;
write(n);
end.
Си++ | Алгоритмический
#include <iostream>
using namespace std;
int main(){
long int n;
cin >> n;
while (n>10) {
n = n%10;
}
cout << n;
}
|
алг
нач
цел n
ввод n
нц пока n>10
n := mod(n,10)
кц
вывод n
кон
Python
n = int(input())
while n > 10:
n %= 10
print(n)
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 1984.
2. Приведите пример числа, при вводе которого программа выдаст верный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.
Бейсик | Паскаль
DIM N AS LONG
INPUT N
WHILE N>10
N = N MOD 10
WEND
PRINT N
END
|
var n: longint;
begin
read(n);
while n>10 do begin
n := n mod 10
end;
write(n);
end.
Си++ | Алгоритмический
#include <iostream>
using namespace std;
int main(){
long int n;
cin >> n;
while (n>10) {
n = n%10;
}
cout << n;
}
|
алг
нач
цел n
ввод n
нц пока n>10
n := mod(n,10)
кц
вывод n
кон
Python
n = int(input())
while n > 10:
n %= 10
print(n)
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 1984.
2. Приведите пример числа, при вводе которого программа выдаст верный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.
💡 Пошаговый разбор и решение:
Элементы ответа:
1. При вводе числа 1984 программа выведет число 4. (Комментарий Приведённая программа выводит ответ 10 для n = 10 и последнюю цифру для любого другого значения n.)
2. Пример числа, для которого программа даёт верный ответ: 2012. (Комментарий Программа даст верный ответ для любого числа, у которого совпадают первая и последняя цифры. В частности, для любого однозначного числа.)
3. Ошибки содержатся в двух строках программы:
1) Неверное условие цикла: неравенство должно быть нестрогим, иначе можно в качестве ответа получить 10.
2) Неверная операция отбрасывания последней цифры: вместо нахождения остатка нужно использовать целочисленное деление.
Пример исправления для языка Паскаль:
Первая строка с ошибкой: while n>10 do begin. Исправленная строка: while n>=10 do begin. Другой способ исправления: while n>9 do begin
Вторая строка с ошибкой: n := n mod 10. Исправленная строка: n := n div 10.
В программах на других языках ошибочные строки и их исправления аналогичны.
1. При вводе числа 1984 программа выведет число 4. (Комментарий Приведённая программа выводит ответ 10 для n = 10 и последнюю цифру для любого другого значения n.)
2. Пример числа, для которого программа даёт верный ответ: 2012. (Комментарий Программа даст верный ответ для любого числа, у которого совпадают первая и последняя цифры. В частности, для любого однозначного числа.)
3. Ошибки содержатся в двух строках программы:
1) Неверное условие цикла: неравенство должно быть нестрогим, иначе можно в качестве ответа получить 10.
2) Неверная операция отбрасывания последней цифры: вместо нахождения остатка нужно использовать целочисленное деление.
Пример исправления для языка Паскаль:
Первая строка с ошибкой: while n>10 do begin. Исправленная строка: while n>=10 do begin. Другой способ исправления: while n>9 do begin
Вторая строка с ошибкой: n := n mod 10. Исправленная строка: n := n div 10.
В программах на других языках ошибочные строки и их исправления аналогичны.
📚 Похожие разобранные задания по предмету:
ID 33564 • Задание №22
В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно...
ID 33265 • Задание №19
Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целоч...
Официальные критерии проверки ФИПИ:
Критерии проверки:
Критерии оценивания выполнения задания | Баллы
Правильно выполнены все действия:
1) указан верный результат для приведённого примера входных данных;
2) дан пример числа, для которого программа с ошибками выдаёт тот же результат, что и правильная программа;
3) указаны и исправлены две ошибки в программе;
4) не указаны в качестве ошибочных никакие другие строки программы. | 3
Не выполнены условия, позволяющие поставить 3 балла, и имеет место один из следующих случаев:
1. Выполнены два первых действия (верный результат при указанных данных, верный пример числа, для которого программа выдаёт правильный результат), найдена и исправлена одна ошибка в программе, ни одна верная строка не названа ошибочной.
2. Выполнены два первых действия (верный результат при указанных данных, верный пример числа, для которого программа выдаёт правильный результат), найдены и исправлены две ошибки в программе, одна верная строка названа ошибочной.
3. Выполнено одно из первых двух действий (верный результат при указанных данных или верный пример числа, для которого программа выдаёт правильный результат), найдены и исправлены две ошибки в программе, ни одна верная строка не названа ошибочной.
| 2
Не выполнены условия, позволяющие поставить 2 или 3 балла, и имеет место один из следующих случаев:
1. Выполнены два первых действия (верный результат при указанных данных, верный пример числа, для которого программа выдаёт правильный результат). При этом не существенно, насколько правильно выполнено третье действие.
2. Найдены и исправлены две ошибки в программе, не более чем одна верная строка названа ошибочной. При этом не существенно, насколько правильно выполнены первое и второе действия.
3. Найдена и исправлена одна ошибка в программе, ни одна верная строка не названа ошибочной. При этом не существенно, насколько правильно выполнены первое и второе действия. | 1
Не выполнены условия, позволяющие поставить 1, 2 или 3 балла. | 0
Максимальный балл | 3
Критерии оценивания выполнения задания | Баллы
Правильно выполнены все действия:
1) указан верный результат для приведённого примера входных данных;
2) дан пример числа, для которого программа с ошибками выдаёт тот же результат, что и правильная программа;
3) указаны и исправлены две ошибки в программе;
4) не указаны в качестве ошибочных никакие другие строки программы. | 3
Не выполнены условия, позволяющие поставить 3 балла, и имеет место один из следующих случаев:
1. Выполнены два первых действия (верный результат при указанных данных, верный пример числа, для которого программа выдаёт правильный результат), найдена и исправлена одна ошибка в программе, ни одна верная строка не названа ошибочной.
2. Выполнены два первых действия (верный результат при указанных данных, верный пример числа, для которого программа выдаёт правильный результат), найдены и исправлены две ошибки в программе, одна верная строка названа ошибочной.
3. Выполнено одно из первых двух действий (верный результат при указанных данных или верный пример числа, для которого программа выдаёт правильный результат), найдены и исправлены две ошибки в программе, ни одна верная строка не названа ошибочной.
| 2
Не выполнены условия, позволяющие поставить 2 или 3 балла, и имеет место один из следующих случаев:
1. Выполнены два первых действия (верный результат при указанных данных, верный пример числа, для которого программа выдаёт правильный результат). При этом не существенно, насколько правильно выполнено третье действие.
2. Найдены и исправлены две ошибки в программе, не более чем одна верная строка названа ошибочной. При этом не существенно, насколько правильно выполнены первое и второе действия.
3. Найдена и исправлена одна ошибка в программе, ни одна верная строка не названа ошибочной. При этом не существенно, насколько правильно выполнены первое и второе действия. | 1
Не выполнены условия, позволяющие поставить 1, 2 или 3 балла. | 0
Максимальный балл | 3
🔗 Другие задания линии №24 по предмету Информатика:
ID 33959
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количеств...
ID 33960
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите длину самой длинной по...
ID 33961
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальную длину цеп...
ID 33962
Текстовый файл состоит не более чем из 106 символов A, B и C. Определите максимальное количеств...
ID 33963
Текстовый файл состоит не более чем из 106 символов A, B и C. Определите максимальное количеств...