1 ! PROGRAM NAME --> M U L T 1 -- BY BOB HUNTSMAN 2 ! PROGRAM NAME --> M U L T -- BY BOB HUNTSMAN 10 DIM B$(5%):B$(1%)="EASY":B$(2%)="MEDIUM":B$(3%)="HARD": B$(4%)="WRONG":B$(5%)="RIGHT 12 OPEN "KB:" AS FILE 1%:FIELD #1%,K% AS Q$,1% AS M3$(K%) FOR K%=0% TO 10%: INPUT "NAME PLEASE";N$:V9$=SYS(CHR$(3%)) 15 RANDOMIZE 130 PRINT:PRINT "WHAT KIND OF PROBLEM? ";:GOSUB 29000:PRINT M4$;:A$=M4$ 135 GOTO 32000 IF A$="N":B%=1%:GOTO 170 IF A$="E":B%=2%:GOTO 170 IF A$="M":B%=3%:GOTO 170 IF A$="H" 140 PRINT:PRINT "'N' FOR NONE, 'E' FOR EASY, 'M' FOR MEDIUM," + " OR 'H' FOR HARD!":PRINT:GOTO 130 170 PRINT:PRINT "HOW MANY? ";:GOSUB 29000:GOTO 170 IF M4$<"1" OR M4$>"9" :X1%=ASCII(M4$)-48%:PRINT M4$:X%=0%:GOTO 1300 200 GOTO 1300 IF X%57%:PRINT M4$; IF M%<>32%:RETURN 1000 DEF FNG(V%,V1%) 1010 V3=0:FOR V2%=1% TO V%:PRINT CHR$(13%)+CHR$(0%);: PRINT SPACE$(V1%-V2%+1%); 1020 GOSUB 900:IF Z%>0% GOTO 1035 ELSE V3=V3+10^(V2%-1%)*VAL(M4$) 1030 NEXT V2% 1035 PRINT:FNG=V3:V3=0 1040 FNEND 1042 DEF FNR%(V3%) 1044 V4%=INT((10^V3%)*RND(0%)) 1046 GOTO 1044 IF V4%<10^(V3%-1%) 1047 GOTO 1044 IF FND%(V4%,K5%)=0% FOR K5%=1% TO V3% 1048 FNR%=V4% 1050 FNEND 1060 DEF FND%(X,X%) 1070 X1=X/10^(X%-1%) 1080 FND%=X1-INT(X1/10)*10% 1090 FNEND 1100 DEF FNC$(X$,X1%) 1110 X1$="":X1$=X1$+X$ FOR K1%=1% TO X1% 1120 FNC$=X1$ 1130 FNEND 1200 PRINT "I'M SORRY, ";N$;", BUT THAT IS INCORRECT." 1205 GOTO 1225 IF B%=1% 1210 C%=0%:C%=K2% IF A1%(B%-K2%+1%)<>FND%(Z,B%+1%-K2%)*Y FOR K2%=1% TO B% 1215 IF C%=0% THEN PRINT "YOU MULTIPLIED CORRECTLY," + " BUT YOU ADDED IT UP WRONG!!!":RETURN 1220 PRINT:PRINT "YOU MADE A MISTAKE IN THE" + " MULTIPLYING PART OF THE PROBLEM." 1225 PRINT "LET'S TRY IT ANOTHER TIME.": RETURN 1230 PRINT "SORRY, WRONG AGAIN, ";N$;"." 1235 C%=0%:C%=C%+1% IF A1%(B%+1%-K2%)<>FND%(Z,B%+1%-K2%)*Y FOR K2%=1% TO B% 1240 C1%=0%:GOTO 1215 IF C%=0%:RETURN 1241 IF B%=1% THEN PRINT "INCORRECT -- SORRY, ";N$;".": RETURN 1242 PRINT N$;", YOU MULTIPLIED WRONG IN ROW";:PRINT "S"; IF C%>1% 1245 FOR K2%=1% TO B%:IF A1%(B%-K2%+1%)=FND%(Z,B%+1%-K2%)*Y GOTO 1250 1246 C1%=C1%+1% 1247 PRINT "AND";IF C1%>1%:PRINT B%+1%-K2%; 1250 NEXT K2%:RETURN 1260 PRINT "SORRY, ";N$;" -- THE CORRECT ANSWER IS";C;"!!":RETURN 1280 PRINT TAB(25%+B%-FNL%(Y*Z));Y*Z:RETURN 1300 Y=FNR%(B%):Z=FNR%(1%):C=Y*Z:A=FNP(Y,Z,B%,10%) 1305 IF C=A THEN E%=3%:PRINT "CORRECT!":GOSUB 800: GOTO 200 1310 GOSUB 1200:A=FNP(Y,Z,B%,10%):IF C=A THEN PRINT "CORRECT!": E%=2%:GOSUB 800:GOTO 200 1320 GOSUB 1230:A=FNP(Y,Z,B%,10%):IF C=A THEN PRINT "CORRECT!":E%=1%: GOSUB 800:GOTO 200 1330 GOSUB 1260:E%=0%:PRINT :GOSUB 800:GOTO 200 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 U$="\ \ - ## OUT OF ## ---> ###%":V9$=SYS(CHR$(2%)):PRINT 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% 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