11 DIM B2$(3%),B2%(3%):B2$(1%)="LET'S START WITH":B2$(2%)= "NOW SOME":B2$(3%)="FINALLY, SOME":B2%(1%)=5%:B2%(2%)=3%: B2%(3%)=2%:B2%(0%)=5%:B%=0% 12 OPEN "KB:" AS FILE 1%:INPUT #1%,"NAME PLEASE (CR)---> ";N$: V9$=SYS(CHR$(3%)):FIELD #1%,K% AS Q$,1% AS M3$(K%) FOR K%=0% TO 10% 27 DIM B$(7%):B$(1%)="EASY":B$(2%)="MEDIUM":B$(3%)="HARD": B$(4%)="WRONG":B$(5%)="RIGHT":B$(6%)="LOW":B$(7%)="HIGH" 30 PRINT "ENTER 'I' FOR INSTRUCTIONS:";:GOSUB 29000:PRINT M4$:GOTO 135 IF M4$<>"I" 45 H%(6%)=1%:H%(K%)=3% FOR K%=7% TO 10% 50 PRINT:PRINT "THE REQUIREMENTS ARE:":PRINT 55 PRINT "YOU MUST ANSWER 5 EASY PROBLEMS, 3 MEDIUM "; "PROBLEMS, AND 2 HARD" 60 PRINT "PROBLEMS. YOU'LL BE GIVEN THREE TRIES TO ANSWER EACH "; "PROBLEM; HOWEVER" 65 PRINT "ONLY PROBLEMS ANSWERED CORRECTLY THE FIRST TRY ARE "; "SCORED AS CORRECT" 70 PRINT "ANSWERS. YOU MUST GET 80% OF THE EASY ONES CORRECT, 70% "; "OF THE MEDIUM" 75 PRINT "ONES CORRECT AND 50% OF THE HARD ONES CORRECT (THEY ARE "; "R E A L L Y" 85 PRINT "HARD) IN ORDER TO PASS. IF YOU PASS, THE COMPUTER WILL TELL"; " YOU AND" 90 PRINT "ALLOW YOU TO GO ON THE NEXT PROGRAM. BY THE WAY, IF YOU "; "WANT TO KNOW":PRINT "HOW "; 95 PRINT "YOU'RE DOING ENTER '?' WHEN ASKED FOR YOUR ANSWER. IF YOU "; "GIVE UP," 100 PRINT "ENTER 'Q' FOR YOUR ANSWER AND THE PROGRAM WILL TERMINATE!!": PRINT:PRINT 110 PRINT "IF THE PROGRAM PRINTS OUT '(CR)--->', THAT MEANS YOU MUST": PRINT "HIT THE RETURN KEY AFTER YOU INPUT YOUR ANSWER. IF "; "THAT IS":PRINT "NOT THERE, YOU NEED NOT HIT THE 'RETURN' KEY!!" :PRINT 111 RANDOM:GOTO 135 130 GOTO 1300 IF X%(B%+3%)=0%:GOTO 1300 IF B2%(B%)>X%(B%): GOTO 1300 IF 100%*X%(B%)/X%(B%+3%)<35%+15%*(4%-B%) 135 GOTO 1200 IF B%=3%:B%=B%+1%:PRINT:PRINT B2$(B%);" ";B$(B%);" ONES:": PRINT:GOTO 130 200 GOTO 130 IF F6%=0%:F6%=0%:GOTO 230 IF B%:PRINT "GO BACK AND REDO PROGRAM #10, I N V R S E !!!": GOTO 32000 230 PRINT "REDO THE ";B$(B%);" PROBLEMS!!": X%(B%),X%(B%+3%),X%(B%+1%),X%(B%+4%)=0%:GOTO 200 600 DEF FNY%(V%):PRINT FNN$(V%); 605 GOSUB 29000:V1%=ASCII(M4$)-48%:GOTO 607 IF V1%>0% AND V1%<10%: GOTO 605 IF V1%<>-35%:GOSUB 29000:FNY%=V%:GOTO 635 607 PRINT "\";M4$; 608 GOSUB 29000:V2%=ASCII(M4$)-48%:GOTO 630 IF V2%=-35%: GOTO 608 IF V2%<0% AND V2%>9%:PRINT M4$;:V1%=V1%*10%+V2%: GOTO 608 630 FNY%=V1% 635 FNEND 640 DEF FNN$(V%)=MID(NUM$(V%),2%,LEN(NUM$(V%))-2%) 650 DEF FNP$(V1%,V2%,V3%,V4%):FNP$="":PRINT TAB(5%);FNN$(V1%); TAB(12%);FNN$(V3%):PRINT TAB(5%);FNL$(V1%,V2%);TAB(9%);"X"; 660 PRINT TAB(12%);FNL$(V3%,V4%):PRINT TAB(5%);FNN$(V2%);TAB(12%); FNN$(V4%);:FNEND 670 DEF FNL$(V5%,V6%):FNL$="":V5%=V6% IF V6%>V5%:V5%=LEN(FNN$(V5%)): V$="":V$=V$+"-" FOR V6%=1% TO V5%:FNL$=V$:FNEND 800 X3%=X3%+1%:H5%=H5%+1% IF B%=3%:X%=X%+1%:X%(B%+3%)=X%(B%+3%)+1%: X%(B%)=X%(B%)+1% IF E%=3% 810 RETURN IF E%=3% OR X%(B%+3%)<3%+B2%(B%):F6%=1%:PRINT :B%=B%-1%:PRINT N$;" -- YOU ARE NOT DOING VERY WELL ON "; "THESE PROBLEMS. YOU MUST":RETURN 900 D%=0%:D1%=INT(LOG10(C1%))+1%:FOR K1%=1% TO D1% 910 GOSUB 29000:GOTO 920 IF M4$="?":GOTO 940 IF M4$="Q": M%=ASCII(M4$):GOTO 910 IF (M%=13% OR M%=32%) AND D%=0%:RETURN IF M%=13% OR M%=32%:GOTO 910 IF M%<48% OR M%>57%: D%=D%*10%+M%-48%:PRINT M4$;:NEXT K1%:RETURN 920 F4%=0%:F4%=1% IF X%(K%) FOR K%=4% TO 6%:GOTO 910 IF F4%=0% 930 X%=POS(1%):PRINT M4$;:A1%=A%:B1%=B%:GOSUB 32005:A%=A1%:B%=B1%: PRINT TAB(X%-4%);"--> ";:GOTO 900 940 PRINT:PRINT:PRINT "SORRY, ";N$;" -- YOU DO NOT PASS. . .": GOTO 32000 1000 DEF FNR%(V%,V1%) 1010 V2%=V1%-V%+1%:V3%=INT(1000%*RND):V3%=V3%-V3%/V2%*V2%+V%:FNR%=V3% 1020 FNEND 1100 DEF FNX%=X%(1%)+X%(2%)+X%(3%) 1200 PRINT:PRINT "CONGRATULATIONS, ";N$;". YOU HAVE SUCCESSFULLY PASSED" 1210 PRINT "THE REQUIREMENTS OF -FRACDV-. YOU NOW MUST TAKE THE": PRINT "FINAL TEST. THE PROGRAM WHICH WILL GIVE YOU YOUR FINAL": PRINT "TEST IS CALLED -FINAL-. GOOD LUCK ";N$;"!!!":PRINT: GOTO 32000 1220 PRINT "THE NEXT PROGRAM, NAMED -INVRSE-.":PRINT:GOTO 32000 1300 E%=3%:B4%=B%*3%-2%:A%=FNR%(B4%,B4%+5%):B3%=FNR%(B4%,B4%+5%): GOTO 1300 IF FNC%(A%,B3%)<>1% 1305 A2%=FNR%(B4%,B4%+5%):B2%=FNR%(B4%,B4%+5%):GOTO 1305 IF FNC%(A2%,B2%)<>1% 1307 GOTO 1305 IF A%=A2% AND B3%=B2% 1310 C%=FNR%(1%,B%*4%):GOTO 1310 IF FNC%(A2%,C%)<>1%:GOTO 1310 IF FNC%(C%,B3%)<>1% 1315 C9%=FNR%(1%,B%*4%):GOTO 1315 IF FNC%(A%,C9%)<>1%:GOTO 1315 IF FNC%(C%,B3%)<>1%:GOTO 1310 IF FNC%(C%,C9%)<>1% OR C%=C9%:A%=A%*C%:B2%=B2%*C%:A2%=A2%*C9%:B3%=B3%*C9% 1320 C%=FNC%(A%,B3%):A%=A%/C%:B3%=B3%/C%:C%=FNC%(A2%,B2%): A2%=A2%/C%:B2%=B2%/C%:C%=FNC%(A%,B2%):C9%=FNC%(A2%,B3%) 1325 GOSUB 1900 1330 PRINT "CANCEL IF POSSIBLE. . .":PRINT FNP$(A%,B3%,A2%,B2%): PRINT 1340 PRINT TAB(5%);:A5%=FNY%(A%):PRINT TAB(15%);:A6%=FNY%(A2%): PRINT:PRINT TAB(5%);FNL$(A%,B3%);TAB(10%);"X"; 1345 PRINT TAB(15%);FNL$(A2%,B2%):PRINT TAB(5%);:B5%=FNY%(B3%): PRINT TAB(15%);:B6%=FNY%(B2%) 1350 GOTO 1360 IF A5%=A% AND B5%=B3% AND A6%=A2% AND B6%=B2%:PRINT 1355 PRINT:PRINT "WHICH REWRITTEN IS:":PRINT:PRINT FNP$(A5%,B5%,A6%,B6%); 1360 PRINT TAB(25%);:C2%=FNC%(A5%,B6%):C3%=FNC%(A6%,B5%):GOTO 1375 IF A5%*C%=A%*C2% AND B6%*C%=B2%*C2% AND A6%*C9%=A2%*C3% AND B5%*C9%=B3%*C3% 1365 PRINT "NO, ";N$;" -- THAT REDUCTION IS INCORRECT!":PRINT 1370 E%=E%-1%:IF E% THEN PRINT "TRY AGAIN!!":PRINT:GOTO 1330 1375 A%=A5%:B3%=B5%:A2%=A6%:B2%=B6%:C%=C2%:C9%=C3% 1380 GOTO 1435 IF C%<>1% OR C9%<>1%:PRINT "VERY GOOD!!":PRINT:PRINT 1395 PRINT "NOW MULTIPLY -- ENTER ANSWER BELOW!!" 1400 PRINT:PRINT "NUMERATOR:";TAB(16%);:C1%=A%*A2%:GOSUB 900:PRINT: A5%=D%:PRINT TAB(16%);FNL$(A%*A2%,B3%*B2%):PRINT "DENOMINATOR:";TAB(16%);:C1%=B3%*B2%:GOSUB 900: B5%=D%:PRINT TAB(25%); 1405 GOTO 1430 IF A5%=A%*A2% AND B5%=B3%*B2% 1410 PRINT "WRONG!!";:E%=E%-1% 1415 PRINT " -- TRY AGAIN";IF E%:PRINT "!!":PRINT:IF E% THEN E%=E%-1%:GOTO 1400 1420 PRINT:PRINT " THE CORRECT ANSWER IS:":PRINT:PRINT TAB(5%); FNN$(A%*A2%) 1425 PRINT TAB(5%);FNL$(A%*A2%,B2%*B3%):PRINT TAB(5%);FNN$(B3%*B2%): PRINT:PRINT:GOSUB 800:GOTO 200 1430 PRINT "CORRECT!!":GOSUB 800:PRINT:GOTO 200 1435 PRINT "NO -- THAT ISN'T COMPLETELY CANCELLED!!":PRINT:E%=E%-1%: GOTO 1450 IF E%<1%:GOTO 1340 1450 A%=A%/C%:B2%=B2%/C%:B3%=B3%/C9%:A2%=A2%/C9%:PRINT:PRINT "THE CORRECTLY REDUCED PROBLEM IS:":PRINT:PRINT FNP$(A%,B3%,A2%,B2%):E%=2%:PRINT:PRINT:GOTO 1395 1600 DEF FNC%(V%,V1%) 1610 E9%=1%:D5%=0% 1625 D5%=D5%+2%:D5%=3% IF D5%=4%:IF D5%>V% OR D5%>V1% THEN FNC%=E9%:GOTO 1640 1630 IF V%/D5%*D5%=V% AND V1%/D5%*D5%=V1% THEN E9%=E9%*D5%:V%=V%/D5%: V1%=V1%/D5%:GOTO 1630 1635 V%=FNQ%(V%,D5%):V1%=FNQ%(V1%,D5%):GOTO 1625 1640 FNEND 1660 DEF FNQ%(V2%,V3%) 1665 IF V2%/V3%=V3%=V2% THEN V2%=V2%/V3%:GOTO 1665 1670 FNQ%=V2% 1675 FNEND 1900 PRINT "THE PROBLEM IS:":PRINT:PRINT:PRINT TAB(6%); FNN$(A%);TAB(24%);FNN$(B2%):PRINT TAB(6%);FNL$(A%,B3%); " DIVIDED BY ";TAB(24%);FNL$(A2%,B2%) 1910 PRINT TAB(6%);FNN$(B3%);TAB(24%);FNN$(A2%): PRINT "CHANGE TO AN EQUIVALENT MULTIPLICATION PROBLEM!!":PRINT 1920 PRINT:PRINT "NUMERATORS:";TAB(16%);:C1%=A%:GOSUB 900:A5%=D%: PRINT TAB(24%);:C1%=A2%:GOSUB 900:PRINT:A6%=D% 1922 PRINT TAB(16%);FNL$(A%,B3%);TAB(24%);FNL$(A2%,B2%) 1925 PRINT "DENOMINATORS:";TAB(16%);:C1%=B3%:GOSUB 900:PRINT TAB(24%);: B5%=D%:C1%=B2%:GOSUB 900:B6%=D%:PRINT TAB(32%); 1930 GOTO 1940 IF A5%*B3%<>B5%*A% OR A6%*B2%<>B6%*A2%: PRINT "VERY GOOD!!":PRINT:PRINT:RETURN 1940 PRINT "NO, ";N$;" -- THE EQUIVALENT MULTIPLICATION":PRINT TAB(32%);"PROBLEM CONSISTS OF THE FIRST FRACTION":PRINT TAB(32%);"TIMES THE RECIPROCAL OF THE SECOND!!":PRINT: E%=2%:RETURN 29000 GOTO 29100 IF M3%=Z3%:M4$=M3$(M3%):M3%=M3%+1%:RETURN 29100 M3%=0%:V9$=SYS(CHR$(4%)):GET #1%:Z3%=RECOUNT:GOTO 29000 32000 PRINT:PRINT "DIVIDING FRACTIONS":F3%=1% 32005 U$="\ \ - ## OUT OF ## ---> ###%":V9$=SYS(CHR$(2%)) UNLESS F3%=0% 32007 PRINT:PRINT N$;" -- HERE ARE YOUR SCORES:":PRINT 32010 FOR K%=1% TO 3%:GOTO 32100 IF X%(K%+3%)=0%:PRINTUSING U$, B$(K%),X%(K%),X%(K%+3%),100%*X%(K%)/X%(K%+3%) 32100 NEXT K% 32220 B%=0%:B%=B%+X%(K%) FOR K%=4% TO 6%:A%=0%:A%=A%+X%(K%) FOR K%=1% TO 3%:A%=100%*A%/B% 32225 IF F3%=0% THEN PRINT:PRINT "CUMULATIVE-->";A%:PRINT:RETURN 32230 B%=0%:B%=1% IF A%>60%:B%=2% IF A%>89%:DIM Z$(2%) 32240 Z$(0%)=", YOU DEFINITELY NEED MUCH MORE" + " PRACTICE!!":Z$(1%)=", YOU DID ABOUT AVERAGE" + " -- BUT YOU STILL NEED MORE PRACTICE!!" 32250 Z$(2%)=" -- GREAT -- YOU SEEM TO UNDERSTAND" + " THESE PROBLEMS VERY WELL!!" 32260 A$=NUM$(A%):PRINT:PRINT "YOUR CUMULATIVE SCORE IS"; LEFT(A$,LEN(A$)-1%);"%.":PRINT 32270 PRINT N$+Z$(B%):PRINT 32767 END