Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится максимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бейсик | Паскаль
DIM N AS LONG
INPUT N
max_digit = 9
WHILE N >= 10
digit = N MOD 10
IF digit > max_digit THEN
max_digit = digit
END IF
N = N \ 10
WEND
PRINT max_digit
END
|
var N: longint;
digit, max_digit: integer;
begin
readln(N);
max_digit := 9;
while N >= 10 do
begin
digit := N mod 10;
if digit > max_digit then
max_digit := digit;
N := N div 10;
end;
writeln(max_digit);
end.
Си++ | Алгоритмический
#include <iostream>
using namespace std;
int main()
{
long int N;
int digit, max_digit;
cin >> N;
max_digit = 9;
while (N >= 10)
{
digit = N % 10;
if (digit > max_digit)
max_digit = digit;
N = N /10;
}
cout « max_digit « endl;
}
|
алг
нач
цел N, digit, max_digit
ввод N
max_digit := 9
нц пока N >= 10
digit := mod(N, 10)
если digit > max_digit то
max_digit := digit
все
N := div(N, 10)
кц
вывод max_digit
кон
Python
n = int(input())
max_digit = 9
while n >= 10:
digit = n % 10
if digit > max_digit:
max_digit = digit
n //= 10
print(max_digit)
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 423.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, — приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Бейсик | Паскаль
DIM N AS LONG
INPUT N
max_digit = 9
WHILE N >= 10
digit = N MOD 10
IF digit > max_digit THEN
max_digit = digit
END IF
N = N \ 10
WEND
PRINT max_digit
END
|
var N: longint;
digit, max_digit: integer;
begin
readln(N);
max_digit := 9;
while N >= 10 do
begin
digit := N mod 10;
if digit > max_digit then
max_digit := digit;
N := N div 10;
end;
writeln(max_digit);
end.
Си++ | Алгоритмический
#include <iostream>
using namespace std;
int main()
{
long int N;
int digit, max_digit;
cin >> N;
max_digit = 9;
while (N >= 10)
{
digit = N % 10;
if (digit > max_digit)
max_digit = digit;
N = N /10;
}
cout « max_digit « endl;
}
|
алг
нач
цел N, digit, max_digit
ввод N
max_digit := 9
нц пока N >= 10
digit := mod(N, 10)
если digit > max_digit то
max_digit := digit
все
N := div(N, 10)
кц
вывод max_digit
кон
Python
n = int(input())
max_digit = 9
while n >= 10:
digit = n % 10
if digit > max_digit:
max_digit = digit
n //= 10
print(max_digit)
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 423.
2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, — приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
💡 Пошаговый разбор и решение:
Содержание верного ответа (допускаются иные формулировки ответа, не искажающие его смысла)
Решение использует запись программы на Паскале. Допускается использование программы на трёх других языках.
1. Программа выведет число 9.
2. Первая ошибка. Неверная инициализация ответа (переменная max_digit).
Строка с ошибкой:
max_digit := 9;
Возможные варианты исправления:
max_digit := 0;
Возможны и другие исправления инициализации, например на отрицательное число, в том числе -maxint.
3. Вторая ошибка. Неверное условие продолжения цикла.
Программа не будет рассматривать старшую цифру числа.
Строка с ошибкой:
while N >= 10 do
Возможные варианты исправления:
while (N >= 1) do
или
while (N > 0) do
При этом замены на
while (N > 1) do или while (N >= 0) do
корректными не являются
Обратите внимание! В задаче требовалось выполнить три действия: указать, что выведет программа при конкретном входном значении, и исправить две ошибки.
Баллы за данное задание начисляются как сумма баллов за верное выполнение каждого действия (ниже указано, какое действие считается выполненным).
1. Верно указано, что именно выведет программа при указанных в условии входных данных.
2. Указана и верно исправлена ошибка инициализации (не обязательно с упоминанием этого термина).
3. Указано на неверное условие продолжения цикла, и оно исправлено на верное.
Каждый из п. 2 и 3 считается выполненным, если:
а) правильно указана строка с ошибкой;
б) указан такой новый вариант строки, что при исправлении второй ошибки получается правильная программа
Решение использует запись программы на Паскале. Допускается использование программы на трёх других языках.
1. Программа выведет число 9.
2. Первая ошибка. Неверная инициализация ответа (переменная max_digit).
Строка с ошибкой:
max_digit := 9;
Возможные варианты исправления:
max_digit := 0;
Возможны и другие исправления инициализации, например на отрицательное число, в том числе -maxint.
3. Вторая ошибка. Неверное условие продолжения цикла.
Программа не будет рассматривать старшую цифру числа.
Строка с ошибкой:
while N >= 10 do
Возможные варианты исправления:
while (N >= 1) do
или
while (N > 0) do
При этом замены на
while (N > 1) do или while (N >= 0) do
корректными не являются
Обратите внимание! В задаче требовалось выполнить три действия: указать, что выведет программа при конкретном входном значении, и исправить две ошибки.
Баллы за данное задание начисляются как сумма баллов за верное выполнение каждого действия (ниже указано, какое действие считается выполненным).
1. Верно указано, что именно выведет программа при указанных в условии входных данных.
2. Указана и верно исправлена ошибка инициализации (не обязательно с упоминанием этого термина).
3. Указано на неверное условие продолжения цикла, и оно исправлено на верное.
Каждый из п. 2 и 3 считается выполненным, если:
а) правильно указана строка с ошибкой;
б) указан такой новый вариант строки, что при исправлении второй ошибки получается правильная программа
📚 Похожие разобранные задания по предмету:
ID 30652 • Задание №7
Для групповых операций с файлами используются маски имён файлов. Маска представляет собой последовательность б...
ID 30889 • Задание №8
Все 4-буквенные слова, составленные из букв В, Л, Т, У, записаны в алфавитном порядке и пронумерованы.
Вот на...
Официальные критерии проверки ФИПИ:
Критерии проверки:
Критерии оценивания выполнения задания | Баллы
Правильно выполнены все пункты задания. Программа после исправлений для всех натуральных чисел N, не превосходящих 109 верно определяет максимальную цифру. В работе (во фрагментах программ) допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора решения | 3
1. Правильно выполнены два действия из трёх (исправлены обе ошибки, но в п. 1 задания ответ неверный или отсутствует, или выполнен п. 1, и верно исправлена только одна ошибка). Верное указание на ошибку при её неверном исправлении при этом не засчитывается.
2. Или выполнен п. 1, а вместо указания на ошибки в программе и их исправления приведён новый верный текст решения, возможно, совершенно непохожий на исходный.
3. Или правильно выполнены все действия(приведён верный ответ на вопрос 1, и исправлены обе ошибки), но в текст программы внесены и другие изменения, приводящие к её неверной работе | 2
Правильно выполнено только одно действие из трёх, то есть либо только выполнен п. 1, либо он не выполнен или выполнен неверно и верно исправлена только одна ошибка программы путём её явного указания и исправления | 1
Все пункты задания выполнены неверно (ответ на п. 1 не приведён или приведён неверно; ошибки не найдены или найдены, но не исправлены или исправлены неверно) | 0
Максимальный балл | 3
Критерии оценивания выполнения задания | Баллы
Правильно выполнены все пункты задания. Программа после исправлений для всех натуральных чисел N, не превосходящих 109 верно определяет максимальную цифру. В работе (во фрагментах программ) допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора решения | 3
1. Правильно выполнены два действия из трёх (исправлены обе ошибки, но в п. 1 задания ответ неверный или отсутствует, или выполнен п. 1, и верно исправлена только одна ошибка). Верное указание на ошибку при её неверном исправлении при этом не засчитывается.
2. Или выполнен п. 1, а вместо указания на ошибки в программе и их исправления приведён новый верный текст решения, возможно, совершенно непохожий на исходный.
3. Или правильно выполнены все действия(приведён верный ответ на вопрос 1, и исправлены обе ошибки), но в текст программы внесены и другие изменения, приводящие к её неверной работе | 2
Правильно выполнено только одно действие из трёх, то есть либо только выполнен п. 1, либо он не выполнен или выполнен неверно и верно исправлена только одна ошибка программы путём её явного указания и исправления | 1
Все пункты задания выполнены неверно (ответ на п. 1 не приведён или приведён неверно; ошибки не найдены или найдены, но не исправлены или исправлены неверно) | 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. Определите максимальное количеств...