Требовалось написать программу, которая определяет, имеется ли среди введенных с клавиатуры положительных целых чисел а и Ь хотя бы одно четное. Была написана следующая программа: var a, b: integer; begin readln(a, b); a := a mod 2; if a > 0 then b := b mod 2; if b > 0 then writeln ('четных чисел нет') else writeln ('четное число есть'); end. Известно, что программа написана с ошибками. а) приведите пример таких чисел а, b, при которых программа неверно решает поставленную задачу;
Answers & Comments
Ответ:
а) пример чисел, при которых программа неверно решает поставленную задач:
a = 2
b = 4
или
a = 4
b = 3
Объяснение:
условие составлено таким образом, что если в первую переменную a введено число чётное, то чётность второго числа не находится, следовательно переменная b всегда остаётся больше 0 (вводим положительные числа) и происходит вывод на экран сообщения "четных чисел нет"
пример:
a = 2
b = 4
a = a mod 2 = 2 mod 2 = 0
если a > 0
то b = b mod 2 (условие ложное: 0 не больше 0, поэтому действие b = b mod 2 не выполняется, b = 4)
если b > 0
то вывод на экран "четных чисел нет" (условие истинное: 4 больше 0, поэтому действие вывод на экран "четных чисел нет" выполняется)
иначе вывод на экран "четное число есть" (условие истинное: 4 больше 0, поэтому действие вывод на экран "четное число есть" не выполняется)