|
|
 |
|
|
|
|
|
|
|
|
Visual Basic 2008 9.0 .NET Examples and Ebook
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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) |
| 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) |
| 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 |
| (p And q) = (q And p) -> And is commutative
(p Or q) = (q Or p) -> Or is commutative |
| 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 |
| 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|