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