Part 3 Decisions Subjects covered... CLS, IF, STOP =, <, >, <=, >=, <> All the programs we have seen so far have been pretty predictable - they went straight through the instructions, and then went back to the beginning again. This is not very useful, as in practice, we would want the +3 to make decisions and act accordingly. The instruction to do this in BASIC takes the form... IF something is true (or not true) THEN do something Let's look at an example of this. Use NEW to clear the previous program from the +3, select +3 BASIC, then type in and run this program. (This is clearly meant for two people to play!)... 10 REM Guess the number 20 INPUT "Enter a secret number",a: CLS 30 INPUT "Guess the number",b 40 IF b=a THEN PRINT "That is correct": STOP 50 IF ba THEN PRINT "That is too big, try again" 70 GO TO 30 Note that the CLS command (at the end of line 20) means 'clear the screen'. We have used it in this program to stop the other person seeing the secret number after it is entered. You can see that the IF statement takes the form... IF condition THEN xxx ...where 'xxx' stands for a command (or a sequence of commands separated by colons). The condition is something that is going to be worked out as either true or false - if it comes out as true then the statements in the reset of the line (after THEN) are executed; otherwise they are skipped over, and the program executes the next instruction. The simplest conditions compare two numbers or two strings; they can test whether two numbers are equal or whether one is bigger than the other. They can also test whether two strings are equal, or whether one comes before the other in alphanumerical order. They use the symbols '=', '<', '>', '<=', '>=' and '<>' (these are known as relational operators). = means is equal to. < means is less than. > means is greater than. <= means is less than or equal to. >= means is greater than or equal to. <> means is not equal to. (If you keep getting mixed up about the meanings of '<' and '>', it may help you to remember that the thin end of the symbol points to the number which is supposed to be smaller.) In the program we have just typed in, line 40 compares 'a' and 'b'. If they are equal, then the program is halted by the STOP command. The report at the bottom of the screen... 9 STOP statement, 40:3 ...shows that the 3rd statement (i.e. the STOP command) in line 40 caused the program to halt. Line 50 determines whether 'b' is less than 'a', and line 60 whether 'b' is greater than 'a'. If one of these conditions is true then the appropriate comment is printer, and the program works its way down to line 70 which jumps back to line 30 and starts all over again. Finally, note that in some versions of BASIC (not +3 BASIC) the IF statement can have the form... IF condition THEN line number This means the same as... IF condition THEN GO TO line number ...in +3 BASIC. Exercise... 1. Try this program... 10 LET a=1 20 LET b=1 30 IF a>b THEN PRINT a;" is higher" 40 IF a