comp-think/2018-2019

Lecture "Programming languages", exercise 1

Opened this issue ยท 18 comments

What is the boolean value of not (not True or False and True) or False?

not (not True or False and True) or False
not (False or False) or False
not False or False
True or False
True

Not true or false and true= false and true= false

Not (false)= true

True or false= true

not (not True or False and True) or False
not (False or Flase and True) or False
not (False and True) or False
not (False) or False
True or False = True

Rules to keep in mind:

Order of operations (without counting brackets):

  1. not
  2. and
  3. or

False and True = False
True and False = False
False or True = True
True or False = True

Then:

not (not True or False and True) or False
since not True = False --> not (False or False and True) or False
since False and True = False -> not (False or False) or False
since False or False = False --> not (False) or False
since not False = True --> True or False
since True or False = True --> True

True!

not (not True or False and True) or False?-->
not (False or False and True) or False-->
not (False or False) or False-->
not False or False-->
True or False = True

True

not (not True or False and True) or False
not (False or False and True) or False
not (False or False) or False
not False or False
True or False
True

not (not True or False and True) or False
not (False or False and True) or False
not (False or False) or False
not False or False
True or False
True

ex 1 programming languages

In round brackets the rules are:

  • and is the first operation, the result is the first value of the operation or

No brackets:
First - not operation
Second - and operation
Third - remaining or operations

Therefore, the boolean value of not (not True or False and True) or False is:
not (not True or False) or False
not (False) or False
True or False
True

not (not true or false and true) or false
not (false or false and true ) or false
not (flase or false) or false
not (false) or false
true or false
true

not (not true or false and true) or false

  • I phase: (do the "not" inside brackets)
    not (false or false and true) or false
  • II phase: (do the And inside brackets)
    not (false or false) or flase
  • III phase: (do the or inside brackets)
  • not false or false
  • IV phase: (do "not")
  • true or false
  • V (do final "or"):
    True
  1. not (not True or False and True) or False
  2. not (False or False and True) or False
  3. not (False or False) or False
  4. True or False
  5. True

First of all we need to execute operations in round branches and, in particular, not True. Then we resolve the and operator. Then the not False and, finally, the or operator.

What is the boolean value of not (not True or False and True) or False?

not (not True or False and True) or False
not (False or False) or False
not False or False
True or False
True

{not[(not true) or (false and true)]} or false
{not[false or (false and true)]} or false
{not[false or false]} or false
{not false} or false
true or false
true

TRUE

not (not True or False and True) or False
not (False or False and True) or False
not (False or False) or False
not (False) or False
True or False => True

not (not true or false and true) or false
not (false or false and true) or false
not (false or false) or false
not (false) or false
not false or false
true or false
true

Hi all,

Thanks for all the answers! Some comments: it is important, in these cases, to clarify in which order the passages have been executed, in particular for the part not True or False and True. In this case the paggages should be (between "**" the operation that is considered every time):

**not** True or False and True -->
False or False **and** True -->
False **or** False -->
False

While using another way for executing the operation can result in the same final outputs, it is important to use the right order. For instance, the following approach (exchanging the way the boolean operators are commonly considered) is wrong even if the final result is correct:

not True **or** False and True -->
not True **and** True -->
**not** True -->
False