手头上有个问题,就是写一个关于“(”“)”“+”“-”“*”“/”的算法,要求是写个函数,让这个函数计算出某个带有以上运算符的式子;例如,式子为((a+b)*c)+(c+d)*c ,通过函数类似count(s:string;value:array of string)计算出式子结果,其中s为具体的式子,value为变量的值。
不知道网上有没有现成的这样的函数,,很急啊,望高手们帮忙!!
不知道网上有没有现成的这样的函数,,很急啊,望高手们帮忙!!
解决方案 »
- adoquery insert into 出错
- 关于文字滚动的问题
- 大家帮帮忙:index is out of date 问题
- 那位朋友能帮忙解释一下TFindDialog和TReplaceDialog这两个类是作什么用的?(在线)
- 发现hsl转rgb算法中的大问题,请教该如何解决!!!!!!!!!!!!!!!!
- 统计子节点问题
- 我的程序有使用Access的单机版改为使用Sqlserver 的网络版,使用ADO连接,出现一个问题:
- 如何在江adoquery中的查询结果写入到文本文件时在进度栏显示进度,小妹急用~~~
- 我有两个edit键当我在一个edit键按了enter后,可以对另一个edit进行编辑,应该怎么做
- 请教高手
- 在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