求算法,为什么删我贴??

jieming1983 2005-05-19 01:01:26
手头上有个问题,就是写一个关于“(”“)”“+”“-”“*”“/”的算法,要求是写个函数,让这个函数计算出某个带有以上运算符的式子;例如,式子为((a+b)*c)+(c+d)*c ,通过函数类似count(s:string;value:array of string)计算出式子结果,其中s为具体的式子,value为变量的值。
不知道网上有没有现成的这样的函数,,很急啊,望高手们帮忙!!
...全文
139 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssq237712 2005-05-19
  • 打赏
  • 举报
回复
这种算法网上很多的,用二叉树也可以。两边扫描,一边分析,一边计算。
记得有带源码的这种控件,你可以找个来看看
hellolongbin 2005-05-19
  • 打赏
  • 举报
回复
不通过其他方法那可累了
ly_liuyang 2005-05-19
  • 打赏
  • 举报
回复
Google上能找到的

http://lysoft.7u7.net
jieming1983 2005-05-19
  • 打赏
  • 举报
回复
这样不行的,不能通过其他途径来实现,要完整的写个算法。
可能是我操做的失误,发了两次,不过如果能正确解答的话,我照样发分
hellolongbin 2005-05-19
  • 打赏
  • 举报
回复
呵呵,如果你的程序能连数据库的话,用一个select语句就可以得到结果了
比如
s:='23*4+15-26';
adoquery1.sql.add('select '+s);
然后open
showmessage(adoquery1.fields[0].asstring)看看就知道了
给分吧,哈哈
jinjazz 2005-05-19
  • 打赏
  • 举报
回复
uses ComObj ;
{$R *.dfm}

function Eval(expStr: string): string;
var
js: OleVariant;
begin
js := CreateOleObject('ScriptControl');
js.Language := 'VBScript';
Result := js.Eval(expStr);
js := Unassigned;
end;

procedure TForm1.FormCreate(Sender: TObject);
var a,b,c,d:integer;
begin
a:=2900;
b:=434;
c:=200;
d:=34;
showmessage(Eval(format('((%d+%d)*%d)+(%d+%d)*%d',[a,b,c,c,d,c])));
end;

16,747

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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