如果对一个字符串进行计算

iamjjp 2001-11-16 03:16:37
比如字符串'(100+100)*(100+100)/100+100-100)'
如果才能得到这个字符串的结果呢?
...全文
195 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tsting 2001-11-17
  • 打赏
  • 举报
回复
我觉得应看成一个计算公式,其中的数字当作变量。
torrent_zlh 2001-11-16
  • 打赏
  • 举报
回复
请查一下《编译原理》,其中有词法生产器,把它的算法给看明白了,你就可以分析这种求值表达式了。就象楼上的朋友说的那样,要自己设计堆栈,然后还要设计一个二维表,用来存放运算符号的优先级。具体算法比较麻烦,可以查一下相关的书籍。相信大学三、四年纪的学生手中都应该有C语言的现成的程序(如果开了编译原理课程)。我上学的时候,词法分析是一道作业题。
Modern_tiger 2001-11-16
  • 打赏
  • 举报
回复
补充:可以不设置为sqlca对象。
Modern_tiger 2001-11-16
  • 打赏
  • 举报
回复
sle_1为输入条件

建一个dw
sqlselect为 select '' from dual
增加计算域comp

dw_2.settransobject(sqlca)
dw_2.insertrow(0)
dw_2.object.comp.expression=sle_1.text
messagebox('结果为',string(dw_2.getitemdecimal(1,'COMP')))

要容错不容易。

稿费,稿费!^_^
ksmgbits 2001-11-16
  • 打赏
  • 举报
回复
必须先转换成数值类型,在计算,用long(string)函数或int(string)函数
iamjjp 2001-11-16
  • 打赏
  • 举报
回复
这个跟计算器程序完全不同。
我现在就是要求由用户根据数据库中字段来定义一个公式。
比如数据有a,b,c,d四个数值型字段
用户可以对四个字段进行一个公式的定义
如((a+b)+(c*d))/(100-a))
也可定义成其他的.如((1-c)*(2+b))/(c-d)*(b+d)
我要做的就是得到最后答案,该如果去做呢。我可以给N次分。
fallstone 2001-11-16
  • 打赏
  • 举报
回复
你要得出什么结果?要看结果再定计算方式。具体需求说一下。
killerdanny 2001-11-16
  • 打赏
  • 举报
回复
你会做计数器的程序吗?!如果上学时学过就好了,记得我上学学过,应该用栈来处理!
这个不是PB的问题。你可以到算法版去问问!

iamjjp 2001-11-16
  • 打赏
  • 举报
回复
望指教?
iamjjp 2001-11-16
  • 打赏
  • 举报
回复
关键是我不是知道这个字符串的格式是不知道的,是由用户去定。如何用killerdanny(danny)的方式去计算呢。
killerdanny 2001-11-16
  • 打赏
  • 举报
回复
(LONG(MID('(100+100)*(100+100)/100+100-100)',2,3))+LONG(MID('(100+100)*(100+100)/100+100-100)',6,3)))*(LONG(MID('(100+100)*(100+100)/100+100-100)',12,3))+LONG(MID('(100+100)*(100+100)/100+100-100)',17,3)))--到除号这里!
后面你自己写吧,和和!
llww 2001-11-16
  • 打赏
  • 举报
回复
字符相乘,???


能算出什么,


1,109

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧