На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, меньшую 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 < 5 THEN 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 < 5: 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 < 5 то если 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 < 5 then if digit > maxDigit then maxDigit := digit; N := N div 10; end; if maxDigit = 0 then writeln('NO') else writeln(maxDigit) end. Си #include <stdio.h> int main() { int N, digit, maxDigit; scanf("%d", &N); maxDigit = N % 10; while (N > 0) { digit = N % 10; if (digit < 5) 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) укажите, как исправить ошибку, т.е. приведите правильный вариант строки. Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, меньшую 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 < 5 THEN 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 < 5: 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 < 5 то если 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 < 5 then if digit > maxDigit then maxDigit := digit; N := N div 10; end; if maxDigit = 0 then writeln('NO') else writeln(maxDigit) end. Си #include <stdio.h> int main() { int N, digit, maxDigit; scanf("%d", &N); maxDigit = N % 10; while (N > 0) { digit = N % 10; if (digit < 5) 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) укажите, как исправить ошибку, т.е. приведите правильный вариант строки. Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Дайте развернутый ответ.
Похожие задания
- Задание
В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске. Широковещательным адресом называется специализированный адрес, в котором на месте нулей в маске стоят единицы. Адрес сети и широковещательный адрес не могут быть использованы для адресации сетевых устройств. Сеть задана IP-адресом одного из входящих в неё узлов 98.81.154.195 и сетевой маской 255.252.0.0. Найдите наибольший в данной сети IP-адрес, который может быть назначен компьютеру. В ответе укажите найденный IP-адрес без разделителей. Например, если бы найденный адрес был равен 111.22.3.44, то в ответе следовало бы записать 11122344.
- Задание
На рисунке справа схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о протяжённости каждой из этих дорог (в километрах). | П1 | П2 | П3 | П4 | П5 | П6 | П7 П1 | | 15 | 15 | 9 | 7 | | П2 | 15 | | | | | | П3 | 15 | | | 12 | | | 20 П4 | 9 | | 12 | | | 14 | 10 П5 | 7 | | | | | | П6 | | | | 14 | | | П7 | | | 20 | 10 | | | | [рис.] Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите, какова протяжённость дороги из пункта К в пункт Г. В ответе запишите целое число $-$ так, как оно указано в таблице.
- Задание
Для хранения произвольного растрового изображения размером 1024×1024 пикселей отведён 1 Мбайт памяти без учёта размера заголовка файла. Для кодирования цвета каждого пикселя используется одинаковое количество бит, коды пикселей записываются в файл один за другим без промежутков. Какое максимальное количество цветов можно использовать в изображении?
- Задание
На рисунке справа схема дорог N-ского района изображена в виде графа, в таблице содержатся сведения о длинах этих дорог (в километрах). | Номер пункта 1 | 2 | 3 | 4 | 5 | 6 | 7 Номер пункта | 1 | | 45 | | 10 | | | 2 | 45 | | | 40 | | 55 | 3 | | | | | 15 | 60 | 4 | 10 | 40 | | | | 20 | 35 5 | | | 15 | | | 55 | 6 | | 55 | 60 | 20 | 55 | | 45 7 | | | | 35 | | 45 | | [рис.] Так как таблицу и схему рисовали независимо друг от друга, нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите, какова длина дороги из пункта Г в пункт Е. В ответе запишите целое число – так, как оно указано в таблице.
- Задание
Все шестибуквенные слова, составленные из букв Т, Е, О, Р, И, Я, записаны в алфавитном порядке и пронумерованы. Вот начало списка: 1. ЕЕЕЕЕЕ 2. ЕЕЕЕЕИ 3. ЕЕЕЕЕО 4. ЕЕЕЕЕР 5. ЕЕЕЕЕТ 6. ЕЕЕЕЕЯ …… Определите, под каким номером в этом списке стоит первое слово с чётным номером, которое не начинается с букв Е, И или О и при этом содержит в своей записи ровно одну букву Я. Примечание. Слово – последовательность идущих подряд букв, не обязательно осмысленная.