Listing of file='TTRL4.BAS;01' on disk='vmedia/BASIC_language_1-5-sector.ccvf'
100 REM COPYRIGHT (C) BY COMPUCOLOR 1979 105 REM BY KLH 11/13/79 REV 1.1 110 ADR= 256* PEEK (32941)+ PEEK (32940) 120 POKE ADR+ 41,4:POKE ADR+ 42,4 130 LN= PEEK (ADR+ 44):IF LN< > PEEK (ADR+ 45)OR LN= 0THEN 1000 140 ON LNGOTO 1002,1200 1000 POKE ADR+ 44,1:POKE ADR+ 45,1 1002 PLOT 29,6,2,12,15,27,11,3,10,9:PRINT " MORE STATEMENTS, FEATURES, AND PROGRAMMING 1004 PRINT :PRINT TAB( 5)"UP TO THIS POINT, YOUR PROGRAMS HAVE BEEN SMALL, SIMPLE 1006 PRINT "PROGRAMS THAT USE ONLY PRINT STATEMENTS AND VARIABLES. THEY ALSO 1008 PLOT 28:PRINT "RUN CONSECUTIVELY FROM THE FIRST LINE TO THE LAST. TUTORIAL FOUR 1010 PRINT " WILL DEAL WITH VARIABLES THAT ARE ASSIGNED BY INPUT STATEMENTS 1012 PRINT " AND BY READ-DATA STATEMENTS. THE IF-THEN, IF-GOTO AND GOTO 1014 PRINT " STATEMENTS WILL ALSO BE EXPLAINED. THESE STATEMENTS ALLOW A 1016 PRINT "PROGRAM TO PERFORM VARIOUS TASKS AND GO TO VARIOUS LINES INSTEAD 1018 PLOT 28:PRINT " OF GOING CONSECUTIVELY. LOGICAL AND RELATIONAL OPERATORS THAT 1020 PRINT " MAKE THE COMPUTER DECIDE WHAT TO DO WILL BE DISCUSSED ALSO. 1022 GOSUB 10030 1024 PLOT 3,3,9:PRINT "AN INPUT IS A STATEMENT THAT ASSIGNS TO A VARIABLE A VALUE 1026 PRINT TAB( 6)"ENTERED ,OR TYPED, FROM THE KEYBOARD. THE FORM IS: 1028 PRINT " INPUT [VARIABLE(S)] 1030 PRINT "EACH VARIABLE MUST BE SEPARATED BY A COMMA. AN EXAMPLE WOULD BE: 1032 PLOT 28:PRINT "100 INPUT A,B,C$ 1034 PRINT "THE COMPUTER WILL WAIT AT THE INPUT FOR THE VALUES OF A, B, AND 1036 PRINT "C$ TO BE ENTERED. EACH ENTRY MUST ALSO BE SEPARATED BY A COMMA. 1038 PRINT "WHEN A INPUT IS FOUND, A ? IS PRINTED TO LET THE USER KNOW THAT 1040 PRINT "AN INPUT IS NEEDED. THE PROGRAM WILL NOT CONTINUE UNTIL ALL THE 1042 PRINT "VARIABLES HAVE BEEN ASSIGNED A VALUE. NOTE: A NUMERIC INPUT WILL 1044 PLOT 28:PRINT ,"NOT ACCEPT ANYTHING THAT IS NOT A NUMBER. 1046 GOSUB 10030 1048 PLOT 3,4,10:PRINT "IT IS OFTEN HELPFUL TO INCLUDE A PROMPT WITH AN INPUT. A 1050 PRINT " PROMPT IS JUST A PRINTED STATEMENT THAT TELLS THE USER WHAT IS 1052 PRINT TAB( 17)"NEEDED BY THE INPUT STATEMENT. 1054 PRINT "100 PRINT "CHR$ (34)"THE NUMBER IS"CHR$ (34)";:INPUT A 1056 PRINT "200 INPUT "CHR$ (34)"THE NUMBER IS?"CHR$ (34)";A 1058 PRINT " NOTICE THAT THE PRINTED STATEMENT IN LINE 200 CONTAINS THE ?. 1060 PRINT " AN INPUT CONTAINING A QUOTED STRING DOES NOT PRINT A QUESTION 1062 PRINT " MARK. IF RETURN IS HIT WITHOUT GIVING THE INPUT A VALUE, ZERO 1064 PRINT " IS ASSUMED FOR ALL NUMERIC VARIABLES AND "CHR$ (34)""CHR$ (34)" (NULL) FOR ALL 1066 PRINT TAB( 23)"STRING VARIABLES. 1068 GOSUB 10030 1070 PLOT 3,4,6:PRINT "READ-DATA ARE TWO STATEMENTS USED WITH ONE ANOTHER. DATA 1072 PRINT "STATEMENTS STORE NUMERIC AND STRING VALUES THAT ARE ASSIGNED TO 1074 PRINT " VARIABLES BY READ STATEMENTS. THEY ARE USED IN THE FORM: 1076 PRINT TAB( 22)"DATA [VALUE LIST]":PRINT TAB( 20)"READ [VARIABLE LIST]" 1078 PRINT " READ AND DATA STATEMENTS CAN BE PLACED ANYWHERE IN A PROGRAM. 1080 PRINT " STRINGS DO NOT NEED TO BE ENCLOSED IN QUOTES, BUT IT IS OFTEN 1082 PRINT TAB( 6)"NECESSARY IF YOU WISH TO PLACE A SPACE BETWEEN WORDS. 1084 PRINT TAB( 4)"ALL DATA MUST BE IN THE PROPER ORDER BEFORE ASSIGNING IT 1086 PRINT ,,,"TO THE VARIABLES. 1088 PRINT TAB( 26)"FOR EXAMPLE: 1090 PRINT "100 READ A,B,C$: PRINT A,B,C$ 1092 PRINT "200 DATA 17,-9.5,"CHR$ (34)"TUTORIAL"CHR$ (34)"" 1094 PRINT TAB( 27)"WILL PRINT 1096 PRINT " 17 -9.5 TUTORIAL 1098 PRINT "IF THERE IS NO DATA FOR A READ STATEMENT TO STORE, YOU GET THIS: 1100 PLOT 28:PRINT "OD ERROR IN [LINE NUMBER]":PRINT "READY" 1102 PRINT " THIS TELLS YOU THE COMPUTER RAN OUT OF DATA IN [LINE NUMBER]. 1104 GOSUB 10030 1106 PRINT " DATA IN A DATA STATEMENT CAN BE RE-USED. THIS IS DONE WITH THE 1108 PRINT TAB( 5)"RESTORE STATEMENT. A RESTORE STATEMENT IS IN THE FORM: 1110 PRINT TAB( 21)"RESTORE [LINE NUMBER] 1112 PRINT " A LINE NUMBER IS DEFINED BY THE RESTORE STATEMENT. ALL DATA 1114 PRINT " STATEMENTS FROM THAT LINE TO THE END OF THE PROGRAM WILL BE 1116 PRINT TAB( 7)"RESTORED SO THEY CAN BE USED BY THE READ STATEMENT. 1118 PRINT :PRINT " NOW IT'S TIME FOR YOU TO TRY SOME MORE PROGRAMMING. TRY USING 1120 PRINT " THE INPUT AND READ-DATA STATEMENTS, ALONG WITH THE OTHER 1122 PRINT " STATEMENTS YOU HAVE LEARNED SO FAR. WHEN YOU'RE READY, 1124 PRINT TAB( 18)"HIT AUTO AND WE'LL GO ON. 1126 POKE ADR+ 44,2:POKE ADR+ 45,2:GOTO 1456 1200 PLOT 6,2,12,3,0,8 1202 PRINT " A PROGRAM DOES NOT HAVE TO RUN SEQUENTIALLY, FROM FIRST TO 1204 PRINT " LAST LINE. A GOTO STATEMENT CAN BE USED TO GO TO ANY DESIRED 1206 PRINT TAB( 5)"LINE IN A PROGRAM. THE GOTO STATEMENT IS IN THE FORM: 1208 PRINT TAB( 23)"GOTO [LINE NUMBER] 1210 PRINT "WHEN A GOTO STATEMENT IS FOUND, THE PROGRAM WILL CONTINUE AT THE 1212 PLOT 28:PRINT " LINE NUMBER SPECIFIED. GOTO STATEMENTS SHOULD BE PLACED AT THE 1214 PRINT " END OF MULTIPLE LINE STATEMENTS, AS ANY STATEMENTS AFTER THEM 1216 PRINT "WILL NOT BE EXECUTED. AN EXAMPLE OF THE GOTO STATEMENT WOULD BE: 1220 PRINT "100 A= 5:GOTO 300 1222 PRINT "200 PRINT A* A 1224 PRINT "300 PRINT A;"CHR$ (34)" (THIS IS LINE 300)"CHR$ (34)"" 1226 PRINT TAB( 21)"THE PROGRAM WOULD PRINT 1228 PRINT " 5 (THIS IS LINE 300) 1230 GOSUB 10030 1232 PLOT 3,0,8:PRINT "HOWEVER, THE GOTO STATEMENT ISN'T VERY USEFUL BY ITSELF. THIS IS 1234 PLOT 28:PRINT " WHY RELATIONAL OPERATORS ARE IMPORTANT. WITH THEM THE COMPUTER 1236 PRINT TAB( 6)"CAN BE GIVEN A CHOICE OF WHAT TO DO AND WHERE TO GO. 1238 PRINT " MATH SYMBOL BASIC SYMBOL EXAMPLE","MEANING 1240 PRINT ,"=",,"="," A=B"," A IS EQUAL TO B 1242 PRINT :PRINT ,"<",,"<"," A<B"," A IS LESS THAN B":PRINT 1244 PRINT ,"< e",,"<=, =<"," A<=B"," A IS LESS THAN":PRINT ,,,,," OR EQUAL TO B 1246 PRINT ,">",,">"," A>B"," A IS GREATER":PRINT ,,,,," THAN B 1248 PRINT ,"> e",,"=>, >="," A=>B"," A IS GREATER THAN":PRINT ,,,,," OR EQUAL TO B 1250 PRINT ,"= WITH SLASH","<>, ><"," A<>B"," A IS NOT EQUAL TO B 1252 PLOT 28:GOSUB 10030 1254 PLOT 3,1,3:PRINT "STRING VARIABLES ARE ALSO COMPARED IN MUCH THE SAME WAY. EACH 1256 PRINT "CHARACTER HAS A NUMERIC VALUE, CALLED AN ASCII VALUE. THESE ARE 1258 PRINT "LISTED IN YOUR MANUAL. IN A RELATIONAL OPERATION THE TWO STRINGS 1260 PLOT 28:PRINT " ARE COMPARED ONE CHARACTER AT A TIME UNTIL TWO CHARACTERS ARE 1262 PRINT " UNEQUAL. THE STRING CONTAINING THE CHARACTER WITH THE LOWER 1264 PRINT TAB( 11)"ASCII VALUE IS LESS THAN THE OTHER STRING. 1266 PRINT ,"OPERATOR","EXAMPLE",,"MEANING 1268 PRINT ," =",," A$=B$"," THE STRINGS A$ AND B$ ARE":PRINT ,,,," EQUAL 1270 PRINT ," <",," A$<B$"," THE STRING A$ PRECEDES B$ 1272 PRINT :PRINT ," <=, =<",," A$<=B$"," THE STRING A$ PRECEDES OR":PRINT ,,,," IS EQUAL TO B$ 1274 PRINT ," >",," A$>B$"," THE STRING A$ FOLLOWS B$ 1276 PRINT :PRINT ," =>, >=",," A$=>B$"," THE STRING A$ FOLLOWS OR":PRINT ,,,," IS EQUAL TO B$ 1278 PRINT ," <>",," A$<>B$"," THE STRINGS A$ AND B$ ARE":PRINT ,,,," NOT EQUAL 1280 PRINT " SO, IF A$="CHR$ (34)"AB&"CHR$ (34)" AND B$="CHR$ (34)"ABD"CHR$ (34)", A$<B$ BECAUSE & IS LESS THAN D IN 1282 PLOT 28:PRINT TAB( 5)"ASCII VALUE. THIS MAKES ALPHABETIZING ITEMS VERY EASY. 1284 PRINT " WHEN THE CONDITION OF A RELATIONAL OPERATOR IS TRUE, IT HAS A 1286 PRINT TAB( 13)"VALUE OF -1: IF FALSE, ITS VALUE IS 0. 1288 GOSUB 10030 1290 PLOT 3,2,8:PRINT "ANOTHER KIND OF OPERATOR IS THE LOGICAL OPERATOR. THESE THREE 1292 PRINT " OPERATORS ALSO PERFORM COMPARISONS. THEY ARE AND, OR, AND NOT. 1294 PRINT ,,"THEIR COMPARISONS WORK LIKE THIS: 1296 PRINT ,"OPERATOR EXAMPLE",," MEANING 1298 PRINT ," AND"," A=5 AND B<>7",,"A MUST EQUAL 5 AND":PRINT ,,,,," B MUST NOT EQUAL 7 1300 PRINT ," OR"," A=5 OR B<>7",,"A MUST EQUAL 5 OR":PRINT ,,,,," B MUST NOT EQUAL 7 1302 PRINT ," NOT"," NOT (A=5)",,"TAKES THE OPPOSITE OF":PRINT ,,,,," A [-(A)] AND ADDS -1 1304 PRINT :PRINT " THE VALUE OF THE COMPARISON IS THE SAME AS FOR RELATIONAL 1306 PRINT TAB( 12)"OPERATORS: -1 FOR TRUE AND 0 FOR FALSE. 1308 PRINT :PRINT TAB( 4)"NOW YOU KNOW THE OPERATORS: LET'S LEARN HOW TO USE THEM. 1310 GOSUB 10030 1312 PLOT 3,3,7:PRINT "SUPPOSE YOU WANT A CERTAIN PART OF A PROGRAM TO BE RUN ONLY 1314 PRINT " WHEN THE VARIABLE X IS GREATER THAN 5. HOW WOULD YOU TELL THE 1316 PRINT " COMPUTER TO DO THIS? THAT IS WHAT THE IF-THEN AND IF-GOTO 1318 PRINT " STATEMENT IS USED FOR. THE STATEMENTS ARE USED IN THE FORM: 1320 PRINT :PRINT TAB( 14)"IF [EXPRESSION] THEN <[LINE NUMBER] 1322 PRINT TAB( 37)"[STATEMENT] 1324 PRINT :PRINT TAB( 14)"IF [EXPRESSION] GOTO [LINE NUMBER] 1326 PRINT " EXPRESSION IS AN ARITHMETIC EXPRESSION OR OPERATOR COMPARING 1328 PRINT TAB( 4)"TWO OR MORE EXPRESSIONS. THE IF-THEN STATEMENT CAN EITHER 1330 PRINT " PERFORM A STATEMENT OR GO TO A LINE NUMBER: THE IF-GOTO WILL 1332 PRINT " ONLY GO TO A LINE NUMBER. BOTH OF THESE STATEMENTS WILL BE 1334 PRINT " EXECUTED IF THE EXPRESSION IS TRUE. IF IT IS FALSE, THE 1336 PRINT " PROGRAM WILL CONTINUE WITH THE NEXT LINE - IT WILL NOT DO ANY 1338 PRINT TAB( 6)"STATEMENTS ON THE LINE AFTER THE IF-THEN OR IF-GOTO. 1340 GOSUB 10030 1342 PLOT 3,2,8:PRINT "NOW YOU CAN TELL THE COMPUTER TO SKIP THAT SECTION WHEN X IS 1344 PRINT TAB( 21)"NOT GREATER THAN FIVE: 1346 PRINT "100 IF X<= 5 THEN 300 1348 PRINT "200 PRINT "CHR$ (34)"X IS GREATER THAN FIVE"CHR$ (34)" 1350 PRINT "300 PRINT X 1352 PRINT " WHEN X IS LESS THAN OR EQUAL TO FIVE, THE EXPRESSION IN LINE 1354 PRINT " 100 IS TRUE, SO THE IF-THEN IS EXECUTED. IF X IS GREATER THAN 1356 PRINT "FIVE THE EXPRESSION IS FALSE, AND THE PROGRAM GOES ON TO LINE 1358 PRINT " 200 (AND SO THE SPECIAL PORTION IS RUN ONLY WHEN DESIRED). 1360 PRINT TAB( 12)"THE IF-GOTO WOULD WORK IN THE SAME WAY. 1362 PRINT " LINE 100 CAN BE CHANGED TO TELL THAT X IS LESS THAN OR EQUAL 1364 PRINT " TO FIVE BY CHANGING THEN 300 TO THEN PRINT "CHR$ (34)"X IS NOT GREATER 1366 PRINT "THAN FIVE"CHR$ (34)":GOTO 300. THIS IS AN EXAMPLE OF THE SECOND TYPE OF 1368 PRINT TAB( 7)"IF-THEN STATEMENT, AND THE USE OF A GOTO STATEMENT. 1370 GOSUB 10030 1442 PRINT :PRINT TAB( 4)"THIS CONCLUDES TUTORIAL FOUR. DO YOU WISH TO REVIEW THIS 1444 INPUT " LESSON (YES/NO)? ";ZZ$:GOSUB 10000:IF LEFT$ (ZZ$,1)= "Y"THEN 1002:REM 1446 IF LEFT$ (ZZ$,1)< > "N"THEN PLOT 28,11:GOTO 1444 1448 PRINT :PRINT TAB( 5)"EXPERIMENT SOME WITH WHAT YOU HAVE LEARNED IN THIS LESSON. 1450 PRINT "WHEN YOU ARE READY TO GO TO TUTORIAL FIVE HIT THE AUTO KEY. 1452 POKE ADR+ 41,5:POKE ADR+ 42,5:POKE ADR+ 44,0:POKE ADR+ 45,0:PLOT 27,11 1454 PRINT :PRINT "HAVE FUN!" 1456 POKE 33434,0:POKE 33435,0:POKE 33436,0:END 10000 IF ZZ$= "M"THEN LOAD "MENU":RUN 1000 10010 IF PEEK (33278)< > 1THEN RETURN 10020 PLOT 1 10030 PRINT :INPUT " HIT RETURN TO CONTINUE: ";ZZ$:PLOT 12:GOTO 10000