10  REM ***  HP TIME-SHARED BASIC PROGRAM LIBRARY  *********************
11  REM
12  REM         TUT03:  TUTOR SERIES BASIC LANGUAGE PROGRAMMING COURSE,
13  REM                 (PART 3 OF 25)
14  REM         36139 (A810) REV A -- 7/71
15  REM
16  REM ***  CONTRIBUTED PROGRAM  **************************************
17  REM
100  GOTO 130
110  PRINT "NOT A VALID CHOICE. ANSWER YES OR NO";
120  RETURN 
130  PRINT "HI! GOOD TO SEE YOU AGAIN. I'M ASSUMING YOU HAVE BEEN THROUGH"
140  PRINT "'TUT01' AND 'TUT02'. YOU HAVE, HAVEN'T YOU";
145  DIM A$[5]
150  INPUT A$
160  PRINT 
170  IF A$="NO" THEN 210
180  IF A$="YES" THEN 350
190  GOSUB 110
200  GOTO 150
210  PRINT "THIS MAY PRESENT SOME DIFFICULTIES, SINCE 'TUT01' AND 'TUT02'"
220  PRINT "SHOULD PRECEED THIS LESSON. WOULDN'T YOU RATHER GO BACK AND"
230  PRINT "TRY THEM FIRST";
240  INPUT A$
250  PRINT 
260  IF A$="YES" THEN 300
270  IF A$="NO" THEN 350
280  GOSUB 110
290  GOTO 240
300  PRINT "THEN WHEN I TYPE 'DONE', YOU TYPE 'GET-$TUT01', AND WHEN I"
310  PRINT "RESPOND WITH A LINE FEED YOU TYPE 'RUN'. BE SURE YOU STRIKE"
320  PRINT "A CARRIAGE RETURN EACH TIME YOU TYPE SOMETHING BACK TO ME."
330  PRINT "SEE YOU LATER. GOOD LUCK!"
340  STOP 
350  PRINT "LETS REVIEW THE EXAMPLE USED IN 'TUT01':"
360  PRINT 
370  PRINT "     9 PRINT''WHAT ARE YOUR VALUES FOR X,Y, AND Z''"
380  PRINT "    10 INPUT X,Y,Z"
390  PRINT "    20 LET R=SQR(X^2+Y^2+Z^2)"
400  PRINT "    30 PRINT''THE RADIUS VECTOR EQUALS''R"
410  PRINT "    35 GO TO 9"
420  PRINT "    40 END"
430  PRINT 
440  PRINT "THIS IS NOW A COMPLETE PROGRAM AND SHOWS YOU HOW TO USE SOME"
450  PRINT "OF THE 'BASIC' LANGUAGE STATEMENTS. BY THE WAY, DID YOU GET A"
460  PRINT "CHANCE TO WRITE A PROGRAM OF YOUR OWN";
470  INPUT A$
480  PRINT 
490  IF A$="NO" THEN 530
500  IF A$="YES" THEN 580
510  GOSUB 110
520  GOTO 470
530  PRINT "THAT'S TOO BAD....IT HELPS ME TO TEACH YOU IF YOU GET A CHANCE"
540  PRINT "TO PRACTICE WITH A PROBLEM THAT IS FAMILIAR TO YOU. BUT WE'LL"
550  PRINT "GET GOING HERE AND YOU CAN TRY SOMETHING ON YOUR OWN AFTER"
560  PRINT "THIS LESSON."
570  GOTO 620
580  PRINT "THAT'S GREAT...I HOPE YOU WERE SUCCESSFUL IN WORKING OUT ANY"
590  PRINT "PROBLEMS THAT AROSE. ACTUALLY PRACTICE IN WRITING PROGRAMS"
600  PRINT "THAT SOLVE SOME OF YOUR OWN PROBLEMS IS THE BEST WAY FOR YOU"
610  PRINT "TO GET FAMILIAR WITH THIS SYSTEM AND ITS LANGUAGE."
620  PRINT 
630  PRINT "NOW, LET'S TAKE A LOOK AT SOME OF THE STATEMENTS WE'VE USED."
640  PRINT "FOR EXAMPLE, WE USED 'X', 'Y', AND 'Z' AS OUR KNOWN VARIABLES"
650  PRINT "AND 'R' AS OUR UNKNOWN VARIABLE. IN THE 'LET' STATEMENT"
660  PRINT "THE UNKNOWN 'R' WAS SET EQUAL TO THE KNOWNS IN AN EXPRESSION."
670  PRINT "THUS WE UNDERSTAND 'EQUATION' TO MEAN:"
680  PRINT 
690  PRINT "   DO THE COMPUTATIONS ON THE RIGHT HAND SIDE OF THE '='"
700  PRINT "   SIGN AND LET THE VARIABLE ON THE LEFT REPRESENT THE"
710  PRINT "   VALUE AFTER THE COMPUTATION IS PERFORMED."
720  PRINT 
730  PRINT "YOU CAN SEE THAT THIS IS NOT AN ALGEBRAIC EQUATION BECAUSE"
740  PRINT "WE CAN TYPE A STATEMENT LIKE:"
750  PRINT 
760  PRINT "       25 LET V=V+1"
770  PRINT 
780  PRINT "THIS STATEMENT SIMPLY MEANS:"
790  PRINT 
800  PRINT "   'TAKE THE PRESENT VALUE OF V AND INCREMENT IT BY 1'"
810  PRINT 
820  PRINT "THERE IS ONE THING YOU SHOULD NOTICE:"
830  PRINT 
840  PRINT "   ALL VARIABLES ARE EITHER ONE LETTER OR ONE LETTER"
850  PRINT "   FOLLOWED BY ONE DIGIT. YOU MAY USE ANY LETTER OF THE"
860  PRINT "   ALPHABET AND ANY DIGIT FROM 0 THRU 9."
870  PRINT 
880  PRINT "LET'S TRY A FEW EXAMPLES AND YOU TELL ME WHICH ONES ARE"
890  PRINT "WRONG:"
895  PRINT 
900  PRINT "     (1) 10 LET X1=R*B^2"
910  PRINT "                                   (TYPE THE NUMBER OF"
920  PRINT "     (2) 10 LET XY=A1+B*3           THE EXAMPLE AND RE-"
930  PRINT "                                    TURN THE CARRIAGE)"
940  PRINT "     (3) 10 LET X9=X^2+Y^3"
950  PRINT 
960  PRINT "WHICH ONE(S) IS/ARE WRONG";
970  PRINT 
980  INPUT C
985  PRINT 
990  IF C=2 THEN 1080
1000  IF C=1 THEN 1040
1010  IF C=3 THEN 1060
1020  PRINT "TRY AGAIN, AND USE 1,2 OR 3 FOR YOUR ANSWER, WHICH IS WRONG";
1030  GOTO 980
1040  PRINT "NO, THIS IS A VALID STATEMENT-TRY AGAIN, WHICH IS WRONG";
1050  GOTO 980
1060  PRINT "NOT QUITE, THIS STATEMENT IS LEGAL. TRY AGAIN; WHICH IS WRONG";
1070  GOTO 980
1080  PRINT "RIGHT. 'XY' IS AN ILLEGAL VARIABLE NAME. NO MORE THAN ONE"
1090  PRINT "LETTER OR ONE LETTER AND ONE DIGIT ALLOWED. LET'S TRY SOME MORE"
1100  PRINT 
1110  PRINT "    (1) 10 LET X1=X1+Z^5"
1115  PRINT "                                  (TYPE THE NUMBER OF"
1120  PRINT "    (2) 10 LET T2=P+Q              YOUR CHOICE AND RE-"
1130  PRINT "                                   TURN THE CARRIAGE)"
1140  PRINT "    (3) 10 LET Y=V11+1"
1150  PRINT 
1160  PRINT "WHICH ONE IS WRONG THIS TIME";
1180  INPUT C
1190  PRINT 
1200  IF C=3 THEN 1290
1210  IF C=2 THEN 1270
1220  IF C=1 THEN 1250
1230  PRINT "PLEASE.....ONLY THE NUMBERS 1,2 OR 3. WHICH";
1240  GOTO 1180
1250  PRINT "NO, THIS IS VALID. X1 WOULD BE INCREMENTED BY 'Z^5'. AGAIN...";
1260  GOTO 1180
1270  PRINT "THIS ONE IS OK - LOOK A LITTLE CLOSER. IT SHOULD BE...";
1280  GOTO 1180
1290  PRINT "THAT'S RIGHT. V11 IS ILLEGAL. YOU CAN'T HAVE MORE THAN ONE"
1300  PRINT "DIGIT FOLLOWING A LETTER."
1310  PRINT 
1320  PRINT "SO FAR, THE FOLLOWING KINDS OF STATEMENTS HAVE BEEN USED:"
1330  PRINT "'PRINT', 'INPUT', 'LET', 'GO TO', AND 'END'. IF YOU ARE"
1340  PRINT "AT ALL UNCERTAIN AS TO HOW ANY OF THESE ARE USED, LOOK ONCE"
1350  PRINT "MORE AT THE PREVIOUS SAMPLE PROBLEM. WHEN YOU ARE POSITIVE"
1360  PRINT "YOU UNDERSTAND, SWITCH TO THE PROGRAM CALLED 'TUT04' TO CON-"
1370  PRINT "TINUE THIS LESSON. I'LL TYPE 'DONE' AND IF YOU'RE READY TO"
1380  PRINT "CONTINUE YOU TYPE 'GET-$TUT04' AND WHEN I RESPOND WITH A LINE"
1390  PRINT "FEED, YOU TYPE 'RUN'. (BE SURE TO RETURN THE CARRIAGE EACH"
1400  PRINT "TIME). SEE YOU LATER!"
1410  END 
