×
  • 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. Программа на обработку массива
  • Спасибо за внимание
  • Условие задачи

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

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

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





    Комментарии