大家过年好!怎样求数学表达式的值?[悬赏100分]

supernewstar 2005-02-16 04:07:33
怎样求数学表达式的值?比如:(2-4587)*1236其中包括求幂、三角等函数,怎么做?提供相关连接也可,谢谢
...全文
104 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
aloking 2005-02-16
  • 打赏
  • 举报
回复
转贴 代码就不贴了 呵呵 ,流亡兄 难得在这里看见你
CAJSCRPT.ZIP
TCajScript 是一个 Pascal 程序语言解释器类,提供多项字符串处理函式 ( 例如 Pos、Copy、Delete、Insert、Uppercase、IntToStr、StrToInt、Chr 及 Ord) ( 1.4 版,附源码 ),作者 : Carlo Kok。

COMPILER.ZIP
一组制作编译器的构件,包含 Lexical 及 Syntax Parser ( 1.02 版,附源码 ),作者: Max Belugin。

COPASCAL.ZIP
将 Turbo Pascal 上的 CoPascal 编译器及解释器 ( compiler/interpreter ) 移植到 Delphi ( 2.01 版,附源码 ) ,作者 : Colin LAPLACE。

DELPHIN.ZIP
Delphi Object Pascal 的解释器, VCL 构件及 .DFM 文件都能够显示执行 ( 1.21 版,附源码 ), 作者 : Sergey Kurinny。

EXPRESS.ZIP
能够计算数学运算式的构件 ( 2.0 版,附源码 ),作者 : Renate Schaaf。

EXPREV.ZIP
是一个能够解析数学运算式,并且计算其值的构件,支持四则运算、三角函数、指数对数、次方运算及使用者自定变量 ( 1.40 版,附源码 ),作者 : BitSoft Development, L.L.C.。
可以用来产生密码,比如真正的密码是[(sin(a)+cos(b))/c]那么只要传送abc给对方就行了

EXPREVAL.ZIP
Expressions 单构件能够解析数学运算式的单元 ( 1.0.1 版,附源码 ),作者 : Production Robots Engineering Ltd。

FEVAL.ZIP
TEval 是一个能够解析数学运算式的构件 ( 1.0 版,附源码 ),作者 : Giuseppe Stalteri。

MPASLEX2.ZIP
TmPasLex 是一个快速解析 Pascal 程序语言语法 Token 的构件 ( 1.89 版,附源码 ),作者 : Martin Waldenburg。

MWPASPAR.ZIP
TmPasParser 一个解析 Pascal 程序语言语法的 Parser 构件 ( 1.91 版 ,附源码 ) ,作者:Martin Waldenburg。

PSCRIPT.ZIP
P-Script 是类似 Pascal 的程序语言,此构件提供解译 P-Script 程序语言的能力 ( 0.05 Beta 版,无源码 Delphi 3.0 适用 ) ,作者 : Kirill B. Kuznetsov。

TINYPAS.ZIP
TinyPascal 编译器是一个小型精简的 Pascal 程序语言编译器 ( 附源码 ),作者 : Colin LAPLACE。

XAEVAL.ZIP
是一个能够解析数学运算式的构件 ( 1.1 版,附源码 )。作者 : Lincoln Birnie。

Z_PARSER.ZIP
能够解析数学运算式的单元 ( 1.0 版,附源码 ),作者 : Antonie Baars。
非常小,很好
kuki84 2005-02-16
  • 打赏
  • 举报
回复
你是要实现,还是要算法?
要实现的就用javascript,或用数据库什么的都成。
要算法,逆波兰式最经典的,编译原理 数据结构 程序算法之类的书都会提到,可以看看
ssq237712 2005-02-16
  • 打赏
  • 举报
回复
找一个表达式解析的类,网上多了去了。
1楼的办法可以解决大部分东西,但有些函数的写法似乎也必须和它保持一致。
pl5th2001 2005-02-16
  • 打赏
  • 举报
回复
楼上的方法速度最快了,也最简单
aloking 2005-02-16
  • 打赏
  • 举报
回复
将表达式转换成逆波兰式的,再用逆波兰式一步一步算
jinjazz 2005-02-16
  • 打赏
  • 举报
回复
uses ComObj ;
{$R *.dfm}
function Eval(expStr: string): string;
var
js: OleVariant;
begin
js := CreateOleObject('ScriptControl');
js.Language := 'JavaScript';
Result := js.Eval(expStr);
js := Unassigned;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
showmessage(Eval('((3+4)-5)/(6*7)'))
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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