homeboekenlinksledenabonneer je :Blijf op de hoogte door je te abonneren op de vbvoorbeelden RSS Niews Feed!Blijf op de hoogte door vbvoorbeelden te volgen op Twitter!Blijf op de hoogte door fan te worden van vbvoorbeelden op Facebook!
Visual Basic 2008 en 2010 Voorbeelden en Boeken Microsoft Visual Studio 2010Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

visual basic 2008 voorbeelden en boeken / visual basic 2010 voorbeelden en boeken

3.3. Booleaanse Logica

Print Email Deel op FacebookDeel op TwitterDeel op DiggBookmark op Google BookmarksDeel op del.icio.usOverige Sociale Netwerksites...

Dit artikel is gepubliceerd op woensdag 28 april 2010 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

Veronderstel dat we deze keer slechts de som van twee ingevoerde getallen op de console wensen af te drukken als : het eerste getal niet groter is dan 10 en het tweede getal niet kleiner is of gelijk aan 100.

Letterlijk in code vertaald kunnen we dus volgende samengestelde conditie formuleren : Not value1 > 10 And Not value2 <= 100.
Visual Basic Broncode
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
Visual Basic Output
Value 1 ?
11
Value 2 ?
200
Visual Basic Output
Value 1 ?
9
Value 2 ?
200
Sum : 209
Minder letterlijk ( maar uiteindelijke gelijke samengestelde conditie ) zou als volgt te formuleren zijn : value1 <= 10 And value2 > 100.

Nog een alternatieve formulering zou de volgende zijn :
Not (value1 > 10 Or value2 <= 100), let op : de haakjes zijn hier noodzakelijk :
Visual Basic Broncode
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
Visual Basic Output
Value 1 ?
11
Value 2 ?
200
Visual Basic Output
Value 1 ?
9
Value 2 ?
200
Sum : 209
We kunnen eens verschillende gevallen bekijken om te zien of deze twee samengestelde logische expressies wel identiek zijn.
Neem nu het geval dat value1 11 is en value2 is 200. Gezien men slecht de som mag afdrukken indien zeker al het eerste getal niet groter is dan 10, mag hier dus geen som worden afgedrukt.
Visual Basic Output
Value 1 ?
11
Value 2 ?
200
Bij Not value1 > 10 And Not value2 <= 100 met value1 11 en value2 200 :
= Not 11 > 10 And Not 200 <= 100
= Not True And Not False
= False And True
= False
Dus hier zal inderdaad de som niet worden afgedrukt.

Bij Not (value1 > 10 Or value2 <= 100) met value1 11 en value2 200 :
= Not (11 > 10 Or 200 <= 100)
= Not (True Or False)
= Not True
= False
Ook hier zal de som niet worden afgedrukt.

Laten we veronderstellen dat value1 9 is en value2 200, wat voldoet aan beide voorwaarden, en waarbij de som mag worden gegeven.
Visual Basic Output
Value 1 ?
9
Value 2 ?
200
Sum : 209
Bij Not value1 > 10 And Not value2 <= 100 met value1 9 en value2 200 :
= Not 9 > 10 And Not 200 <= 100
= Not False And Not False
= True And True
= True
De som wordt gegeven.

Bij Not (value1 > 10 Or value2 <= 100) met value1 9 en value2 200 :
= Not (9 > 10 Or 200 <= 100)
= Not (False Or False)
= Not False
= True
Ook hier wordt de som gegeven.

Algemeen gesteld kun je dus zeggen, bij X = conditie 1 en Y = conditie 2 :
Not X And Not Y =  Not (X Or Y)
En ook :
Not X Or Not Y =  Not (X And Y)
Deze worden ook wel de regels van "De Morgan" genoemd.

Aan de hand van een waarheidstabel kunnen we dit ook wel bewijzen :

Voor :
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
De laatste 2 kolommen zijn inderdaad identiek, dus kan je stellen :
Not X And Not Y =  Not (X Or Y)
Voor :
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
Ook hier zijn de laatste 2 kolommen identiek, dus kan je stellen :
Not X Or Not Y =  Not (X And Y)
Naast de regels van "De Morgan" bestaan nog vele andere regels om samengestelde logische uitdrukkingen/expressies te vereenvoudigen. Het valt uiteraard aan te raden ( voor de leesbaarheid ) deze uitdrukkingen zo eenvoudig mogelijk te formuleren :

Enkele triviale regels ( met p als atomaire logische uitdrukkingen ) :
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
Regels omtrent commutativiteit ( met p en q als atomaire logische uitdrukkingen ) :
(p And q) = (q And p) -> And is commutative
(p Or q) = (q Or p)   -> Or is commutative
Regels omtrent distributiviteit ( met p, q en r als atomaire logische uitdrukkingen ) :
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
Regels omtrent associativiteit ( met p, q en r als atomaire logische uitdrukkingen ) :
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

Dit artikel is gepubliceerd op woensdag 28 april 2010 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

Visual Basic 2008 & 2010 Boeken

Het Groene Visual Basic 2008 & 2010 Voorbeelden Boek Het Blauwe Visual Basic 2008 & 2010 Voorbeelden Boek Het Rode Visual Basic 2008 & 2010 Voorbeelden Boek

Bevalt een artikel je, dan kan je de inhoud van vbvoorbeelden ook reclamevrij in boekvorm verkrijgen.

De inhoud is verdeeld over 3 boeken, Het Groene, Het Blauwe en Het Rode Visual Basic 2008 & 2010 Voorbeelden Boek.

Klik hier voor meer informatie.

Berichten

Fast UML Sequence Diagram Editor