home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
educ
/
prschool.zip
/
MATHDRIL.BAS
< prev
next >
Wrap
BASIC Source File
|
1982-09-01
|
2KB
|
47 lines
10 REM COPYRIGHT SoftSystems and Jim Love, Richmond, Va.
11 REM All rights reserved
12 REM For non-profit distribution only
40 DEF SEG=0
50 KEY OFF:FOR I=1 TO 10: KEY I,"":NEXT I
60 H417=PEEK(&H417):I=PEEK(&H417) OR &H20:POKE &H417,I:'SET NUM LOCK, H417 CONTAINS INITIAL VALUE
70 CLS:LOCATE 10,30:PRINT"ARITHMETIC DRILLS"
80 IF NUMERR+NUMCOR>0 THEN LOCATE 5,17:PRINT "You had" NUMCOR "correct out of a possible" NUMERR+NUMCOR:NUMERR=0:NUMCOR=0
90 LOCATE 15,20:PRINT"Enter ESC key to end this application."
100 LOCATE 20,18: PRINT"Would you like addition or subtraction(+.-)?"
110 POKE 106,0:'clear keyboard buffer
120 A$=INKEY$: IF A$ ="" THEN 120
130 IF CHR$(27)=A$ THEN POKE &H417,H417:CLS: END
140 IF A$ <> "+" THEN IF A$ <> "-" THEN 120
150 RANDOMIZE VAL(RIGHT$(TIME$,2))
160 CLS
170 IF NUMCOR+NUMERR>24 THEN 70
180 X% = 15 * RND: Y% = 10 * RND
190 IF A$ = "-" THEN IF X% - Y% < 0 THEN 180
200 IF A$ = "+" THEN IF X% + Y% > 20 THEN 180
210 TRY=0
220 LOCATE 7,26:PRINT"Enter ESC key to exit."
230 LOCATE 5,10:PRINT "Correct Answers: " NUMCOR, "Incorrect Answers: " NUMERR
240 LOCATE 10,36:PRINT X% A$ Y% "= ";
250 LTH=2:LOCATE 10,47:GOSUB 340:IF CHR$(27)=N$ THEN GOTO 70
260 IF NU$="" THEN 250
270 Z%=VAL(NU$): NU$=""
280 IF A$ = "-" THEN IF Z% = X% - Y% THEN NUMCOR = NUMCOR + 1:GOTO 160
290 IF A$ = "+" THEN IF Z% = X% + Y% THEN NUMCOR = NUMCOR + 1:GOTO 160
300 NUMERR=NUMERR + 1:TRY=TRY+1
310 IF NUMERR+NUMCOR>25 THEN GOTO 70
320 IF TRY>2 THEN TRY=0:PRINT"Three consecutive errors have occurred. Skipping to next question.":GOTO 180
330 PRINT:PRINT "Your answer " Z% " is incorrect. Try again.";SPACE$(27):GOTO 230
340 REM get input field
350 COL=CSRLIN:ROW=POS(0)
360 FOR I=1 TO LTH:PRINT CHR$(95);:NEXT:LOCATE COL,ROW
370 POKE 106,0:'clear keyboard buffer
380 N$=INKEY$: IF N$ ="" THEN 380
390 IF N$ = CHR$(13) OR N$ = CHR$(27) THEN 440
400 IF N$ = CHR$(8) THEN IF LEN(NU$)>0 THEN GOSUB 450
410 IF LEN(NU$)=LTH THEN PRINT CHR$(7);:GOTO 380: REM IF INPUT FIELD IS FULL AND KEY ENTERED IS NOT RETURN, ESC OR BACKSPACE
420 IF CHR$(58) > N$ THEN IF CHR$(47) < N$ THEN 430 ELSE 380 ELSE 380
430 PRINT N$;:NU$=NU$ + N$:GOTO 380
440 RETURN
450 LOCATE COL,ROW:NULTH=LEN(NU$):FOR I=1 TO NULTH:PRINT CHR$(95);:NEXT
460 NU$=MID$(NU$,1,NULTH-1):LOCATE COL,ROW:PRINT NU$;:RETURN