У меня есть этот код:
IF (x>5 AND y=4) THEN dbms_output.put_line("Y"); ELSE dbms_output.put_line("N");
Мой вопрос: как изменить код, если вы не можете использовать AND в качестве оператора, но вместо этого вы должны использовать OR, чтобы иметь ту же логику иполучить тот же результат?
Вы можете использовать закон Деморгана, чтобы переписать его:
NOT (p AND q) == (NOT p) OR (NOT q)
Итак, в вашем случае
IF (x>5 AND y=4) THEN "Y" ELSE "N" IF (x<=5 OR y<>4) THEN "N" ELSE "Y"
Если вы измените строку для чтения следующим образом, она будет работать только с оператором ИЛИ:
IF (x <= 5 OR y! = 4) THEN dbms_output.put_line ("N");ELSE dbms_output.put_line ("Y"); = </p>
Результат тот же, но логика немного другая.
Предполагая, что вам разрешено использовать оператор NOT, вы можете написать это:
x > 5 AND y = 4
As:
NOT (x <= 5 OR y <> 4)
Это соответствует закону Де Моргана:
не (A или B) = не A и не B
Или оператор AND и имеет совершенно другую логику, вы не можете использовать AND в качестве оператора, но вместо этого вы должны использовать OR, чтобы иметь ту же логику и получить тот же результат.