home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
RUN Flagazine Extra: Supplement 2: Soundwriter
/
run-supplement-2.zip
/
CAI.BAS
< prev
next >
Wrap
BASIC Source File
|
1991-07-05
|
3KB
|
63 lines
1000 REM Computer Aided Instruction - GWBASIC Mono
1010 COMMON MENUFL%
1020 SCREEN 0,0,0,0:COLOR 7,0:CLS:LIJN$=STRING$(79,196):T=12:V=9000
1030 DIM K$(10):FOR A=1 TO 10:READ K$(A):NEXT A
1040 LOCATE 24,1:COLOR 14,0:PRINT LIJN$;:LOCATE 25,19:COLOR 7,0
1050 PRINT "Hoe werkt de FOR/NEXT-kringloop in BASIC?";:GOSUB 1320
1060 LOCATE 1,1:PRINT "L";:GOSUB 1550:PRINT "I";:GOSUB 1550:PRINT "S";:GOSUB 1550:PRINT "T";:GOSUB 1570
1070 CLS:LOCATE 24,1:COLOR 14,0:PRINT STRING$(79,196);:GOSUB 1560
1080 LOCATE 1,5:PRINT "10 INPUT ";CHR$(34);"Welke tafel";CHR$(34);";A":GOSUB 1550
1090 LOCATE 2,5:PRINT "20 FOR B=1 TO 10":GOSUB 1550
1100 LOCATE 3,5:PRINT "30 PRINT B;":GOSUB 1550
1110 LOCATE 4,5:PRINT "40 PRINT ";CHR$(34);" x ";CHR$(34);";":GOSUB 1550
1120 LOCATE 5,5:PRINT "50 PRINT A;":GOSUB 1550
1130 LOCATE 6,5:PRINT "60 PRINT ";CHR$(34);" = ";CHR$(34);";":GOSUB 1550
1140 LOCATE 7,5:PRINT "70 PRINT A * B":GOSUB 1550
1150 LOCATE 8,5:PRINT "80 NEXT B":GOSUB 1550
1160 LOCATE 9,5:PRINT "90 END":GOSUB 1550:PRINT "Ok":GOSUB 1570
1170 LOCATE 11,1:PRINT "R";:GOSUB 1550:PRINT "U";:GOSUB 1550:PRINT "N";:GOSUB 1550
1180 X=1:GOSUB 1310:LOCATE 25,1:PRINT "Programmaregel 10 vraagt om invoer";
1190 LOCATE 12,1:PRINT "Welke tafel";
1195 INPUT I$:IF VAL(I$)=0 THEN LOCATE 12,14:PRINT STRING$(LEN(I$)," "):GOTO 1190
1196 B=VAL(I$):LOCATE 25,1
1200 PRINT "De inputvariabele A krijgt de zojuist ingevoerde waarde: ";B;
1210 GOSUB 1320:PRINT "Nu start de FOR/NEXT-kringloop in regel 20";
1220 X=2:GOSUB 1290:GOSUB 1320
1230 PRINT "De variabele B begint bij 1 en moet naar 10";:GOSUB 1320:X=3
1240 FOR E=1 TO 10:GOSUB 1480:T=T+1:GOSUB 1290:GOSUB 1340:X=X+1
1250 GOSUB 1290:GOSUB 1350:X=X+1:GOSUB 1290
1260 GOSUB 1360:X=X+1:GOSUB 1290:GOSUB 1370:X=X+1:GOSUB 1290
1270 GOSUB 1380:X=X+1:GOSUB 1290:GOSUB 1390:X=3
1280 NEXT E
1290 IF INKEY$=CHR$(27) THEN 1530
1300 SOUND 500,1:LOCATE X-1,1:PRINT STRING$(3,32)
1310 LOCATE X,1:COLOR 31,0:PRINT STRING$(2,196)CHR$(16):COLOR 7,0:RETURN
1320 GOSUB 1580:LOCATE 25,1:PRINT SPACE$(79);:LOCATE 25,1:RETURN
1330 REM
1340 LOCATE T,2:COLOR 14,0:PRINT E;:GOSUB 1570:RETURN
1350 LOCATE T,5:PRINT " x ";:GOSUB 1570:RETURN
1360 LOCATE T,8:PRINT B:GOSUB 1570:RETURN
1370 LOCATE T,12:PRINT " = ";:GOSUB 1570:RETURN
1380 LOCATE T,14:PRINT E*B;:GOSUB 1570:COLOR 7,0:RETURN
1390 IF E=10 THEN 1440
1400 X=2:LOCATE 25,1:PRINT "De variabele B is pas";E;
1410 PRINT "- De teller MOET terug naar 20 om er 1 bij te krijgen!";
1420 GOSUB 1320:LOCATE 8,1:PRINT SPC(3):GOSUB 1290
1430 LOCATE 25,1:PRINT "B = B + 1 en wordt nu:";E+1;:GOSUB 1320:RETURN
1440 X=X+1:GOSUB 1320:BEEP:PRINT "B heeft de waarde 10 bereikt.";
1450 PRINT " Regel 80 laat de programmateller nu passeren...";:GOSUB 1320
1460 LOCATE 23,1:PRINT "Ok";
1470 GOSUB 1290::GOTO 1520
1480 LOCATE 25,1:PRINT K$(E);" kringloop...";
1490 RETURN
1500 DATA "Eerste","Tweede","Derde","Vierde","Vijfde"
1510 DATA "Zesde","Zevende","Achtste","Negende","Tiende en laatste"
1520 LOCATE 25,1:PRINT "Toets <Esc> voor Hoofdmenu";:WHILE INKEY$<>CHR$(27):WEND
1530 CLS:SCREEN 0:IF MENUFL% THEN 120
1540 END
1550 W!=TIMER:WHILE TIMER<W!+.5:WEND:RETURN
1560 W!=TIMER:WHILE TIMER<W!+.8:WEND:RETURN
1570 W!=TIMER:WHILE TIMER<W!+1.5:WEND:RETURN
1580 W!=TIMER:WHILE TIMER<W!+3:WEND:RETURN
20000 REM EIND CAI