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

Сложный уровеньРазвёрнутый ответ

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

Дайте развернутый ответ.

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