How to simplify these compound logical expression?

1.7k views Asked by At

How to simplify these compound logical expressions?

!((x <= 5) && (y == 10) && (z < 5))  // 1
!(x == 10) || !((y == 5) || (z < 0)) // 2

I have read the rule for simplification, but I am not understanding what to do with ==.

This is from "Programing in ANSI C" written by E Balagurasy While designing decision statements, we often come across a situation where the logical NOT operator is applied to a compound logical expression, like !(x&&y || !z). However,a positive logic is always easy to read and comprehend than a negative logic. In such cases, we may apply what is known as De Morgan's rule to make the total expression positive.The rule is as follows: "Remove the parentheses by applying the NOT operator to every logical expression component, while complementing the relational operators." Example: !(x&&y || !z) becomes !x || !y && z.

1

There are 1 answers

1
Taylor Brandstetter On BEST ANSWER

I'll give you some hints, so as to not do your homework for you:

!(a || b || c) = (!a && !b && !c)

!(a && b && c) = (!a || !b || !c)

!(a == b) = (a != b)

!(a <= b) = (a > b)

You should be able to take it from there.