Listing of file='LSN11.BAS;01' on disk='vmedia/BASIC_lessons-sector.ccvf'
10 PLOT 27,1,255,14 20 REM COMPUCOLOR BASIC LESSON 11 30 REM ART GRUSENDORF 60 PLOT 6,35,12,3,15,15,6,24:PRINT " WELCOME TO COMPUCOLR BASIC " 70 PLOT 3,24,20,6,24:PRINT " LESSON 11 " 80 FOR X= 1TO 1000:NEXT X:PLOT 6,3,12 100 PRINT :PRINT "GLAD TO SEE YOU AGAIN. I HOPE YOU HAVE BEEN PRCTICING" 110 PRINT "THE INSTRUCTIONS AS YOU LERN THEM. LEARNING HOW TO PROGRAM" 120 PRINT "WELL IS LIKE MASTERING A FOREIGN LANGUAGE. ONLY REPEATED" 130 PRINT "EXERCISE CAN MAKE YOU PROFICIENT." 140 W= 0 150 PRINT 160 PRINT "BEFORE WE UNDERTAKE ANY NEW WORK, LET'S FIRST REVIEW SOME OF" 170 PRINT "THE BASIC STATEMENTS YOU HAVE PREVIOUSLY BEEN INTRODUCED TO." 180 PRINT 190 PRINT "AN ARITHMETIC FUNCTON MAY BE USED TO AVOID WRITING AN IDENTICAL" 200 PRINT "STATEMENT REPETITIOUSLY. FOR EXAMPLE, YOUR PROGRAM MAY REQUIRE" 210 PRINT "THE FOLLOWING STATEMENTS;" 220 PRINT :PRINT :PLOT 15:INPUT " PRESS 'RETURN'";G:PLOT 14,12 230 PRINT " 120 U=(C1*X^2 + C2*X +C3) * SIN(X)" 240 PRINT " ." 250 PRINT " ." 260 PRINT " 280 V=(C1*X^2 + C2*X + C3)^2" 270 PRINT " ." 280 PRINT " ." 290 PRINT " 370 W=C1*X^2 + C2*X + C3" 300 PRINT :PRINT 310 PRINT "AN EASIER WAY TO DO THIS WOULD BE TO USE THE FUNCTION STATEMENT" 320 PRINT "WHICH OF THE FOLLOWING STATEMENTS WOULD BE INVOLVED" 330 PRINT 340 PRINT " GOTO REM DEF IF...THEN..." 350 PRINT 360 INPUT A$ 370 IF A$= "DEF"THEN 450 380 W= W+ 1 390 PRINT :PRINT "YOU'RE PUTTING ME ON. A FUNCTION MUST BE PRECEDED BY THE" 400 PRINT "SYMBOL DEF, AN ABBREVIATION OF THE WORD DEFINE." 410 PRINT 440 GOTO 460 450 PRINT "RIGHT. " 460 PLOT 15:INPUT " PRESS 'RETURN'";G 470 PLOT 12 480 PRINT :PRINT " YOU WOULD WRITE, FOR EXAMPLE, THE FOLLOWING;" 485 PRINT 490 PRINT " 90 DEF FNR(Q)=C1*Q^2 + C2*Q + C3" 500 PRINT " ." 510 PRINT " ." 520 PRINT " 120 U=FNR(X) * SIN(X)" 530 PRINT " ." 540 PRINT " ." 550 PRINT " 280 V=FNR(Y)^2" 560 PRINT " ." 570 PRINT " ." 580 PRINT " 370 W=FNR(Z)":PRINT 590 PRINT "REMEMBER - A FUNCTION, ALWAYS REQUIRES AN ARGUMENT. IN " 600 PRINT "THE DEFINING STATEMENT (90) THE ARGUMENT IS Q. WHEN USED IN" 610 PRINT "IN THE BODY OF THE PROGRAM, THE CALLED FOR ARGUMENT REPLACES" 620 PRINT "THE DUMMY ARGUMENT Q."; 630 PRINT 640 PRINT "FOR EXAMPLE, IF C1=1, C2=3, AND C3=6, WHAT IS THE VALUE OF" 650 INPUT "FNR(3)? ";Z 660 IF Z= 24THEN 720 690 W= W+ 1 700 PRINT "NO.. WOULD YOU BELEVE 24? (1*9 + 3*3 + 6)" 710 GOTO 730 720 PRINT " VERY GOOD." 730 PRINT 740 PRINT "DID YOU UNDERSTAND THE DIFFERENCE BETWEEN A FUNCTION AND A" 750 PRINT "SUBROUTINE? A SUBROUTINE IS USED TO AVOID WRIRING IDENTICAL" 760 PRINT "GROUPS OF INSTRUCTIONS, WHERE AS A FUNCTION TREATS ONLY A " 770 PRINT "SINGLE LINE." 780 PRINT :PRINT :PRINT :INPUT " PRESS 'RETURN'";G 790 PLOT 12:PRINT 800 PRINT "WHICH OF THE FOLLOWING SYMBOLS DO YOU ASSOCIATE WITH THE" 810 PRINT "USE OF A SUBROUTINE?" 820 PRINT :PRINT " GO TO RETURN NEXT GOSUB END" 830 PRINT :INPUT "TYPE THE TWO COMMANDS SEPARATED BY A COMMA ";B$,D$ 835 PRINT 840 IF B$= "GOSUB"AND D$= "RETURN"THEN 940 880 W= W+ 1 890 IF W= 1THEN 920 900 PRINT "X!*-*!`@`@!!! (THE COMPUCOLOR EQUIVALENT OF TSK TSK" 910 GOTO 950 920 PRINT "SINCE THIS IS YOUR FIRST MISTAKE, I WON'T REPREMAND YOU." 930 GOTO 950 940 PRINT "RIGHT" 950 PRINT 960 PRINT "GOSUB XXX IS AN ABBREVIATED WAY OF INDICATIONG 'GO TO THE" 970 PRINT "SUBROUTINE WHICH STARTS AT LINE NUMBER XXX'. THE RETURN" 980 PRINT "STATEMENT, WHICH SHOULD BE THE LAST STATEMENT IN THE SUBROUTINE" 990 PRINT "IS A SIGNAL THAT WHEN THE SUBROUTINE HAS BEEN EXECUTED, CONTROL" 1000 PRINT "WILL BE SENT BACK TO THE INSTRUCTION FOLLOWING THE GOSUB." 1010 PRINT 1020 PRINT 1030 PRINT "THE FUNCTION AND SUBROUTINE CALLS ARE VERY POWERFUL" 1040 PRINT "INSTRUCTIONS AND SHOULD BE MASTERED." 1050 IF W< 2THEN 1080 1055 PRINT 1060 PRINT "SINCE YOU MISSED ";W;" OF THE ABOVE QUESTIONS PERHAPS YOU " 1070 PRINT "SHOULD REVIEW 'LESSON 9' WHEN YOU ARE THROUGH HERE." 1080 PRINT :INPUT " PRESS 'RETURN'";G 1090 PLOT 12,14:PRINT 1100 PRINT "YOU PROBABLY NOTICED THAT BLANKS WERE INSERTED BETWEEN SOME" 1110 PRINT "OF THE WORDS USED IN THE STATEMENTS. TO IMPROVE LEGIBILITY," 1120 PRINT "BLANKS MAY BE USED FREELY IN ALL STATEMENTS, WITHOUT AFFECTING" 1130 PRINT "THE INTENT OF THE STATEMENT IN ANY WAY, WITH BUT ONE EXECPTION." 1135 PLOT 15 1140 PRINT "WHICH ONE OF THE FOLLOWING EXAMPLES INDICATE WHAT THIS" 1150 PRINT "EXECPTION MIGHT BE?" 1155 PLOT 15:PRINT 1160 PRINT " (1) NEXTN NEXT N" 1165 PRINT 1170 PRINT " (2) DEFFNG(Y)=... DEF FN G(Y) = ..." 1175 PRINT 1180 PRINT " (3) GOTO200 GO TO 200" 1185 PRINT 1190 PRINT " (4) PRINT''RATE='';X PRINT''RATE = '';X" 1195 PRINT 1200 PRINT " (5) INPUTX,Y,Z INPUT X, Y, Z" 1205 PRINT 1210 PRINT " (6) X=2*Y+Z X = 2*Y + Z" 1215 PRINT 1220 PRINT " (7) FORI=1TOK FOR I = 1 TO K" 1225 PRINT 1230 PRINT " (8) END E N D" 1235 PRINT 1240 PRINT " (9) GOSUB1245 GO SUB 1245" 1250 PRINT 1260 PRINT "TYPE IN THE NUMBER OF YOUR CHOICE. "; 1270 INPUT Z 1280 PRINT 1290 PRINT "THIS WAS PRETTY TRICKY."; 1300 IF Z= 4THEN 1330 1310 PRINT "NUMBER FOUR WAS THE CORRECT ANSWER." 1320 GOTO 1340 1330 PRINT "I'M GLAD YOU SPOTTED IT." 1340 INPUT " PRESS 'RETURN'";G:PLOT 12,14 1350 PRINT "IN PRINTING OUT ALPHABETIC MESSAGES, A BLANK IS TREATED AS" 1360 PRINT "ANY OTHER CHARACTER. THIS ALLOWS YOU TO SPACE THE MESSAGE" 1370 PRINT "AS YOU LIKE. HOWEVER, YOU CAN SEE THAT BLANKS CAN BE USED" 1380 PRINT "AT WILL IN ALL OTHER STATEMENTS WHEN WRITING YOUR PROGRAM." 1390 PRINT :PRINT "A WORD OF CAUTION - NO STATEMENT NUMBER MAY INCLUDE BLANKS" 1400 PRINT " EMBEDDED IN THEM. THAT IS, 1 3 2 0 IS NOT TREATED AS 1320" 1410 PRINT " ALSO IF MEMORY IS AT A PREMIUM THE LESS BLANKS THE SMALLER" 1420 PRINT "YOUR PROGRAM WILL BE IN REQUIRED MEMORY." 1430 PRINT :PRINT "REMBER TO USE THE REM, OR REMARK, TO MAKE FOOTNOTES IN " 1440 PRINT "YOUR PROGRAM.":INPUT " PRESS 'RETURN'";G 1445 PLOT 12:PRINT 1450 PRINT :PRINT "THAT'S ALL FOR NOW. CALL IN THE NEXT PORTION OF THIS SEQUEL":PRINT 1460 PRINT "ENTITLED 'LESSON 12', FOR A NEW EXITING ADVENTURE." 1470 PRINT :PRINT :PRINT :PRINT :PLOT 14:INPUT " PRESS 'RETURN'";G 1480 PRINT "TO REVIEW TYPE 1 AND PRESS 'RETURN', TO STOP TYPE 2 AND PRESS" 1490 INPUT "'RETURN', TO GO ON TO LESSON 12 JUST PRESS 'RETURN'";J 1500 IF J= 0THEN LOAD "LSN12":RUN 1510 IF J= 1THEN RUN 1520 END