2 ! PROGRAM NAME --> P R O G A L -- BY BOB HUNTSMAN 4 N2%=10%:N1%=1% 5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0% 7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%) 8 OPEN "KB:" AS FILE 2% 10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0 15 GOSUB 700 20 ON ERROR GOTO 800:GET #1%,RECORD 1% 25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1% 27 GET #1%,RECORD N1%:GOTO 25 30 G2%=12% IF G2%>12%:IF CVT$%(R1$(G2%))=0% THEN R9%=-1%:GOTO 1000 35 PRINT:PRINT LEFT(O$,INSTR(1%,O$," ")-1%):PRINT 40 PRINT "THE CURRENT RECORD FOR "; 45 PRINT "GRADE";G2%;" IS -----> ";:R%=CVT$%(R1$(G2%)) 47 T%=R%/60%:S%=R%-T%*60%:PRINT T%;"MINUTE";:PRINT "S"; IF T%<>1% 48 PRINT ",";S%;"SECOND";:PRINT "S"; IF S%<>1%:PRINT 50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON "; D1$(G2%);"!!!":PRINT:PRINT:R9%=CVT$%(R1$(G2%)) 60 GOTO 1000 500 ON ERROR GOTO 0 IF ERR<>5% 505 OPEN "RECORD" AS FILE 1%:GOSUB 700 510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$ 515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%) 520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CVT%$(0%) FOR K%=1% TO 12% 530 PUT #1%,RECORD 1%:RESUME 30 600 LSET R1$(K%)=CVT%$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%): PUT #1%,RECORD N1%:GOTO 30 700 FIELD #1%,40%*(K%-1%)+32% AS Q$,2% AS R1$(K%),1% AS Z2$(K%), 20% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12% 710 FIELD #1%,1% AS N1$,31% AS O$:RETURN 800 ON ERROR GOTO 0 IF ERR<>11% 810 RESUME 600 1000 CLOSE 1% 1010 PRINT:PRINT "PROGRESSIVE ADDING GAME -- LARGE NUMBERS!":PRINT 1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2% 1025 V9$=SYS(CHR$(3%)) 1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5% 1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4% 1050 RANDOM 1060 R%,W1%=0%:T0=TIME(0%):GOSUB 1200 FOR A%=10% TO 15% 1080 PRINT:PRINT "CONGRATULATIONS, ";N$;" -- YOU MADE IT!!":PRINT 1090 T0=TIME(0%)-T0:T%=T0/60%:S%=T0-T%*60% 1093 PRINT:PRINT "YOU FINISHED IN";T%;"MINUTES AND";S%;"SECONDS!!": PRINT "(";N$;" -- YOU GOT";R%;"RIGHT AND";W1%;"WRONG.)": PRINT:PRINT:R%=T0:GOTO 9000 1200 PRINT:PRINT "-----> ";FNN$(A%);"'S!!":PRINT 1205 W%=0%:FOR A8%=1% TO 3% 1210 A5%=FNR%(A%+1%)-1%:GOTO 1210 IF A%(1%)=A5% OR A%(2%)=A5%: A%(1%)=A5%:A%(2%)=A%-A5%:A%(3%)=A%:M%=FNR%(2%) 1215 A$(M%)="[]":A$(3%-M%)=FNN$(A%(3%-M%)):A$(3%)=FNN$(A%(3%)):T9%=0% 1220 PRINT A$(1%);" + ";A$(2%);" = ";A$(3%);TAB(15%);"<----";:C%=FNA%: C8%=0%:GOSUB 1270:GOTO 1220 IF C8%=1% 1225 NEXT A8% 1230 RETURN IF W%<2%:PRINT:PRINT "LET'S DO SOME MORE OF THOSE, ";N$;"!!": A%=A%-1%:RETURN 1270 GOTO 1300 IF C%=0%:PRINT "WRONG";:W%=W%+1%:W1%=W1%+1% 1280 GOTO 1310 IF T9%=1% 1290 PRINT " -- TRY AGAIN!!":T9%,C8%=1%:RETURN 1300 PRINT "CORRECT!!":R%=R%+1%:RETURN 1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> ["; FNN$(A%(M%));"] !!":PRINT:RETURN 1320 DEF FNA% 1330 D%=0%:PRINT "["; 1340 A7%=FNQ%:D%=D%*10%+A7%:GOTO 1340 IF FNB%(D%)A%(M%)/10%^FNB%(A%(M%)) 1350 FNA%=1%:FNA%=0% IF D%=A%(M%) 1360 PRINT "]";TAB(25%);"<---"; 1370 FNEND 1380 DEF FNB%(X9%) 1390 IF X9%<1% THEN FNB%=0%:GOTO 1410 1400 FNB%=INT(LOG10(X9%)) 1410 FNEND 1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%) 1430 DEF FNR%(X9%) 1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9% 1450 FNR%=X8%+1% 1460 FNEND 1470 DEF FNQ% 1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9% 1490 FNQ%=C1% 1500 PRINT CHR$(C1%+48%); 1510 FNEND 1520 DEF FNP% 1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580 1540 B5%(K5%)=-1% FOR K5%=1% TO 5% 1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT 1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6% 1570 B6%=1%:GOTO 1530 1580 FNEND 1590 PRINT:PRINT:V9$=SYS(CHR$(2%)) 1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT 1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES. "; 1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE "; "ON THESE PROBLEMS!!!":GOTO 1650 1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650 1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650 1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650 1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000 9000 PRINT:V9$=SYS(CHR$(2%)):GOTO 9600 IF G2%=0%:GOTO 9200 IF R%"Y" 9203 PRINT "CONGRATULATIONS, ";N$;"!!! A NEW RECORD!!": PRINT:PRINT 9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1% 9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$ 9220 LSET R1$(G2%)=CVT%$(R%):LSET D1$(G2%)=DATE$(0%) 9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%) 9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1% 9500 PRINT:PRINT:CLOSE 1% 9600 END