×
  • 1. Системы счисления
  • 2. Логические функции
  • 3. Анализ информационных моделей
  • 4. Файловая система и базы данных
  • 5. Кодирование и декодирование. Условие Фано
  • 6. Выполнение и анализ простых алгоритмов
  • 7. Адресация в электронных таблицах
  • 8. Анализ программ с циклами
  • 9. Скорость передачи, объем памяти, время передачи
  • 10. Кодирование, комбинаторика
  • 11. Рекурсивные алгоритмы
  • 12. Адресация в сетях TCP/IP
  • 13. Вычисление количества информации
  • 14. Анализ и выполнение алгоритмов для исполнителя
  • 15. Поиск путей в графе
  • 16. Позиционные системы счисления
  • 17. Запросы в поисковых системах
  • 18. Логические выражения и множества
  • 19. Анализ программы по работе с массивом
  • 20. Анализ программ с циклами
  • 21. Анализ программ с циклами и подпрограммами
  • 22. Динамическое программирование
  • 23. Системы логических уравнений
  • 24. Исправление фрагмента программы и ошибок
  • 25. Программа на обработку массива
  • Спасибо за внимание
  • Разбор задачи № 24. Исправление фрагмента программы и ошибок

    Теория по задаче

    Разбор текущей задачи
    Обход цифр числа Python
    Деление нацело и деление по остатку Python

    Условие задачи

    508) На вход программы поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, меньшую 5. Если в числе нет цифр, меньших 5, требуется на экран вывести «NO». В приведённой программе есть ошибки.

    N = int(input())
    m = N % 10
    while N > 0:
      d = N % 10
      if d < 5:
        if d > m:
          m = d
      N = N // 10
    if m == 0:
       print('NO')
    else:
       print(m)
    var 
     N: longint;
     d, m:integer;
    begin
     readln(N);
     m := N mod 10;
     while N > 0 do begin
       d := N mod 10;
       if d < 5 then
         if d > m then m := d;
       N := N div 10;
     end;
     if m = 0 then 
        writeln('NO')
     else 
        writeln( m )
    end.
    #include <iostream>
    using namespace std;
    int main() {
      long N;
      int d, m;
      cin >> N;
      m = N % 10;
      while (N > 0) {
        d = N % 10;
        if (d<5) {
          if (d>m) m=d;
        }
        N = N / 10;
      }
      if (m==0) 
        cout << "NO" << endl;
      else
        cout << m << endl;
    }

    Последовательно выполните следующее:
    1. Напишите, что выведет эта программа при вводе числа 157.
    2. Укажите наибольшее трёхзначное значение входной переменной n, при вводе которого программа выведет правильный ответ.
    3. Найдите в программе все ошибки