0 'MATH.BA author unknown 1 'CLUB 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 20 DIML(2),U(2),A(2),OD$(2) 30 OD$(1)="A" 40 OD$(2)="B" 50 EN$=CHR$(13) 60 BK$=CHR$(8) 70 DL$=CHR$(8)+CHR$(32)+CHR$(8) 85 KB=-16384:KF=-16368 90 VW=40 100 DG$="0123456789." 110 READOP$,L(1),U(1),L(2),U(2),ER,TL 120 DATA +,10,99,10,99,0,100 130 KR=0 140 KQ=0 145 GOTO300 150 CLS 160 PRINT@(29/2),"Math Drills 170 PRINT"1-Operation (+-*/):A "OP$" B" 180 PRINT"2-Ranges:"L(1)"<=A<="U(1)" & "L(2)"<=B<="U(2) 190 PRINT"3-Error Tolerance:"INT(ER*10+.5)"%" 200 PRINT"4-Time Limit:"TL 216 REM 220 PRINT"Select <1>-<4> to Change Drill" 230 PRINT"or <0> to Start"; 240 S=0 250 INPUTS 260 IFS<0ORS>4THEN150 265 IFS>4THEN150 270 ONS+1GOTO590,280,330,490,550 280 PRINT"Select One: +-*/"; 290 INPUTOP$ 295 IFLEN(OP$)=0THEN280 300 IP=INSTR(1,"+-*/",OP$) 310 IFIP=0THEN280 320 GOTO150 330 FORI=1TO2 340 PRINT"Lower Limit for ";OD$(I) 350 INPUTL(I) 360 IFL(I)>=0THEN390 370 PRINT"Must Be >= 0" 380 GOTO340 390 PRINT"Upper Limit For ";OD$(I) 400 INPUTU(I) 410 IFI=1THEN440 412 IFIP<4THEN440 414 IFU(I)>0THEN440 420 PRINT"For Division, Upper Limit of B Must be greater > 0 430 GOTO390 440 IFL(I)<=U(I)THEN470 450 PRINT"B Must be <=";L(I) 460 GOTO390 470 NEXTI 480 GOTO150 490 PRINT"Enter Error Tolerance, 0-25" 500 PRINT"(0 = No Margin of Error) 510 INPUTER 520 IFER<0THEN490 525 IFER>25THEN490 530 ER=ER/100 540 GOTO150 550 PRINT"Enter Time Limit, 0-10000 (0=No Limit) 560 INPUTTL 570 IFTL<0THEN550 575 IFTL>10000THEN550 580 GOTO150 590 IFIP<>2THEN630 592 IFU(1)>=L(2)THEN630 600 PRINT"Adjust Ranges So That Upper Limit for A is => the Lower Limit for B. 610 PRINT"Enter New Ranges Now 620 GOTO330 630 IFIP<4THEN680 632 IFU(2)>0THEN680 640 PRINT"For Division, Upper Limit of B must be > 0. 650 PRINT"Enter New Upper Limit of B 660 INPUTU(2) 670 IFU(2)<=0THEN640 680 FORI=1TO2 690 N1=L(I) 700 N2=U(I) 710 GOSUB1370 720 IFI<>2THEN730 722 IFIP<>4THEN730 724 IFNR<>0THEN730 726 GOTO710 730 A(I)=NR 740 NEXTI 750 ONIPGOTO760,780,810,830 760 R=A(1)+A(2) 770 GOTO840 780 IFA(1)1THEN990 950 IFINSTR(1,DG$,K$)=0THEN1030 960 G$=G$+K$ 970 CP=CP+1 980 GOTO1020 990 G$=LEFT$(G$,CP-2) 1000 CP=CP-1 1010 K$=DL$ 1020 PRINTK$; 1030 IFTL=0THEN910 1040 TM=TM+1 1050 IFTMGTHEN1230 1210 PRINT"Correct 1220 GOTO1260 1240 PRINT"Close Enough! The Exact Answer is ";R 1260 PRINT" to Continue to Stop 1270 PRINT" to Change Drills 1280 CQ$="C" 1290 INPUTCQ$ 1300 S=INSTR(1,"CSN",CQ$) 1310 IFS=0THEN1260 1320 ONSGOTO590,1330,150 1330 PRINT"Here's Your Score:" 1340 PRINTYOU GOT "kr" RIGHT OUT OF "kq" TRIES 1350 PRINT"For a Score of "INT(KR/KQ*100+.5)"% 1360 END 1370 SEC=VAL(RIGHT$(TIME$,2)):FORZ=1TOSEC:NR=INT(RND(1)*1000):NEXTZ 1390 RETURN