level 4
linhir
楼主
这组程序用于两位数乘法速算训练...适用于pc1000a
以下是档案增加程序。
10 PRINT "增加档案"
20 PRINT "请输入档案名(<=5)(字母):";:INPUT NAME$
25 OPEN NAME$+"MU" FOR RANDOM AS
#1:IF LOF(1)<>0 THEN CLOSE #
1:PRINT "已存在":GOTO 10
26 CLOSE #1
30 PRINT "请估计您的最小/最大时间";: INPUT SMALL,BIG
40 OPEN NAME$+"MU" FOR APPEND AS #1:WRITE
#1,SMALL,2:CLOSE #
1
50 OPEN NAME$+"PAST" FOR APPEND AS
#1:WRITE #
1,SMALL,BIG:CLOSE #1:END
以下是主程序:
0 CLEAR: DIM R(20,2),A(31): REM MULTIPLICATION
1 IF PEEK(5001)=255 THEN PRINT "输入档案名:";: INPUT NAME$:4 ELSE 2
2 L=PEEK(5000): FOR I=5001 TO 5000+L:NAME$=NAME$+CHR$(PEEK(I)):NEXT I
4 OPEN NAME$+"MU" FOR INPUT AS #1:INPUT
#1,ST,TIMER:CLOSE #
1
5 GOSUB 5000
10 TEXT: PRINT "乘法训练","1.开始","2.最近成绩"," ","最短时间:";ST;"秒";
15 IN$=INKEY$: IF IN$="b" THEN CLS:20 ELSE IF IN$="n" THEN 1000 ELSE 16
16 IF IN$=CHR$(27) THEN POKE 5001,255: END ELSE 15
20 S=0
30 FOR I=1 TO 20
40 R(I,1)=INT(RND(1)*100): IF R(I,1)<10 THEN 40
50 IF R(I,1)/10=INT(R(I,1)/10) THEN 40
60 R(I,2)=INT(RND(1)*100): IF R(I,2)<10 THEN 60
70 IF R(I,2)/10=INT(R(I,2)/10) THEN 60
80 NEXT I
90 GOSUB 2000:P1=P
100 FOR I=1 TO 20
110 PRINT R(I,1);"*";R(I,2);"=";:POKE 199,154:INPUT N
115 IF N=0 THEN GOSUB 2000 ELSE 120
116 P2=P:CLS: PRINT "PAUSE!":IN$=INKEY$:GOSUB 2000:P1=P1+P-P2:GOTO 110
120 IF N=R(I,1)*R(I,2) THEN PRINT "RIGHT!": S=S+5 ELSE PRINT "WRONG!"; R(I,1)*R(I,2)
130 NEXT I
140 P=-P1+PEEK(1129)*3600+PEEK(1130)*60+PEEK(1131)/2
150 PRINT "测验结果:","SCORE:";S,"TIME:";P:IN$=INKEY$
160 OPEN NAME$+"MU" FOR INPUT AS #1
170 INPUT #1,ST,TIMER
180 CLOSE #1
181 IF S<60 THEN PRINT "不及格!重做!":IN$=INKEY$: GOTO 0
190 T=P+INT((100-S)/5*(P/20))
200 PRINT "校正使用时间:";T;"秒"
210 IN$=INKEY$
220 IF T
2009年06月02日 06点06分
1
以下是档案增加程序。
10 PRINT "增加档案"
20 PRINT "请输入档案名(<=5)(字母):";:INPUT NAME$
25 OPEN NAME$+"MU" FOR RANDOM AS
#1:IF LOF(1)<>0 THEN CLOSE #
1:PRINT "已存在":GOTO 10
26 CLOSE #1
30 PRINT "请估计您的最小/最大时间";: INPUT SMALL,BIG
40 OPEN NAME$+"MU" FOR APPEND AS #1:WRITE
#1,SMALL,2:CLOSE #
1
50 OPEN NAME$+"PAST" FOR APPEND AS
#1:WRITE #
1,SMALL,BIG:CLOSE #1:END
以下是主程序:
0 CLEAR: DIM R(20,2),A(31): REM MULTIPLICATION
1 IF PEEK(5001)=255 THEN PRINT "输入档案名:";: INPUT NAME$:4 ELSE 2
2 L=PEEK(5000): FOR I=5001 TO 5000+L:NAME$=NAME$+CHR$(PEEK(I)):NEXT I
4 OPEN NAME$+"MU" FOR INPUT AS #1:INPUT
#1,ST,TIMER:CLOSE #
1
5 GOSUB 5000
10 TEXT: PRINT "乘法训练","1.开始","2.最近成绩"," ","最短时间:";ST;"秒";
15 IN$=INKEY$: IF IN$="b" THEN CLS:20 ELSE IF IN$="n" THEN 1000 ELSE 16
16 IF IN$=CHR$(27) THEN POKE 5001,255: END ELSE 15
20 S=0
30 FOR I=1 TO 20
40 R(I,1)=INT(RND(1)*100): IF R(I,1)<10 THEN 40
50 IF R(I,1)/10=INT(R(I,1)/10) THEN 40
60 R(I,2)=INT(RND(1)*100): IF R(I,2)<10 THEN 60
70 IF R(I,2)/10=INT(R(I,2)/10) THEN 60
80 NEXT I
90 GOSUB 2000:P1=P
100 FOR I=1 TO 20
110 PRINT R(I,1);"*";R(I,2);"=";:POKE 199,154:INPUT N
115 IF N=0 THEN GOSUB 2000 ELSE 120
116 P2=P:CLS: PRINT "PAUSE!":IN$=INKEY$:GOSUB 2000:P1=P1+P-P2:GOTO 110
120 IF N=R(I,1)*R(I,2) THEN PRINT "RIGHT!": S=S+5 ELSE PRINT "WRONG!"; R(I,1)*R(I,2)
130 NEXT I
140 P=-P1+PEEK(1129)*3600+PEEK(1130)*60+PEEK(1131)/2
150 PRINT "测验结果:","SCORE:";S,"TIME:";P:IN$=INKEY$
160 OPEN NAME$+"MU" FOR INPUT AS #1
170 INPUT #1,ST,TIMER
180 CLOSE #1
181 IF S<60 THEN PRINT "不及格!重做!":IN$=INKEY$: GOTO 0
190 T=P+INT((100-S)/5*(P/20))
200 PRINT "校正使用时间:";T;"秒"
210 IN$=INKEY$
220 IF T