社区
C++ Builder
帖子详情
求教!字符表达式的递归分析法实现算法??
yougu110
2003-08-22 02:25:12
正在做一个项目,项目中遇到了需要识别用户输入的表达式的问题。那位仁兄有关于这方面的资料或代码?
谢谢!
...全文
115
16
打赏
收藏
求教!字符表达式的递归分析法实现算法??
正在做一个项目,项目中遇到了需要识别用户输入的表达式的问题。那位仁兄有关于这方面的资料或代码? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sncel
2003-08-27
打赏
举报
回复
晕,我有完整的C表达式解析公式代码,我已应用在Palm 程序中了,找我要就行了呀。
影子传说
2003-08-26
打赏
举报
回复
学习
yougu110
2003-08-26
打赏
举报
回复
to All
为帮助有同样需求的朋友,特将安装和使用过程总结如下:
1、安装ActiveX控件。在BCB中“Component|import ActiveX Control|Add”选择C:\winnt\system32\msscript.ocx。接着“Install...”弹出“Install Component”,选“into new package”,指定存放的路径,建议放在安装目录下的ocx目录里。然后按照提示一路确定完成安装,关闭当前项目。
2、使用TScriptControl。新建一个项目,在ActiveX面板,找到刚添加的TscriptControl拖入。
测试代码如下:
wchar_t *exp ;
int lenght;
lenght = Edit1->Text.Length();
exp = new wchar_t[lenght+1];
exp = Edit1->Text.WideChar(exp, lenght);
ScriptControl1->Language = "JavaScript";
TVariant result = ScriptControl1->Eval(exp);
Edit2->Text = (AnsiString)result;
yougu110
2003-08-26
打赏
举报
回复
to BCB(天下三分明月夜,二分无赖是扬州)
万分感谢老兄的帮助,按照你的指点我已经测试成功,且已用在我的项目里。工作的很好!
再次感谢!
BCB
2003-08-25
打赏
举报
回复
WideString exp="2*3+5";
ScriptControl1->Language="JavaScript";
TVariant result=ScriptControl1->Eval(exp.c_bstr());
ShowMessage((String)result);
BCB
2003-08-25
打赏
举报
回复
调用方法有点问题
yougu110
2003-08-25
打赏
举报
回复
msscript.ocx安装在BCB中后,使用如下:
TScriptControl *ScriptControl1 = new TScriptControl(this);
AnsiString result = (AnsiString )(ScriptControl1->Eval(WideString("2+3")));
ShowMessage(result);
编译成功
运行时出错
报错:“this->Eval(Expression,(VARIANT *)&pvarResult);未指定错误……”
yougu110
2003-08-23
打赏
举报
回复
各位大哥,帮帮忙吧!
要分再给!!
guanshangming
2003-08-22
打赏
举报
回复
如果你做了这个,记得给我一份,也可以给你参考一下
guanshangming
2003-08-22
打赏
举报
回复
通常这类问题用递归算法,
第一步、定义一个缓冲区、和符号对应的函数,如字符'+'对应哪个函数等,
如
double FuncAdd(double Op1,double Op2)
{
return Op1 + Op2;
}
建立一个结构
typedef Struct
{
char sign;
double (*Func)(double Oper1,double Oper2);
}MyOper;
定义结构数组,对应上面的函数;
MyOper Funcs[20];
Funs[0].sign = '+'
Funs[0].Func = FuncAdd;
第二步、字符串的整理,如去除空格等。
第三步、写一个递归调用的函数,遇到'('就入栈再递归等分析语法,直至最内一层返回结果
如操作符与Funs[x].sign 相同,例如'+',就调用Funs[0].Func返回结果
思路大概如此,如果有现成的,那就最好不过了
yougu110
2003-08-22
打赏
举报
回复
在线等,急!!!
跪谢!
yougu110
2003-08-22
打赏
举报
回复
在线等,急!!!
跪谢!
yougu110
2003-08-22
打赏
举报
回复
to yesry(噎死你)
偶穷人一个,这个项目偶只是帮忙。但很有兴趣!!
to ljlln(阿明)
正要求教如何解析。特别是括号,运算符的优先级。再求教!
to BCB(天下三分明月夜,二分无赖是扬州)
能指出名字么,感谢之至!!
BCB
2003-08-22
打赏
举报
回复
最好找现成的,win2000上就有一个.ocx,可拿来用
ljlln
2003-08-22
打赏
举报
回复
是用户自定义公式吧!你你就解析就是了!
yesry
2003-08-22
打赏
举报
回复
你准备花多少钱?
ACM程序设计课程总结
文章目录知识总结一、
递归
算法
二、贪心
算法
三、动态规划四、分治
算法
五、数论六、STL的简单应用学习这门课后的感想 知识总结 一、
递归
算法
【
算法
描述】 程序直接或间接调用自身的编程技巧称为
递归
算法
。 【主要思想】把大型复杂的问题一步一步的转化为一个与原问题相似规模的较小的问题来求解。就是把一个不能或不好解决的大问题转化为一个或几个小问题,再把这些小问题进一步分解成更小的小问题。 【关键步骤】 分析问题找出大问题与小问题之间的关系,写出他们的前后关系式。然后最关键的是找出
递归
的定义和
递归
的终止条件。 这种
算法
的
[转]程序员笔试知识点整理
0、常考基础必知必会 A. 排序:排序有几种,各种排序的比较,哪些排序是稳定的,快排的
算法
; B. 查找:哈希查找、二叉树查找、折半查找的对比,哈希映射和哈希表的区别? C. 链表和数组的区别,在什么情况下用链表什么情况下用数组? D. 栈和队列的区别? E. 多态,举例说明;overload和override的区别? F.
字符
串有关的函数,比如让你写一个拷贝
字符
串的函数啊,或者
字符
...
程序员笔试知识点整理
0、常考基础必知必会 A. 排序:排序有几种,各种排序的比较,哪些排序是稳定的,快排的
算法
; B. 查找:哈希查找、二叉树查找、折半查找的对比,哈希映射和哈希表的区别? C. 链表和数组的区别,在什么情况下用链表什么情况下用数组? D. 栈和队列的区别? E. 多态,举例说明;overload和override的区别? F.
字符
串有关的函数,比如让你写一个拷贝
字符
串的函数啊,或者
字符
数据结构总结
0、常考基础必知必会 A. 排序:排序有几种,各种排序的比较,哪些排序是稳定的,快排的
算法
; B. 查找:哈希查找、二叉树查找、折半查找的对比,哈希映射和哈希表的区别? C. 链表和数组的区别,在什么情况下用链表什么情况下用数组? D. 栈和队列的区别? E. 多态,举例说明;overload和override的区别? F.
字符
串有关的函数,比如让你写一个拷贝
字符
串的函数啊,或...
数据结构
数据结构知识点总结整理 0、常考基础必知必会 A. 排序:排序有几种,各种排序的比较,哪些排序是稳定的,快排的
算法
; B. 查找:哈希查找、二叉树查找、折半查找的对比,哈希映射和哈希表的区别? C. 链表和数组的区别,在什么情况下用链表什么情况下用数组? D. 栈和队列的区别? E. 多态,举例说明;overload和override的区别? F.
字符
串有关的函数,比如
C++ Builder
13,826
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章