回 帖 发 新 帖 刷新版面

主题:[投票]建议别看了,很糟糕的一个程序

这是我写的一个非常糟糕的程序
是计算的
列:
要想计算 1+2+3
就输入 + [1;2;3]
因为程序不检测空格
所以输入 +[1;2;3] 也行 
;是分号
要计算乘法的话
*[第一个数;第二个数......第N个数]
列:
* [1;2;3]
输出:
* 1 2 3
=  6
应该知道一些了吧,
同样:
^ (^[第一个数;第二个数......第N个数])[应该是求平方吧]
~ (~[第一个数;第二个数......第N个数])[异或]
@ (@[第一个数;第二个数......第N个数])[OR]
# (#[第一个数;第二个数......第N个数])[AND]
% (%[第一个数;第二个数......第N个数])[就是Mod]
还有系统命令
& [命令序号] 
命令序号:
0 退出
1 CLS(清屏)
列:&[0]
下面是程序:


'---------------------------------------------------------------------------
DECLARE SUB Split (X$(), y2$, z$)
DECLARE SUB MiddleCode (Code AS STRING)
SCREEN 12
ON ERROR GOTO ErrCode
DIM TucCode   AS STRING
DO
INPUT "", TucCode
TucCode = LCASE$(TucCode)
MiddleCode TucCode
LOOP
END
ErrCode:
PRINT "ErrorCode"
PRINT "Key Enter To Exit"
DO
LOOP UNTIL INKEY$ = CHR$(13)
END

SUB MiddleCode (Code AS STRING)
DIM SplitCode(LEN(Code)) AS STRING
DIM Codetmp              AS STRING
IF LEN(Code) = 0 THEN EXIT SUB
SELECT CASE MID$(Code, 1, 1)
CASE "*"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "*    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d * VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "+"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "+    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d + VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "-"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
PRINT "-    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
 d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d - VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "\"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "\    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
 d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d \ VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "%"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "%    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d MOD VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "/"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "/    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d / VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "^"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "^    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
 d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d ^ VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "~"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "~    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
 d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d XOR VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "@"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "@    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
 d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d OR VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=   "; Codetmp
PRINT
CASE "#"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
Split SplitCode(), Codetmp, ";"
PRINT "#    ";
FOR a = 1 TO VAL(SplitCode(0))
PRINT SplitCode(a) + " ";
NEXT
PRINT
d = VAL(SplitCode(1))
FOR a = 2 TO VAL(SplitCode(0))
d = d AND VAL(SplitCode(a))
NEXT
Codetmp = STR$(d)
PRINT "=    "; Codetmp
PRINT
CASE "&"
Codetmp = MID$(Code, INSTR(Code, "[") + 1)
Codetmp = MID$(Codetmp, 1, INSTR(Codetmp, "]") - 1)
SELECT CASE Codetmp
CASE "0"
END
CASE "1"
CLS
END SELECT
END SELECT
END SUB

SUB Split (X$(), y2$, z$)
y$ = y2$ + z$
l% = LEN(z$)
i% = INSTR(y$, z$)
j% = 1
DO WHILE i%
   K% = K% + 1
   X$(K%) = MID$(y$, j%, i% - j%)
   j% = i% + l%
   i% = INSTR(j%, y$, z$)
LOOP
X$(0) = STR$(K%)
END SUB


回复列表 (共2个回复)

沙发


[em10][em10][em10][em13][em17]好长

板凳


太LONG了!![em10][em18][em18][em18]

我来回复

您尚未登录,请登录后再回复。点此登录或注册