手头上有个问题,就是写一个关于“(”“)”“+”“-”“*”“/”的算法,要求是写个函数,让这个函数计算出某个带有以上运算符的式子;例如,式子为((a+b)*c)+(c+d)*c ,通过函数类似count(s:string;value:array of string)计算出式子结果,其中s为具体的式子,value为变量的值。
不知道网上有没有现成的这样的函数,,很急啊,望高手们帮忙!!
不知道网上有没有现成的这样的函数,,很急啊,望高手们帮忙!!
解决方案 »
- DataSetProvider.updatemode
- 简单问题 批处理获取一些硬件信息 dos高手
- 执行一外部程序,并获得了外部程序上一checklistbox的句柄,如何将其某个选项设为enabled状态呢?谢谢,100分送上。
- 好复杂的指针
- 一个值得一看的问题!!!如何得到IWebBrowser接口的句柄!
- 如何增加有效位(有人答对时就追加分)
- abc.mdb中有密码为abcd,如何在程序中加入密码,而不使用系统代的密码输入界面?
- 身份验证,紧急!!!
- 谁能回答Tshape 从 Tgraphiccontrol 继承而来,而Tshape却没有canvas属性?
- 如何通知系统刷新图标?
- 在Delphi中调用VC的DLL的问题,该dll使用MFC类库,并返回一个对象
- 请问如何用SQL语句实现下面查询?
那我就回两遍如果你的程序能连数据库的话,用一个select语句就可以得到结果了
比如
s:='23*4+15-26';
adoquery1.sql.add('select '+s);
然后open
showmessage(adoquery1.fields[0].asstring)看看就知道了
给分吧,哈哈
找一下后缀表达式求值,然后根据算法自己写吧。并不难。另外,如果要表达式有语法检查的功能就要有表达式的产生式,再根据产生式进行语法分析。
表达式的产生式给你算了,接下来你自己搞定吧:
E -> T+E | T-E | T
T -> F*T | F/T | F
F -> (E) | i