发个几年前的小程序~~~
gvbasic吧
全部回复
仅看楼主
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
level 4
linhir 楼主
230 IF TIMER<30 THEN 450
240 OPEN NAME$+"MU" FOR OUTPUT AS 
#1:WRITE #
1,ST,TIMER:CLOSE #1
250 OPEN NAME$+"PAST" FOR INPUT AS #1:FOR I=1 TO 30:INPUT #1,A(I)
260 NEXT I:CLOSE #1
290 OPEN NAME$+"PAST" FOR OUTPUT AS #1
300 FOR I=2 TO 30
310 WRITE #1,A(I):NEXT I
320 WRITE 
#1,T:CLOSE #
1
330 GOTO 0
450 OPEN NAME$+"MU" FOR OUTPUT AS 
#1:WRITE #
1,ST,TIMER+1:CLOSE #1
460 OPEN NAME$+"PAST" FOR APPEND AS 
#1:WRITE #
1,T:CLOSE #1:GOTO 0
1000 OPEN NAME$+"MU" FOR INPUT AS 
#1: INPUT #
1,ST,TIMER:CLOSE #1:CC=5000
1010 OPEN NAME$+"PAST" FOR INPUT AS #1: FOR I=1 TO TIMER:INPUT #1,A(I):IF CA(I) THEN CC=A(I)
1030 G=G+A(I): NEXT I: G=INT(G/(I-1)):CLOSE #1
1040 GRAPH
1050 PRINT INT(C):LOCATE 5,1:PRINT INT(CC);: LCOATE 3,1:PRINT G;
1070 X=135/(TIMER-1):Y=80/(C-CC)
1080 FOR I=2 TO TIMER
1090 LINE 24+(I-2)*X,(C-A(I-1))*Y,24+(I-1)*X,(C-A(I))*Y,1
1100 NEXT I
1101 I=INT(CC/50+1)*50:WHILE I<=C
1103 LINE 24,(C-I)*Y,159,(C-I)*Y
1104 I=I+50:WEND
1105 FOR I=25 TO 159 STEP 2
1106 DRAW I,(C-G)*Y:NEXT I
1110 IN$=INKEY$
1180 GOTO 0
2000 P=PEEK(1129)*3600+PEEK(1130)*60+PEEK(1131)/2
2010 RETURN
5000 REM
5010 FOR I=1 TO LEN(NAME$)
5020 G(I)=ASC(MID$(NAME$,I,1)):POKE I+5000,G(I)
5030 NEXT I;POKE 5000,LEN(NAME$)
5040 RETURN

2009年06月02日 06点06分 2
level 4
linhir 楼主
有几个小错误...抱歉...
5030行(:)
1050行(LOCATE)拼错了...
1行中:4之间也许要空格...
然后就可以运行了~
2009年06月02日 06点06分 3
level 0
加油
2009年06月04日 15点06分 4
level 4
linhir 楼主
当时为了训练计算能力设计的...
惊现吧主~
2009年06月20日 03点06分 7
level 4
linhir 楼主
可惜找不到BASIC助手+了...
2009年07月12日 16点07分 9
level 4
linhir 楼主
现在就在用模拟器...
2009年07月16日 06点07分 11
level 1
回复:11楼
哪里有模拟器啊,之前有个人ggv论坛叫topgun的人07年5月说要弄出gvb电脑短的ide08年8月说了“完成编译前预处理和词法分析两个部分,接下来还有语法分析,语义分析,中间代码生成,虚拟机
作了一个简单的可视化用户编程接口用于调试内核
接下来可能更忙,所以,年底之前吧,应该可以完成。”
就没下文了,大概随着时间他也有自己事要做,觉得这个没什么意吧

2010年02月04日 05点02分 12
1