用delphi编写一个计算器,可几个数进行运算,两个数运算我会,大神多个数运算的怎么写,求救啊。
2016-12-20 · 知道合伙人软件行家
关注
展开全部
编写计算器程序,对于多个数运算,可以采取以下办法:
一是每次只进行两个数进行运算,然后将结果暂存,再进行下一次运算。
另一种是将先将运算式输入完毕,再进行分解后进行运算。这种方法要想做的好,需要进行语法解析。如果只是简单地加减乘除,不包含括号等,则相对简单一些。取巧的办法是调用 vbscript 的 eval 函数。
一是每次只进行两个数进行运算,然后将结果暂存,再进行下一次运算。
另一种是将先将运算式输入完毕,再进行分解后进行运算。这种方法要想做的好,需要进行语法解析。如果只是简单地加减乘除,不包含括号等,则相对简单一些。取巧的办法是调用 vbscript 的 eval 函数。
追问
问题是运算符号的有优先级,很难啊
追答
取巧的办法是调用 vbscript、js 中的 eval 函数。
以下是示例代码(请参考万一博客中的相关内容):
uses System.Win.ComObj;
{$R *.dfm}
function RunJs(const JsCode, JsVar: string): string;
var
script: OleVariant;
begin
try
script := CreateOleObject('ScriptControl');
script.Language := 'JavaScript';
script.ExecuteStatement(JsCode);
Result := script.Eval(JsVar);
except
Result := '';
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
begin
s := RunJs('result = ' + Edit1.Text, 'result');
ShowMessage(s);
end;
运行截图:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询