主题:[讨论]编一个简单的计算器
newonesky
[专家分:0] 发布于 2005-07-07 08:40:00
我想编一个简单的计算器,要求输入整条运算式子,例如:1+1=,然后输出结果
下面是我的一个苯方法,请大家指教一下
INPUT A$
X=LEN(A$)
FOR I= 1 TO X
IF VAL(MID$(A$,I,1))=0
THEN EXIT FOR
END IF
N=N+1
NEXT
B$=LEFT$(A$,N)
C$=MID$(A$,N+2,X-N-2)
D$=MID$(A$,N+1,1)
B=VAL(B$)
C=VAL(C$)
SELECT CASE D$
CASE "+"
PRINT B+C
CASE "-"
PTINT B-C
CASE "*"
PRINT B-C
CASE"/"
PRINT B/C
END SELECT
END
以上还没有考虑到输入不正确的情况,我能力有限,不能考虑周到,望各位前辈指导
回复列表 (共11个回复)
沙发
newonesky [专家分:0] 发布于 2005-07-07 16:01:00
我还想知道如何才能把程序运行的速率提高,谢谢
板凳
def [专家分:3380] 发布于 2005-07-07 21:44:00
用GWBASIC可轻松做到
3 楼
prairiewolf [专家分:290] 发布于 2005-07-07 23:03:00
最好再加一个INSTR,用来查找是否包含有非法字符
另外我也想知道怎么提高计算速度,还请各位高手不吝赐教。
4 楼
友情友谊 [专家分:0] 发布于 2005-07-08 16:29:00
我感觉你用字符串很复杂。。我也边了一个。。我是用循环的。。
5 楼
prairiewolf [专家分:290] 发布于 2005-07-08 23:52:00
我在学习机和文曲星上玩过GWBASIC……
你编了,为什么不贴出来让我们欣赏?
6 楼
def [专家分:3380] 发布于 2005-07-12 00:42:00
呵呵很啊
用vbdos吧
7 楼
zqnhlm [专家分:780] 发布于 2005-07-12 14:13:00
谁能编一个包含“加,减,称,除,(,),乘方”七个运算符的程序啊,乘方没有我可以编出来,但加了乘方就编不出来了!!!!!!!!!
8 楼
moz [专家分:37620] 发布于 2005-07-12 16:32:00
乘方:
function xf(a,b)
c=int(b)
d=b-c
for i=1 to c
e=e*a
next
if d<>0 then
这里比较复杂
一下子没时间不想思考了
1. 把d做分整分数(就是分子分母都是整数f/g)
2. 约分化简f/g
3. 按上面循环的道理计算(a^f)/(a^g)
(我忘了这个结果能不能通过对数函数来求了)
4. 把这个结果乘到e上去
end if
xf=e
end function
9 楼
zqnhlm [专家分:780] 发布于 2005-07-12 18:09:00
谢谢爷爷啊!!!!
10 楼
吴志鹏 [专家分:0] 发布于 2005-12-15 14:05:00
CLS
ON KEY(1) GOSUB a
KEY(1) ON
ON KEY(2) GOSUB b
KEY(2) ON
ON KEY(3) GOSUB c
KEY(3) ON
ON KEY(4) GOSUB d
KEY(4) ON
ON KEY(5) GOSUB e
KEY(5) ON
ON KEY(6) GOSUB f
KEY(6) ON
DO
LOOP UNTIL INKEY$ = " "
END
KEY(1) OFF
KEY(2) OFF
KEY(3) OFF
KEY(4) OFF
KEY(5) OFF
KEY(6) OFF
a: PRINT "jia fa"
INPUT b, c
PRINT b + c
RETURN
b: PRINT "jian fa"
INPUT c, d
PRINT c - d
RETURN
c: PRINT "chengfa huo qiusibianxingmianji"
INPUT e, d
PRINT e * d
RETURN
d: PRINT "chengfa"
INPUT e, f
PRINT e / f
RETURN
e: PRINT "yuan xing mian ji"
INPUT f
PRINT f ^ 2 * 3.14
RETURN
f: PRINT "yuan xing zhou chang"
INPUT g
PRINT g * 2 * 3.14
RETURN
我来回复