社区
.NET技术前瞻
帖子详情
公式解析方法求教
penglin1989
2010-06-17 10:11:50
输入任意公式,可进行运算解析,如[(1+2)*4-1]*(1+2)-4;((3-1)/*(2-1)+6)+8-(8-7);
...全文
2321
15
打赏
收藏
公式解析方法求教
输入任意公式,可进行运算解析,如[(1+2)*4-1]*(1+2)-4;((3-1)/*(2-1)+6)+8-(8-7);
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dudufen
2011-06-22
打赏
举报
回复
真悲哀,编译原理不清楚
fanshow
2010-09-24
打赏
举报
回复
怎么看不了
nyq1999
2010-07-20
打赏
举报
回复
悲哀啊,看完帖子我忽然发现,大学时学过编译原理,只记得学过,具体学得什么都忘记了,啊啊啊啊
penglin1989
2010-06-18
打赏
举报
回复
不太明白编译原理,后缀表达式的解析
penglin1989
2010-06-17
打赏
举报
回复
谢谢各位的大力回复!感激不尽!
捷哥1999
2010-06-17
打赏
举报
回复
终于帮你找了一个C#实现的例子!
Simple(x) Numerical Formula Parser
演示项目Exe:
http://www.simplexnumerica.com/SimplexParserExe.zip
演示项目源码:
http://www.codeproject.com/KB/recipes/rwformulaparser/SimplexParser_demo.zip
公式解析类源码:
http://www.codeproject.com/KB/recipes/rwformulaparser/SimplexParser_src.zip
运行效果图:
捷哥1999
2010-06-17
打赏
举报
回复
这是另外一个例子,可以理解它的实现思路,自己用c#实现!
Fast Polymorphic Math Parser
捷哥1999
2010-06-17
打赏
举报
回复
用这个控件!
Fast Mathematical Expressions Parser
悔说话的哑巴
2010-06-17
打赏
举报
回复
还是用正则来弄
Alden
2010-06-17
打赏
举报
回复
这些内容编译原理中都有介绍,机械工业出版社有本《编译原理(第2版)——计算机科学丛书》,不错,你可以参考参考。
1.你首先需要扫描你的表达式,把每一个词素扫描出来,并且确定其类型,例如2 * (12 + 3),你会得到
2 操作数
* 操作符
( 左括号
12 操作数
+ 操作符
3 操作数
) 右括号
2. 中缀表达式的将扫描结果,翻译成后缀表达式。然后按照后缀表达式的解析进行处理即可。
penglin1989
2010-06-17
打赏
举报
回复
您写的有些深奥,懂语义而不懂其内在!最近是准备研究下底层语言,如有妙书,推荐下!3QU
Alden
2010-06-17
打赏
举报
回复
进行表达式解析即可。有两种方式:
1. 中缀表达式解析,你可以采用“算符优先法”。先计算括号,然后计算优先级高的操作符,最后从左到右进行计算。为实现解析,需要两个栈,一个用于保存操作符,一个用于保存操作数以及结果,当读到操作符时并不能立即作计算,需要与操作符栈顶元素进行优先级比较,根据结果然后采用不同的处理方式, 而且算法在时间复杂度以及空间复杂度都较高.
2. 后缀表达式解析,解析流程
从左到右读取中缀表达式,依次一个操作项
如果是操作数直接进入输出队列
读到左括号时总是将它压入栈中
读到右括号, 将最近栈顶的第一个左括号上面的操作符全部依次弹出, 送至输出队列后, 再丢弃左括号
当读到操作符时,将栈中所有优先级高于或等于当前操作符的操作符弹出,送到输出队列中
中缀表达式全部读完后,若栈中仍然有运算符,将其送到输出队列中
后缀表达式由于其自身的优点,表达式的解析是按照操作符的出现顺序进行的,比较简单,扫描一遍即可完成解析.但需要将中缀表达式转化为后缀表达式.
建议使用后缀表达式解析,较简单。
不过你可能需要先了解一下编译原理中的词法扫描方面的知识,因为你需要将你的表达式解析为最小的词素(Token)
股市
公式
编辑器
通达信
公式
教程
公式
入门 我们大多数的用户并不是完全了解“
公式
编辑器”的意义,简单地,我们可以从以下几个角度进行理解: 一、指标分析: “
公式
编辑器”好比是一个工作母床,通过这个工作母床可以制造出所需要的各式各样的零件,同样,在指标分析的工作中,利用编辑器可以编写出相应的分析条件,这种
方法
是在技术分析当中最为常用的
方法
之一。例如,指标KD、指标MA等等,通过对这些指标的观察、分析,找出一些
构建神经网络模型
方法
,神经网络建立数学模型
神经网络是一种能适应新环境的系统,它针对过去经验(信息)的重覆学习,而具有分析、预测、推理、分类等能力,是当今能够仿效人类大脑去解决复杂问题的系统,比起常规的系统(使用统计
方法
、模式识别、分类、线性或非线性
方法
)而言,以神经网络为基础的系统具有更强大的功能和分析问题技巧,可以用来解决信号处理、仿真预测、分析决策等复杂的问题。目前多数文献中提出的确定隐层节点数的计算
公式
都是针对训练样本任意多的情况,而且多数是针对最不利的情况,一般工程实践中很难满足,不宜采用。这些是您掌握市场上最被炒作的两项技能的库。
matlab 水文频率曲线,【求助】如何计算水文频率,外行
求教
- 地学 - 小木虫 - 学术 科研 互动社区...
根据某水文现象的统计特性,利用现有水文资料,分析水文变量设计值与出现频率(或重现期)之间的定量关系的工作过程称为水文频率计算。自然界的现象按发生情况可分成:必然事件,即在一定条件下必然会发生的事情,如降雨以后就要涨水是必然发生的;不可能事件,即在各条件实现之下永远不会发生的事情,如只在重力作用下的水由低处向高处流是不可能的;随机事件(也称偶然事件),即在一定条件下可能发生也可能不发生的事件,如每条...
matlab求解一元四次函数,excel数据函数参数是四个吗|求一个简单的一元四次函数的最大值...
求四次函数的最值先求导,令导数等于0,求出x的值,判断单调性,将x代入原函数4次幂的一元函数怎么计算
解析
:(1) 四次方程,有通用求根
公式
。A 此
公式
复杂,实际使用较麻烦B 其推导过程中可能会涉及复数,而复数在高中二年级才开始学习C 此
公式
在数学试题中几乎无法和其它知识点联系基于上述三点,初高中阶段,不学习此
公式
有兴趣的同学,可以网上查询下(2) 特殊的一元四次方程,可用“降次法”例如:x⁴-6x...
python爬虫和数据分析哪个有前景_
求教
各位Python大佬,根据您们的经验,web和爬虫那个方向发展更有前景!(抛开ai和大数据不谈)?...
我认为这两个分开来看,各有优势且并不具有可比性,先抛开技术本身来分析一下:WEB主要是应用方向的考虑,数据呈现和业务呈现是他的核心内容。爬虫主要是数据方向的考虑,数据采集和数据存储是他的核心内容。然后我们再从各领域应用语言来分析一下:看这个内容,其实你很明显发现,其实各个语言都有他的用处。我们可以说Python是应用范围较广的,是很难得做到是绝对的全能。最后我们再分析一下企业里面的Python工程...
.NET技术前瞻
13,347
社区成员
5,389
社区内容
发帖
与我相关
我的任务
.NET技术前瞻
.NET技术 .NET技术前瞻
复制链接
扫一扫
分享
社区描述
.NET技术 .NET技术前瞻
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章