## Boolean Logic in BASIC

From:Michael Current (aa700@cleveland.Freenet.Edu)

Date:01/28/92-10:39:37 PM Z

**Next message by date:**Michael Current: "Clearpic: 1200XL video upgrade"**Previous message by date:**Michael Current: "SuperArc, Disk Communicator"**Return to Index: Sort by:**[ date ] [ author ] [ thread ] [ subject ]

From: aa700@cleveland.Freenet.Edu (Michael Current) Subject: Boolean Logic in BASIC Date: Tue Jan 28 22:39:37 1992 Reprinted from the A.C.E.C. BBS (614)-471-8559 ----------------------------------- Boolean Logic in BASIC ----------------------------------- Boolean logic is a very useful, but often unused, function of most BASIC languages. Boolean logic is a true/false comparison operation. Because it only returns a true or false value, it returns a 1 or a 0. If you enter PRINT 1=1 the computer will print "1" on the screen. Why? Because 1=1 is a true statement. The value 1 does equal the value 1. A true statement is identified by a 1. If you enter PRINT 2=3 the computer will print a "0" on the screen. This is becase 2=3 is NOT a true statement. A false comparison will return a value of 0. You can also make variable assignments with boolean logic. If you say A=1=1 then A=1 because 1=1 would return a 1. A short table might be helpful at this point: Statement Result --------- ------ A=1=1 A=1 A=1=2 A=0 A=2=1 A=0 A=2=2 A=1 This alone is useful in programming but we are allowed to use even more complex boolean logic. Right now we can say A=B=C. But what about A=B=C=D? Or A=B=C=D=E? How does that work? DOES it work? The answer is yes, it does work. Long boolean operations such as this can be confusing unless you break it down. So that is what we will do. A=B=C=D is the same as A=B=(C=D). Lets try a few: B=1, C=1, D=0: A=1=(1=0) so A=1=(0) so A=1=0 so A=0 B=0, C=0, D=0: A=0=(0=0) so A=0=(1) so A=0=1 so A=0 B=0, C=0, D=1: A=0=(0=1) so A=0=(0) so A=0=0 so A=1 It is really simple. Just evaluate the comparison within the paranthesese first, just like a normal problem. In the last example, the comparison in the parans is (0=1). This is a false statement so we can put a 0 in the place of the parans. Still quite easy, right? Now how about A=B=C=D=E? Getting a bit more complex here. What this amounts to is A=B=(C=(D=E)). Let's try a few: B=1, C=0, D=1, E=0: A=1=(0=(1=0))so A=1=(0=0) so A=1=(1) so A=1=1 so A=1 B=0, C=1, D=0, E=1: A=0=(1=(0=1))so A=0=(1=0) so A=0=(0) so A=0=0 so A=1 As you can see, it is a little more complex but the idea is the same. Just do the parans first and then work out to the next set of parans. Again, just like normal math operations: Parans come first. So it is very simple: Statement Equivalent To ------------- --------------------- A=B=C=D A=B=(C=D) A=B=C=D=E A=B=(C=(D=E)) A=B=C=D=E=F A=B=(C=(D=(E=F))) A=B=C=D=E=F=G A=B=(C=(D=(E=(F=G)))) I think you can see the pattern here. It should be noted that while simple boolean logic like A=B=C is useful, complex boolean logic like A=B=C=D=E=F is really too complex to be useful in a real programming enviroment. In most cases there would be an easier, more memory efficient way to accomplish the same thing. But knowing how to use boolean logic will be very useful. Once you have completely mastered it you will find yourself using it often. --Craig Steiner -- Michael Current, Cleveland Free-Net 8-bit Atari SIGOp -->> go atari8 <<-- The Cleveland Free-Net Atari SIG is the Central Atari Information Network Internet: currentm@carleton.edu / UUCP: ...!umn-cs!ccnfld!currentm BITNET: currentm%carleton.edu@interbit / Cleveland Free-Net: aa700

**Next message by date:**Michael Current: "Clearpic: 1200XL video upgrade"**Previous message by date:**Michael Current: "SuperArc, Disk Communicator"

----------------------------------------- Return to message index