На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, кратную 3. Если в числе нет цифр, кратных 3, требуется на экран вывести «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования. Напоминание: 0 делится на любое натуральное число. Бейсик | Python DIM N, DIGIT, MAXDIGIT AS LONG INPUT N MAXDIGIT = N MOD 10 WHILE N > 0 DIGIT = N MOD 10 IF DIGIT MOD 3 = 0 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 % 3 == 0: if digit > maxDigit: maxDigit = digit N = N // 10 if maxDigit == 0: print("NO") else: print(maxDigit) Паскаль | Алгоритмический язык var N,digit,maxDigit: longint; begin readln(N); maxDigit := N mod 10; while N > 0 do begin digit := N mod 10; if digit mod 3 = 0 then if digit > maxDigit then maxDigit := digit; N := N div 10; end; if maxDigit = 0 then writeln('NO') else writeln(maxDigit) end. | алг нач цел N, digit, maxDigit ввод N maxDigit := mod(N,10) нц пока N > 0 digit := mod(N,10) если mod(digit, 3) = 0 то если digit > maxDigit то maxDigit := digit все все N := div(N,10) кц если maxDigit = 0 то вывод "NO" иначе вывод maxDigit все кон Си++ #include <iostream> using namespace std; int main() { int N, digit, maxDigit; cin >> N; maxDigit = N % 10; while (N > 0) { digit = N % 10; if (digit % 3 == 0) if (digit > maxDigit) maxDigit = digit; N = N / 10; } if (maxDigit == 0) cout Последовательно выполните следующее. 1. Напишите, что выведет эта программа при вводе числа 134. 2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ. 3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки: 1) выпишите строку, в которой сделана ошибка; 2) укажите, как исправить ошибку, т. е. приведите правильный вариант строки. Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Средний уровеньЗадание

На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, кратную 3. Если в числе нет цифр, кратных 3, требуется на экран вывести «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования. Напоминание: 0 делится на любое натуральное число. Бейсик | Python DIM N, DIGIT, MAXDIGIT AS LONG INPUT N MAXDIGIT = N MOD 10 WHILE N > 0     DIGIT = N MOD 10     IF DIGIT MOD 3 = 0 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 % 3 == 0:         if digit > maxDigit:             maxDigit = digit     N = N // 10 if maxDigit == 0:     print("NO") else:     print(maxDigit) Паскаль | Алгоритмический язык var N,digit,maxDigit: longint; begin     readln(N);     maxDigit := N mod 10;     while N > 0 do     begin         digit := N mod 10;         if digit mod 3 = 0 then             if digit > maxDigit then                 maxDigit := digit;         N := N div 10;     end;     if maxDigit = 0 then         writeln('NO')     else         writeln(maxDigit) end. | алг нач     цел N, digit, maxDigit     ввод N     maxDigit := mod(N,10)     нц пока N > 0         digit := mod(N,10)             если mod(digit, 3) = 0 то             если digit > maxDigit то                 maxDigit := digit             все         все         N := div(N,10)     кц     если maxDigit = 0 то         вывод "NO"     иначе         вывод maxDigit     все кон Си++ #include <iostream> using namespace std; int main() {     int N, digit, maxDigit;     cin >> N;     maxDigit = N % 10;     while (N > 0)     {         digit = N % 10;         if (digit % 3 == 0)             if (digit > maxDigit)                 maxDigit = digit;         N = N / 10;     }     if (maxDigit == 0)         cout Последовательно выполните следующее. 1.  Напишите, что выведет эта программа при вводе числа 134. 2.  Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ. 3.  Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки: 1)  выпишите строку, в которой сделана ошибка; 2)  укажите, как исправить ошибку, т. е. приведите правильный вариант строки. Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Похожие задания