Compucolor.org – Virtual Media

Listing of file='LSNO8.BAS;01' on disk='vmedia/BASIC_lessons-sector.ccvf'

10 PLOT 27,1,255,14
20 REM  LESSON 8
30 REM  ART GRUSENDORF
60 PLOT 6,35,12,3,15,12,6,24:PRINT " WELCOME TO COMPUCOLOR BASIC "
70 PLOT 3,24,18,6,24:PRINT " LESSON 8 "
80 FOR X= 1TO 1000:NEXT X:PLOT 6,3,12
85 PRINT :PRINT :PRINT :PRINT :PRINT :PRINT
90 PRINT :PRINT "WELCOME BACK! IN LESSON 7, THE IF/THEN STATEMENT WAS DISCUSSED."
95 PRINT "WE ARE NOW READY TO DISCUSS LOOPS."
115 PRINT
120 PRINT "LET'S CONSIDER AN EXAMPLE:"
125 FOR X= 1TO 3500:NEXT X:PLOT 12,15
130 PRINT "REQUIRED: TO COMPUTE SUCCESSIVE VALUES OF THE EXPRESSION"
140 PRINT "U*(U+1)^2 FOR INCREASING VALUES OF U, BUT LIMITING THE "
150 PRINT "RESULT TO 10. A DECISION ON WHICH U VALUES TO USE MUST BE MADE."
160 PRINT "U WILL BE INCREASED BY 1 FOR EACH COMPUTATION UNTIL THE RESULT"
170 PRINT "IS 10. A HALT WILL THEN OCCUR."
185 PLOT 14
190 PRINT :PRINT TAB( 8)"100 U = 0"
200 PRINT TAB( 8)"110 PRINT U, U*(U+1)^2"
210 PRINT TAB( 8)"120 U = U + 1"
220 PRINT TAB( 8)"130 IF U*(U+1)^2<=10 THEN 110"
230 PRINT TAB( 8)"140 END"
235 PLOT 15
240 PRINT :PRINT "STUDY THE PROGRAM AND SEE IF YOU CAN TELL ME WHICH LINE NUMBER"
250 INPUT "IS AT THE BEGINNING OF THE LOOP? ";L
275 PRINT
300 IF L= 110THEN 330
310 INPUT "TRY AGAIN ";L:GOTO 300
330 INPUT "FINE. AND WHICH IS THE LAST LINE IN THE LOOP? ";T
340 IF T= 130THEN 380
350 INPUT "STUDY THE PROGRAM AND TRY AGAIN. WHICH ONE? ";T:GOTO 340
380 PRINT "THAT'S THE ONE! NOTICE THAT U WAS INCREASED BY 1 (LINE 120)."
390 PRINT "WE COULD HAVE USED OTHER INCREMENTAL VALUES, WHICH WOULD HAVE"
400 PRINT "CHANGED THE NUMBER OF TIMES THROUGH THE LOOP. HERE ARE THREE"
410 PRINT "OUTPUTS BASED ON DIFFERENT VALUES OF INCREASING U AS SHOWN IN"
420 PRINT "LINE 120
430 INPUT "                             PRESS 'RETURN'";G:PLOT 12
440 PRINT "FOR U = U + 1 WE GET"
445 PRINT "     U        U*(U+1)^2"
450 PRINT "     0          0"
455 PRINT "     1          4"
460 PRINT :PRINT "FOR U = U +.2  WE GET"
465 PRINT "     U        U*(U+1)^2"
470 PRINT "     0          0"
475 PRINT "     .2         .288"
480 PRINT "     .4         .784"
485 PRINT "     .6        1.536"
490 PRINT "     .8        2.592"
495 PRINT "    1.         4."
500 PRINT "    1.2        5.808"
505 PRINT "    1.4        8.064"
510 PRINT :PRINT "FOR U = U + .5 WE GET"
515 PRINT "     U       U*(U+.5)^2"
520 PRINT "     0         0"
530 PRINT "     .5       1.125"
535 PRINT "    1.        4."
540 PRINT "    1.5       9.375"
550 PLOT 14
560 PRINT "IN EACH CASE, U IS THE LEFT HAND COLUMN AND U*(U+?)^2 IS THE"
570 PRINT "RIGHT HAND COLUMN. NOTICE THE LARGEST NUMBER IN THE RIGHT HAND"
580 PRINT "COLUMN IS NEVER OVER 10. THE LOOP HAS BEEN HALTED BEFORE"
590 PRINT "U BECOMES TOO LARGE."
600 PLOT 15:INPUT "                          PRESS 'RETURN'";G:PLOT 14
605 PLOT 12
610 PRINT "ANOTHER KIND OF LOOP IS ONE SUPPLIED WITH INFORMATION AS TO"
620 PRINT "A PREDETERMINED NUMBER OF ITERATIONS IT IS TO MAKE."
640 PRINT "HERE IS AN EXAMPLE:":PRINT
650 PRINT "     160 FOR J = 2 TO 2.5 STEP .1"
660 PRINT
670 PRINT "HOW WOULD YOU ANSWER THIS: TRUE OR FALSE: J VALUES CONTROL"
680 INPUT "THE NUMBER OF ITERATIONS.  ANSWER..  ";A$
690 IF A$= "TRUE"THEN 740
720 PRINT "YOU SHOULD HAVE SAID TRUE. YOU SEE J IS THE COUNTER, AND"
730 GOTO 750
740 PRINT "YOU'RE RIGHT. THE J VALUE WILL BE USED TO COUNT THE LOOP."
750 PRINT "IT'S STARTING VALUE WILL BE 2. ITS MAXIMUM VALUE WILL BE.."
760 INPUT J1
770 IF J1= 2.5THEN 810
790 PRINT "NO..BUT ITS MAXIMUM VALUE IS SHOWN IN THE STATEMENT. IT IS"
800 GOTO 760
810 PRINT "GOOD..BUT IT MAY END UP SOMEWHAT LESS BECAUSE OF THE SIZE OF"
820 PRINT "THE INCREMENT ( CHANGE IN J ). WHAT INCREMENT IS SHOWN...."
830 INPUT I
850 IF I= .1THEN 880
860 PRINT "THAT'S NOT IT, BUT THE STATEMENT TELLS. HOW MUCH IS IT..."
870 GOTO 830
880 PLOT 12:PRINT "YOU OBVIOUSLY UNDERSTAND THE STATEMENT, AND PROBABLY REALIZE"
890 PRINT "THAT 160 IS THE STATEMENT (OR LINE) NUMBER, FOR MEANS"
900 PRINT "STARTING VALUE, TO MEANS MAXIMAL VALUE, "
910 PRINT "AND STEP MEANS INCREMENT."
920 PRINT :PRINT :PRINT "IT IS NOW KNOWN WHERE THE"
930 PRINT "LOOP STARTS ( AT LINE 160 ) AND EVERYTHING ELSE ABOUT IT EXCEPT"
940 PRINT "WHERE IT STOPS - I.E., WHAT THE LAST INSTRUCTION IN THE LOOP"
950 PRINT "IS. DO YOU THINK (1) LAST LINE OR (2) NEXT J OR (3) NEW J"
960 INPUT "IS THE CORRECT LAST INSTRUCTION (TYPE CHOICE NUMBER)..";N
980 PRINT
990 IF N= 2THEN 1030
1010 PRINT "WELL,,, MAYBE THAT WAS TOO TRICKY. IT SHOULD BE NEXT J, AND WE"
1020 GOTO 1040
1030 PRINT "THAT'S THE ONE!! ALL RIGHT.  THE WORD NEXT IS THE CLUE. SO WE"
1040 PRINT "PUT A LINE NUMBER ON IT WHICH SEQUENCES IT AS THE LAST LINE OF"
1050 PRINT "THE LOOP (LINE 160 HERE) AND LOOPS UNTIL J SAYS TO STOP."
1055 PLOT 15:INPUT "                        PRESS 'RETURN'";G:PLOT 14,12
1060 PRINT :PRINT "FOR THE PREVIOUS EXAMPLE PROGRAM, SUPPOSE WE WANTED 4 VALUES,"
1070 PRINT "REGARDLESS OF THE FUNCTION'S SIZE. LET'S COUNT WITH C. WE'LL"
1080 PRINT "WRITE:  "
1100 PRINT "     100 U = 0"
1110 PRINT "     110 FOR C = 1 TO 4"
1120 PRINT "     120 PRINT U, U*U(U+1)^2"
1130 PRINT "     130 U = U +.2"
1140 PRINT "     140 NEXT C"
1150 PRINT "     150 END"
1160 PRINT :PRINT "WHEN STEP IS OMITTED (LINE 110), THE INCREASE (IN C) IS 1."
1170 PRINT :PRINT "SO NOW WE HAVE LOOKED AT TWO WAYS TO ITERATE - THE IF LOOP"
1180 PRINT "AND THE FOR LOOP.  WE'LL BE SEEING MORE OF THEM IN THE FUTURE."
1185 PLOT 15:INPUT "                               PRESS 'RETURN'";G:PLOT 12,14
1190 PRINT "IF BETWEEN LESSONS YOU CAN TRY THE NEW CONCEPTS THAT YOU HAVE"
1195 PRINT
1200 PRINT "JUST LEARNED, YOU WILL SOON"
1205 PRINT
1210 PRINT "BECOME MORE COMFORTABLE AND PROFICIENT WITH THE "
1215 PRINT
1220 PRINT "             COMPUCOLOR BASIC LANGUAGE"
1225 PRINT
1230 PRINT "    SEE YOU LATER!"
1240 PRINT "TO REVIEW TYPE 1 AND PRESS 'RETURN', TO STOP TYPE 2 AND PRESS"
1250 INPUT "'RETURN', TO GO ON JUST PRESS 'RETURN'";J
1255 IF J= 0THEN LOAD "LSNO9":RUN
1260 IF J= 1THEN RUN
1270 IF J= 2THEN END
1280 END