Задача BF9D62
ЕГЭ по информатике · Прочие задания
№ 1350из 1 778После проверки
На обработку поступает натуральное число, не превышающее 10 9. Нужно написать программу, которая выводит на экран максимальную цифру числа, меньшую 5. Если в числе нет цифр, меньших 5, требуется на экран вывести «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.
| Бейсик | Python |
|---|---|
| DIM N, DIGIT, MAXDIGIT AS LONG INPUT N MAXDIGIT = N MOD 10 WHILE N > 0 DIGIT = N MOD 10 IF DIGIT MAXDIGIT THEN MAXDIGIT = DIGIT END IF END IF N = N \ 10 WEND IF MAXDIGIT = 0 THEN PRINT "NO" ELSE PRINT MAXDIGIT END IF | N = int(input()) maxDigit = N % 10 while N > 0: digit = N % 10 if digit maxDigit: maxDigit = digit N = N // 10 if maxDigit == 0: print("NO") else: print(maxDigit) |
| Алгоритмический язык | Паскаль |
|---|---|
| алг нач цел N, digit, maxDigit ввод N maxDigit:= mod(N,10) нц пока N > 0 digit:= mod(N,10) если digit maxDigit то maxDigit:= digit все все N:= div(N,10) кц если maxDigit = 0 то вывод "NO" иначе вывод maxDigit все кон | var N,digit,maxDigit: longint; begin readln(N); maxDigit:= N mod 10; while N > 0 do begin digit:= N mod 10; if digit maxDigit then maxDigit:= digit; N:= N div 10; end; if maxDigit = 0 then writeln('NO') else writeln(maxDigit) end. |
| Си | |
| #include int main() { int N, digit, maxDigit; scanf("%d", &N); maxDigit = N % 10; while (N > 0) { digit = N % 10; if (digit maxDigit) maxDigit = digit; N = N / 10; } if (maxDigit == 0) printf("NO"); else printf("%d",maxDigit); return 0; } |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 137.
2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку
и может быть исправлена без изменения других строк. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.
Достаточно указать ошибки и способ их исправления для одного языка программирования.
Обратите внимание, что требуется найти ошибки в имеющейся программе,
а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Эталонного ответа в открытом банке нет — при нажатии «Проверить» задачу решит ИИ, а правильность попробует подтвердить официальный проверяющий сервис ФИПИ. Если он временно недоступен, ответ не будет оценён, но можно открыть предварительный разбор ИИ. Занимает до минуты.
Источник условия: открытый банк заданий ФИПИ . Доступный разбор подготовлен EduSave; AI-разбор может содержать ошибки и не является официальным решением ФИПИ.
Все задания темы «Прочие задания»