回 帖 发 新 帖 刷新版面

主题:[讨论]编一个简单的计算器

我想编一个简单的计算器,要求输入整条运算式子,例如: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个回复)

沙发

我还想知道如何才能把程序运行的速率提高,谢谢

板凳

用GWBASIC可轻松做到

3 楼

最好再加一个INSTR,用来查找是否包含有非法字符
另外我也想知道怎么提高计算速度,还请各位高手不吝赐教。

4 楼

我感觉你用字符串很复杂。。我也边了一个。。我是用循环的。。

5 楼

我在学习机和文曲星上玩过GWBASIC……
你编了,为什么不贴出来让我们欣赏?

6 楼

呵呵很啊
用vbdos吧

7 楼

谁能编一个包含“加,减,称,除,(,),乘方”七个运算符的程序啊,乘方没有我可以编出来,但加了乘方就编不出来了!!!!!!!!!

8 楼

乘方:

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 楼

谢谢爷爷啊!!!!

10 楼

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

我来回复

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