Visual Basic 2008 9.0 .NET Examples and Ebook
  Home

Introduction to Visual Basic

Arrays

Volgend Onderwerp

Boolean Logical

Vorig Onderwerp

Logical Operators And, Or and Not

|

Logical Disjunction Operator Xor

Volgend Onderwerp
-


Suppose we need to give the sum of two entered values if the first value is not more than 10 and the second value is not less than or equal to 100.

The condition Not value1 > 10 And Not value2 <= 100 can be used.


Module Example1
    Sub Main()
        Console.WriteLine("Value 1 ?")
        Dim value1 As Integer = Console.ReadLine()
        '
        Console.WriteLine("Value 2 ?")
        Dim value2 As Integer = Console.ReadLine()
        '
        If Not value1 > 10 And Not value2 <= 100 Then
            Console.WriteLine("Sum : " & (value1 + value2))
        End If
        '
        Console.ReadLine()
    End Sub
End Module
Download Broncode

Output :

 Value 1 ?
 11
 Value 2 ?
 200

Output :

 Value 1 ?
 9
 Value 2 ?
 200
 Sum : 209

Equal resulting conditional expressions are value1 <= 10 And value2 > 100 and Not (value1 > 10 Or value2 <= 100) ( parentheses are required ).


Module Example2
    Sub Main()
        Console.WriteLine("Value 1 ?")
        Dim value1 As Integer = Console.ReadLine()
        '
        Console.WriteLine("Value 2 ?")
        Dim value2 As Integer = Console.ReadLine()
        '
        If Not (value1 > 10 Or value2 <= 100) Then
            Console.WriteLine("Sum : " & (value1 + value2))
        End If
        '
        Console.ReadLine()
    End Sub
End Module
Download Broncode

Output :

 Value 1 ?
 11
 Value 2 ?
 200

Output :

 Value 1 ?
 9
 Value 2 ?
 200
 Sum : 209

Lets examine some situations to see if both solutions will result in identical behaviour.

Suppose the first value is 11 and the second value is 200. The first value exceeds 10, so no sum may be printed out.


Output :

 Value 1 ?
 11
 Value 2 ?
 200

Not value1 > 10 And Not value2 <= 100 with value1 11 and value2 200 :
= Not 11 > 10 And Not 200 <= 100
= Not True And Not False
= False And True
= False
No sum will be printed out.

Not (value1 > 10 Or value2 <= 100) with value1 11 and value2 200 :
= Not (11 > 10 Or 200 <= 100)
= Not (True Or False)
= Not True
= False
No sum will be printed out.

Suppose the first value is 9 and the second value is 200. In this case the sum may be printed out.


Output :

 Value 1 ?
 9
 Value 2 ?
 200
 Sum : 209

Not value1 > 10 And Not value2 <= 100 with value1 9 and value2 200 :
= Not 9 > 10 And Not 200 <= 100
= Not False And Not False
= True And True
= True
The sum will be printed out.

Not (value1 > 10 Or value2 <= 100) with value1 9 and value2 200 :
= Not (9 > 10 Or 200 <= 100)
= Not (False Or False)
= Not False
= True
The sum will be printed out.

Generally :


 Not X And Not Y =  Not (X Or Y)

And :


 Not X Or Not Y =  Not (X And Y)

These are called the rules of "De Morgan".

These rules can also be proven by following truth table :


 Not X And Not Y =  Not (X Or Y) :

 X     | Y     | Not X | Not Y | X Or Y | Not X And Not Y | Not (X Or Y)
 True  | True  | False | False | True   | False           | False
 True  | False | False | True  | True   | False           | False
 False | True  | True  | False | True   | False           | False
 False | False | True  | True  | False  | True            | True

Last two columns have identical result, so :


 Not X And Not Y =  Not (X Or Y)

For :


 Not X Or Not Y =  Not (X And Y) :

 X     | Y     | Not X | Not Y | X And Y | Not X Or Not Y | Not (X And Y)
 True  | True  | False | False | True    | False          | False
 True  | False | False | True  | False   | True           | True
 False | True  | True  | False | False   | True           | True
 False | False | True  | True  | False   | True           | True

Last two columns have identical result, so :


 Not X Or Not Y =  Not (X And Y)

Beside the rules of De Morgan other rules exist to simplify conditional expressions.


 p And False = False
 p Or False = p
 p And True = p
 p Or True = True
 p And p = p
 p Or p = p
 p And (Not p) = False
 p Or (Not p) = True
 Not (Not p) = p

Commutativity :


 (p And q) = (q And p) -> And is commutative
 (p Or q) = (q Or p)   -> Or is commutative

Distributivity :


 p And (q Or r) = (p And q) Or (p And r) -> And distributes over Or
 p Or (q And r) = (p Or q) And (p Or r)  -> Or distributes over And

Associativity :


 p And (q And r) = (p And q) And r -> And is associative
 p Or (q Or r) = (p Or q) Or r     -> Or is associative

Updated On : 2008-11-06

Download Broncode

Published On : 2008-11-06

Boolean Logical

Vorig Onderwerp

Logical Operators And, Or and Not

|

Logical Disjunction Operator Xor

Volgend Onderwerp

Introduction to Visual Basic

Arrays

Volgend Onderwerp
  Home  
Nederlands
Nederlands

Add to favorites (IE).


No printable version available.