10  REM ***  HP TIME-SHARED BASIC PROGRAM LIBRARY  *********************
11  REM
12  REM         TUT04:  TUTOR SERIES BASIC LANGUAGE PROGRAMMING COURSE,
13  REM                 (PART 4 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. TRY AGAIN. WHICH";
120  RETURN 
130  PRINT "HELLO AGAIN. LET'S HAVE A QUICK REVIEW. USE THIS CODE:"
140  PRINT 
150  PRINT "    1=PRINT; 2=INPUT; 3=LET; 4=GO TO; 5=END"
160  PRINT 
170  PRINT "WHICH OF THE ABOVE IS USED FOR ARITHMETIC OPERATIONS";
180  INPUT L
190  PRINT 
200  IF L=3 THEN 240
210  IF L <= 5 THEN 260
220  GOSUB 110
230  GOTO 180
240  PRINT "VERY GOOD. WHICH ONE ALWAYS PRODUCES A QUESTION MARK";
250  GOTO 280
260  PRINT "GOOD TRY......BUT IT ISN'T RIGHT. ONCE MORE...";
270  GOTO 180
280  INPUT M
290  PRINT 
300  IF M=2 THEN 360
310  IF M <= 5 THEN 340
320  GOSUB 110
330  GOTO 280
340  PRINT "TAKE A 5-SECOND BREAK AND TRY AGAIN. IT SHOULD BE...";
350  GOTO 280
360  PRINT "EXCELLENT! YOU SEEM TO KNOW THEM. NOW LET US LOOK AT SOME"
400  PRINT "ADDITIONAL KINDS OF STATEMENTS AND SEE HOW TO USE THEM. FIRST"
410  PRINT "WE'LL LOOK AT 'READ' AND 'DATA', WHICH MUST BOTH BE USED IF"
420  PRINT "EITHER ONE IS USED."
430  PRINT 
440  PRINT "WHICH ANSWER WOULD YOU PICK FOR THE FOLLOWING QUESTION?"
450  PRINT "     (USE 1=LET, 2=INPUT, 3=GO TO, OR 4=PRINT)"
451  PRINT 
452  PRINT "'READ' IS SOMETHING LIKE WHICH ONE";
455  INPUT R
460  PRINT 
470  IF R <= 4 THEN 520
500  GOSUB 110
510  GOTO 455
520  IF R=2 THEN 550
530  PRINT "WRONG CHOICE. TRY AGAIN. WHICH ONE";
540  GOTO 455
550  PRINT "THAT'S CORRECT. IN BOTH CASES INFORMATION IS BEING PUT INTO"
560  PRINT "THE COMPUTER. THE DIFFERENCE (NOTE THIS) IS WHEN IT IS TO BE"
570  PRINT "ENTERED. FOR THE 'INPUT' INSTRUCTION, THE COMPUTER RECEIVES"
580  PRINT "INFORMATION WHILE THE PROGRAM IS BEING EXECUTED; THE"
590  PRINT "TELETYPE STOPS AND WAITS FOR THE ENTRY. ON THE OTHER HAND,"
600  PRINT "THE 'READ' STATEMENT REQUIRES THAT THE INFORMATION (DATA)"
610  PRINT "BE ALREADY AVAILABLE IN THE COMPUTER'S MEMORY. NOW DO YOU"
620  PRINT "SEE WHERE THE 'DATA' STATEMENT COMES IN?"
630  PRINT 
640  PRINT "WHEN THE COMPUTER IS INSTRUCTED TO 'READ', IT IMMEDIATELY"
650  PRINT "LOOKS FOR THE 'DATA' STATEMENT. THE WORD 'READ' MUST BE"
660  PRINT "FOLLOWED BY THE NAME OR NAMES OF WHAT THE COMPUTER IS TO READ."
670  PRINT "THE ACTUAL NUMERICAL VALUES WILL BE FOUND AFTER THE WORD"
680  PRINT "'DATA' SO, OF COURSE, YOU MUST SEE THAT THEY ARE THERE."
690  PRINT 
700  PRINT "NOW LET'S RETURN TO OUR RADIUS VECTOR PROBLEM.  INSTEAD OF"
710  PRINT "USING STATEMENTS 9 AND 10, LET'S SAY:"
720  PRINT 
730  PRINT "     11 READ X, Y, Z"
740  PRINT 
750  PRINT "     12 DATA 3, 4, 12"
760  PRINT 
770  PRINT "STUDY THE ABOVE TWO STATEMENTS CAREFULLY. NOTICE WHERE THE"
780  PRINT "COMMAS ARE (COMMAS ARE VERY IMPORTANT IN COMPUTER DIRECTIONS."
790  PRINT "YOU MUST NEVER LEAVE ONE OUT OR PUT ONE IN WHERE IT DOES NOT"
800  PRINT "BELONG).  WHAT DO YOU THINK THE VALUE OF 'X' IS";
810  INPUT X
815  PRINT 
820  IF X=3 THEN 910
830  IF X=4 THEN 880
840  IF X=12 THEN 880
850  PRINT "NO - YOU SEE IT HAS TO BE ONE OF THE NUMBERS FOLLOWING THE"
860  PRINT "'DATA' STATEMENT. TRY AGAIN. 'X' IS";
870  GOTO 810
880  PRINT "THAT'S A GOOD TRY. YOU CHOSE ONE OF THE NUMBERS FOLLOWING"
890  PRINT "'DATA', BUT NOT THE RIGHT ONE. ONCE MORE: X=";
900  GOTO 810
910  PRINT "A PERFECT CHOICE. AND WHAT IS Z";
920  INPUT Z
925  PRINT 
930  IF Z=12 THEN 970
940  PRINT "NO, THAT'S NOT CORRECT. STUDY THE STATEMENTS AGAIN ALONG WITH"
950  PRINT "YOUR PREVIOUS ANSWER CONCERNING X AND TRY AGAIN. Z=";
960  GOTO 920
970  PRINT "RIGHT AGAIN. YOU NOW HAVE MASTERED THE FUNDAMENTALS OF"
980  PRINT "THESE TWO TYPES OF STATEMENTS."
981  PRINT 
985  PRINT "LET US CONSIDER ONE MORE THING ABOUT 'DATA' - YOU ARE ALLOWED"
990  PRINT "TO HAVE MORE THAN ONE DATA 'SET' WITH THE DATA STATEMENT. "
1000  PRINT "FOR INSTANCE, IF WE WANTED TO DETERMINE TWO RADIUS VECTORS"
1010  PRINT "INSTEAD OF ONE, WE COULD REPLACE STATEMENT 12 WITH:"
1020  PRINT 
1030  PRINT "     12 DATA 3, 4, 12, 8, 15, 11"
1040  PRINT " "
1050  PRINT "THIS STATEMENT CONTAINS TWO X'S, TWO Y'S, AND TWO Z'S."
1060  PRINT "EACH OF THESE HAS BEEN INCLUDED IN STATEMENT 12 ABOVE. WHICH"
1070  PRINT "DO YOU THINK IS THE SECOND Y: THE '8', THE '15', OR THE '11'";
1080  INPUT Y
1085  PRINT 
1090  IF Y=15 THEN 1180
1100  IF Y=8 THEN 1150
1110  IF Y=11 THEN 1150
1120  GOSUB 110
1140  GOTO 1080
1150  PRINT "NO. TAKE ANOTHER LOOK AT THE FIRST SET OF DATA. NOW WHICH"
1160  PRINT "ONE DO YOU THINK IT IS";
1170  GOTO 1080
1180  PRINT "THAT IS CORRECT. ALSO, THE SECOND X IS 8 AND THE SECOND Z"
1190  PRINT "IS 11. SO FAR SO GOOD."
1200  PRINT 
1210  PRINT "HOWEVER, THE COMPUTER WON'T AUTOMATICALLY READ BOTH SETS"
1220  PRINT "UNLESS IT IS SOMEHOW DIRECTED TO USE THE READ STATEMENT TWICE."
1230  PRINT "USE 1=PRINT, 2=GO TO, 3=LET, AND 4=INPUT, AND DECIDE WHICH OF"
1240  PRINT "THESE COULD MAKE IT READ MORE THAN ONE SET OF DATA. WHICH";
1250  INPUT K
1255  PRINT 
1260  IF K <= 4 THEN 1300
1270  GOSUB 110
1280  GOTO 1250
1300  IF K=2 THEN 1350
1310  PRINT "NO, NOT THAT ONE. AGAIN. WHICH";
1320  GOTO 1250
1330  PRINT "THAT'S NOT A PERMISSIBLE CHOICE - TRY AGAIN. WHICH OF"
1340  GOTO 1240
1350  PRINT "YOU'RE DOING FINE. THIS ENDS THE 'TUT04' PART OF YOUR"
1360  PRINT "LESSON. NOW CALL THE PROGRAM 'TUT05' (USE THE SAME METHOD"
1370  PRINT "YOU USED TO CALL 'TUT04') AND CONTINUE YOUR STUDY."
1380  PRINT "GOOD LUCK."
1390  END 
