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