10  REM ***  HP TIME-SHARED BASIC PROGRAM LIBRARY  *********************
11  REM
12  REM         TUT07:  TUTOR SERIES BASIC LANGUAGE PROGRAMMING COURSE,
13  REM                 (PART 7 OF 25)
14  REM         36139 (A810) REV A -- 7/71
15  REM
16  REM ***  CONTRIBUTED PROGRAM  **************************************
17  REM
100  GOTO 130
110  PRINT "NO SUCH CHOICE, LET'S TRY AGAIN - WHICH ONE";
120  RETURN 
130  PRINT "FOR A LOOP, WE NEED SPECIAL MACHINE INSTRUCTIONS, WHAT FORM"
140  PRINT "THESE TAKE DEPENDS ON HOW THE COMPUTER IS TOLD THE NUMBER OF"
150  PRINT "NECESSARY ITERATIONS, IT MAY BE ASKED TO DECIDE THIS, WHICH"
160  PRINT "MEANS THAT 'DECISION-MAKING' CAN ENTER INTO THE LOOP PROCESS."
170  PRINT 
180  PRINT "IN THE PROGRAM FOR COMPUTING RADIUS VECTORS, THE COMPUTER MADE"
190  PRINT "A DECISION AS TO HOW MANY RADIUS VECTORS TO COMPUTE, BASED ON"
200  PRINT "THE AMOUNT OF DATA PROVIDED.  THERE ARE MANY REASONS WHY SUCH A"
210  PRINT "MEANS OF DECISION-MAKING IS IMPRACTICAL FOR ORDINARY PURPOSES,"
220  PRINT "FOR ONE THING, YOU MAY NOT WANT TO USE ALL OF THE DATA FOR A"
230  PRINT "PARTICULAR 'RUN', OTHER REASONS WILL SUGGEST THEMSELVES."
240  PRINT 
250  PRINT "ORDINARY DECISION-MAKING IS DONE BY MEANS OF ONE OF THESE FOUR"
260  PRINT "CODE WORDS: (1) 'NEXT', (2) 'THEN', (3) 'IF', OR (4) 'FOR'."
270  PRINT "WHICH DO YOU THINK IT MIGHT BE (USE THE NUMBER OF THE CHOICE,"
280  PRINT "FOLLOWING MY QUESTION MARK)..";
290  INPUT Q
300  PRINT 
310  IF Q <= 4 THEN 340
320  GOSUB 110
330  GOTO 290
340  IF Q=3 THEN 370
350  PRINT "THIS IS USED FOR SOMETHING ELSE, TRY AGAIN, WHICH ONE";
360  GOTO 290
370  PRINT "YOU'RE RIGHT, 'IF' WARNS THE COMPUTER THAT IT IS TO MAKE A"
380  PRINT "CHOICE, BASED ON A GIVEN CONDITION, OF COURSE SINCE A COMPUTER"
390  PRINT "CAN'T ACTUALLY THINK (ALMOST BUT NOT QUITE) IT NEEDS ANOTHER"
400  PRINT "CODE WORD TO TELL IT HOW TO MAKE THE CHOICE.  THAT OTHER WORD"
410  PRINT "IS ALSO ONE OF THOSE FOUR LISTED ABOVE.  WHICH DO YOU SUGGEST"
420  PRINT "IT MIGHT BE (REMEMBER - SINCE YOU'VE ALREADY PICKED '3' FOR"
430  PRINT "THE FIRST QUESTION, IT COULDN'T BE THE RIGHT CHOICE HERE)..";
440  INPUT J
450  PRINT 
460  IF J=2 THEN 490
470  PRINT "YOU SHOULD HAVE TYPED '2', BECAUSE 'THEN' IS THE WORD THAT"
480  GOTO 500
490  PRINT "VERY GOOD. AND TO EXPLAIN: THE WORD 'THEN' IS THE ONE THAT"
500  PRINT "CONDITIONALLY (I.E., DEPENDING ON SOME CONDITION) 'CLUES' THE"
510  PRINT "MACHINE AS TO JUST WHAT STATEMENT (IDENTIFIED BY LINE NUMBER)"
520  PRINT "IS TO BE USED NEXT IN THE PROGRAM. 'IF' AND 'THEN' ARE COMBINED"
530  PRINT "IN A PARTICULAR WAY.  ONE OF THE FOLLOWING IS THE CORRECT FORM:"
550  PRINT 
560  PRINT "     (1) IF X=4 THEN 35583     (3) IF X EQUALS 4 THEN 35583"
570  PRINT 
580  PRINT "     (2) IF X THEN 25          (4) IF X IS 4 THEN 35583"
590  PRINT 
600  PRINT "PICK THE ONE (NUMBER OF CHOICE) WHICH SEEMS CORRECT, WHICH ONE";
610  INPUT L
620  PRINT 
630  IF L=1 THEN 730
640  IF L=2 THEN 710
650  IF L=3 THEN 690
660  IF L=4 THEN 690
670  GOSUB 110
680  GOTO 610
690  PRINT "NO, BUT YOU HAVE THE RIGHT IDES, SO WHICH MUST IT BE";
700  GOTO 610
710  PRINT "THIS DOESN'T ACTUALLY PUT ANY CONDITION ON 'X', WHICH OTHER ONE";
720  GOTO 610
730  PRINT "YOU FIGURED THAT ONE OUT, THE '=' SYMBOL, RATHER THAN THE WORD"
740  PRINT "'EQUALS' IS NECESSARY, AND 'X=4' PUTS A CONDITION ON 'X'.  THE"
750  PRINT "'35583' IS A LEGIMATE LINE NUMBER, SINCE ANY LINE NUMBER"
760  PRINT "THROUGH 99999 IS ACCEPTABLE.  THE COMPUTER WILL TRANSFER CONTROL"
770  PRINT "TO LINE 35583 ONLY IF 'X' IS EXACTLY 4; OTHERWISE IT WILL"
780  PRINT "IGNORE THE INSTRUCTION AND CONTINUE WITH THE NEXT ONE."
785  PRINT 
790  PRINT "LET'S PLAY A MATCHING GAME WITH THE FOLLOWING:"
800  PRINT 
810  PRINT "     (A) 'IS EQUAL TO'                (1) >      (6) <>"
820  PRINT "     (B) 'IS NOT EQUAL TO'                (2) =>     (7) >="
830  PRINT "     (C) 'IS LESS THAN'                   (3) ><     (8) <"
840  PRINT "     (D) 'IS GREATER THAN'                (4) <=     (9) =<"
850  PRINT "     (E) 'IS LESS THAN OR EQUAL TO'     (5) ="
860  PRINT "     (F) 'IS GREATER THAN OR EQUAL TO'"
870  PRINT 
880  PRINT "THE THREE SYMBOLS '=', '<', AND '>', SHOWN ALONE AND IN VARIOUS"
890  PRINT "COMBINATIONS IN THE CHOICES (1) THROUGH (9), GIVE CONDITIONAL"
900  PRINT "CONTROL TO THE 'IF' STATEMENT.  SIX OF THE CHOICES HAVE MEANINGS"
910  PRINT "GIVEN BY THE LETTER-IDENTIFIED LIST (A) THROUGH (F).  NOW"
920  PRINT "SEE IF YOU CAN MATCH THE SYMBOLS WITH THE MEANINGS."
930  PRINT "DECIDE WHAT SEQUENCE OF NUMBER CHOICES AGREE WITH THE LETTER"
940  PRINT "DEQUENCE, AND TYPE THOSE SIX NUMBERS SEPARATED BY COMMAS (FOR"
950  PRINT "INSTANCE, IF YOU WERE TO SELECT THE FIRST 6 IN ORDER, YOU WOULD"
960  PRINT "TYPE THEM AS: 1,2,3,4,5,6), WHAT'S YOUR ANSWER..";
970  INPUT A,B,C,D,E,F
980  PRINT 
990  IF A <> 5 THEN 1080
1000  IF B <> 6 THEN 1080
1010  IF C <> 8 THEN 1080
1015  IF D <> 1 THEN 1080
1020  IF E <> 4 THEN 1080
1040  IF F <> 7 THEN 1080
1060  PRINT "NICE GOING - YOU GOT IT COMPLETELY RIGHT, SO NOW REMEMBER THAT"
1070  GOTO 1160
1080  PRINT "WON'T WORK, IF YOU WANT ME TO TELL YOU, TYPE '1' - IF YOU WANT"
1090  PRINT "TO TRY AGAIN, TYPE ANY OTHER NUMBER, WHAT'S YOUR PLEASURE";
1100  INPUT G
1110  PRINT 
1120  IF G=1 THEN 1150
1130  PRINT "OK....THEN WHAT DO YOU THINK THE COMBINATION IS";
1140  GOTO 970
1150  PRINT "WELL, YOU SHOULD HAVE HAD 5,6,8,1,4,7 IN THAT ORDER, YOU SEE,"
1160  PRINT "'=' MEANS 'IS EQUAL TO', '<>' MEANS 'IS NOT EQUAL TO', '<'"
1170  PRINT "MEANS 'IS LESS THAN', '>' MEANS 'IS GREATER THAN', '<=' MEANS"
1180  PRINT "'IS LESS THAN OR EQUAL TO', AND '>=' MEANS 'IS GREATER THAN OR"
1190  PRINT "EQUAL TO'.  THE TWO SYMBOLS NOT USED ABOVE ARE INVALID."
1200  PRINT 
1250  PRINT "NOW THAT YOU UNDERSTAND 'IF' AND 'THEN', LET'S SEE HOW WE CAN"
1300  PRINT "USE THEM TO CONTROL ITERATION.  THIS WILL BE AN 'IF' LOOP, AND"
1400  PRINT "THE COMPUTER WILL DECIDE THE NUMBER OF TIMES WE GO THROUGH IT."
1600  PRINT "WE'LL TAKE A LOOK AT AN EXAMPLE OF THIS AND WORK OUT A USABLE"
1700  PRINT "SOLUTION, BUT FIRST WE'LL NEED TO CALL IN A DIFFERENT PROGRAM"
1800  PRINT "FROM THE LIBRARY.  YOU SHOULD BE GETTING GOOD AT CALLING THESE"
1900  PRINT "IN BY NOW, THIS ONE IS 'TUT08' - SO CALL IT AND WE-LOOP."
2000  END 
