Compucolor.org – Virtual Media

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