10  REM ***  HP TIME-SHARED BASIC PROGRAM LIBRARY  *********************
11  REM
12  REM         TUT01:  TUTOR SERIES BASIC LANGUAGE PROGRAMMING COURSE,
13  REM                 (PART 1 OF 25)
14  REM         36139 (A810) REV A -- 7/71
15  REM
16  REM ***  CONTRIBUTED PROGRAM  **************************************
17  REM
100  LET Q=0
110  LET R=0
120  PRINT "WELCOME TO THE HEWLETT-PACKARD T/S SYSTEM. WE WILL"
130  PRINT "TRY TO TEACH YOU ENOUGH ABOUT THE SYSTEM IN THIS SITTING FOR"
140  PRINT "YOU TO BE ABLE TO WRITE YOUR OWN COMPUTER PROGRAMS"
150  PRINT 
160  PRINT "BEFORE WE CAN WRITE A PROGRAM WE NEED TO REVIEW THE SYMBOLS"
170  PRINT "AVAILABLE"
180  PRINT 
190  PRINT "  (1) +"
200  PRINT "  (2)  -"
210  PRINT "  (3)   /"
220  PRINT "  (4)    *"
230  PRINT "  (5)     ()"
240  PRINT "  (6)       ^"
250  PRINT 
260  PRINT "AFTER THE ? BELOW TYPE THE NUMBER OF YOUR ANSWER"
270  PRINT 
280  PRINT "WHICH OF THE SYMBOLS IS USED FOR ADDITION";
290  LET Q=Q+1
300  INPUT C
310  IF C=1 THEN 430
320  IF C=2 THEN 410
330  IF C=3 THEN 390
340  IF C>3 THEN 370
350  PRINT "TYPE THE NUMBER OF YOUR SYMBOL,NOT THE SYMBOL"
360  GOTO 280
370  PRINT "SORRY, GUESS AGAIN"
380  GOTO 280
390  PRINT "NO, ONCE AGAIN"
400  GOTO 280
410  PRINT "YOU DON'T MEAN THAT"
420  GOTO 280
430  PRINT "GOOD"
440  LET R=R+1
450  PRINT "WHICH SYMBOL IS USED FOR SUBTRACTION";
460  INPUT D
470  LET Q=Q+1
480  IF D>3 THEN 530
490  IF D=3 THEN 580
500  IF D=2 THEN 550
510  PRINT "COME ON NOW, YOU TOLD ME THAT SYMBOL WAS FOR ADDITION, SO.."
520  GOTO 450
530  PRINT "PLEASE GUESS AGAIN"
540  GOTO 450
550  PRINT "RIGHT"
560  LET R=R+1
570  GOTO 600
580  PRINT "YOU CAN'T BE SERIOUS"
590  GOTO 530
600  PRINT "WHICH SYMBOL IS USED FOR DIVISION";
610  INPUT E
620  LET Q=Q+1
630  IF E=3 THEN 710
640  IF E>3 THEN 690
650  IF E<0 THEN 690
660  PRINT "YOU MUST NOT HAVE BEEN LOOKING AT WHICH KEY YOU HIT, WE'VE"
670  PRINT "ALREADY USED THIS CHOICE, ....ONCE AGAIN"
680  GOTO 600
690  PRINT "TRY AGAIN"
700  GOTO 600
710  PRINT "GOOD FOR YOU. NOW, THE NEXT ONE IS TRICKY."
720  LET R=R+1
730  PRINT "WHICH SYMBOL IS USED FOR MULTIPLICATION";
740  INPUT F
750  LET Q=Q+1
760  IF F=1 THEN 280
770  IF F=2 THEN 410
780  IF F=3 THEN 580
790  IF F=4 THEN 850
800  IF F=5 THEN 830
810  IF F=6 THEN 830
820  GOTO 730
830  PRINT "NO , THIS WILL BE EXPLAINED LATER, AGAIN"
840  GOTO 730
850  PRINT "VERY GOOD, IF 'X' WERE USED FOR MULTIPLY, IT COULD BE"
860  PRINT "CONFUSED WITH THE VARIABLE 'X'. LETS PRACTICE A LITTLE:"
870  LET R=R+1
880  PRINT "HOW MUCH IS 2*3";
890  INPUT G
900  LET Q=Q+1
910  IF G=6 THEN 940
920  PRINT "NO, REMEMBER THIS * MEANS MULTIPLY"
930  GOTO 880
940  PRINT "SURE"
950  LET R=R+1
960  PRINT "HOW MUCH IS 3*4+7";
970  INPUT H
980  LET Q=Q+1
990  IF H=19 THEN 1050
1000  IF H=33 THEN 1030
1010  PRINT "SORRY, LOOK AGAIN"
1020  GOTO 960
1030  PRINT "NO, MULTIPLICATIONS ALWAYS PRECEED ADDITIONS:"
1040  GOTO 960
1050  PRINT "RIGHT YOU ARE"
1060  LET R=R+1
1070  PRINT "HOW MUCH IS 3*(1+5)/2";
1080  INPUT I
1090  LET Q=Q+1
1100  IF I=9 THEN 1130
1110  PRINT "NO, OPERATIONS WITHIN () PRECEED OTHERS"
1120  GOTO 1070
1130  PRINT "GOOD"
1140  LET R=R+1
1150  PRINT "THAT LEAVES ^ WHICH IS OUR WAY TO INDICATE SQUARES,CUBES"
1160  PRINT "ETC., SUCH AS X^2 FOR 'X SQUARED' OR X*X, Y^3 FOR 'Y CUBED"
1170  PRINT "OR Y*Y*Y ETC."
1180  PRINT "YOU CAN EVEN DEFINE YOUR OWN,BUT THESE WILL BE COVERED"
1190  PRINT "IN ANOTHER LESSON. WE'LL USE SQR(SQUARE ROOT) IN OUR"
1200  PRINT "COMING EXAMPLE TO GIVE YOU THE IDEA. LET'S ASSUME"
1210  PRINT "YOU WANT TO COMPOSE A PROGRAM TO COMPUTE RADIUS VECTORS"
1220  PRINT "(THE SQUARE ROOT OF THE SUM OF THE SQUARES OF THE "
1230  PRINT "THREE COMPONENTS). THIS PROBLEM WILL BE A SEQUENCE OF"
1240  PRINT "STATEMENTS TO TELL THE COMPUTER WHAT TO DO."
1250  PRINT "DO YOU THINK THE STATEMENTS SHOULD BE NUMBERED:"
1260  PRINT " (1) CONSECUTIVELY (1,2,3 ETC.)"
1270  PRINT " (2) INCREMENTALLY (10,20,30 ETC.)"
1280  PRINT " (3) ANY SEQUENCE FOR IT DOESN'T MATTER"
1290  PRINT "(TYPE NO. OF ANSWER)"
1300  INPUT J
1310  LET Q=Q+1
1320  IF J=2 THEN 1360
1330  PRINT "WELL,THE COMPUTER DOESN'T CARE SINCE IT SIMPLY WILL DO"
1340  PRINT "THEM IN SEQUENTIAL ORDER WHEN IT RUNS YOUR PROGRAM,HOWEVER"
1350  GOTO 1380
1360  PRINT "RIGHT"
1370  LET R=R+1
1380  PRINT "LEAVING SPACE BETWEEN NUMBERS PERMITS INSERTIONS LATER."
1390  PRINT "FOR OUR SAMPLE PROGRAM, LETS FIRST CALL FOR OUR KNOWN"
1400  PRINT "VARIABLES. WE SIMPLY TYPE:"
1410  PRINT 
1420  PRINT "10 INPUT X,Y,Z"
1430  PRINT 
1440  PRINT "10 IS SIMPLY THE FIRST STATEMENT NUMBER. X, Y, AND Z ARE"
1450  PRINT "OUR 'DATA'. NEXT, WE WRITE OUR EQUATION BY TYPING:"
1460  PRINT "20 LET R=SQR(X^2+Y^2+Z^2)"
1470  PRINT 
1480  PRINT "HERE 20 IS THE NEXT STATEMENT NUMBER, 'LET' TELLS THE"
1490  PRINT "COMPUTER THAT AN EQUATION IS COMING, AND 'R' IS OUR"
1500  PRINT "UNKNOWN VARIABLE. NOTE:UNKNOWNS MUST BE ON THE "
1510  PRINT "LEFT OF THE '=' AND KNOWNS ARE ON THE RIGHT. SQR IS"
1520  PRINT "THE SQUARE ROOT FUNCTION MENTIONED EARLIER. THE REST IS"
1530  PRINT "TELETYPE ALGEBRA. FROM THIS POINT ON 'R' CAN BE TREATED AS"
1540  PRINT "A KNOWN IN OTHER EQUATIONS. IN THIS EXAMPLE WE'LL TELL THE"
1550  PRINT "COMPUTER TO PRINT THE VALUE OF 'R' BY TYPING THE STATEMENT"
1560  PRINT 
1570  PRINT "30 PRINT R"
1580  PRINT 
1590  PRINT "WHICH WILL CAUSE THE COMPUTER TO DO JUST THAT. NOW WE ADD"
1600  PRINT "AN 'END' STATEMENT AND THIS IS OUR COMPLETE PROGRAM"
1610  PRINT 
1620  PRINT "10 INPUT X,Y,Z"
1630  PRINT "20 LET R=SQR(X^2+Y^2+Z^2)"
1640  PRINT "30 PRINT R"
1650  PRINT "40 END"
1660  PRINT 
1670  PRINT "WHEN 'RUN' IS TYPED, THE PROGRAM WILL CALL FOR THE VALUES"
1680  PRINT "OF X,Y,Z WITH A QUESTION MARK."
1690  PRINT "  (TRY IT. TYPE ANY THREE NUMBERS SEPARATED BY COMMAS.)"
1700  INPUT X,Y,Z
1710  PRINT SQR(X^2+Y^2+Z^2);" (THIS IS YOUR RADIUS VECTOR)"
1720  PRINT "WELL, THE HARD PART IS OVER AND NOW THE FUN BEGINS. BY THE"
1730  PRINT "WAY, YOU HAVE ANSWERED"R"CORRECTLY OUT OF"Q"QUESTIONS."
1740  PRINT "IN ORDER TO CONTINUE WHAT WE HAVE BEGUN, IT WILL BE"
1750  PRINT "NECESSARY TO REQUEST ANOTHER PROGRAM FROM ME. TO"
1760  PRINT "DO THIS, TYPE 'GET-$TUT02'. WHEN I RESPOND WITH A LINE FEED"
1770  PRINT "TYPE 'RUN' AND I'LL MEET YOU THERE."
1780  PRINT "LAST ONE THERE IS A HUMAN!! GOOD LUCK."
1790  END 
