基于逆波兰式法的数学表达式计算算法.pdfVIP

基于逆波兰式法的数学表达式计算算法.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于逆波兰式法的数学表达式计算算法.pdf

基于逆波兰式法的数学表达式计算算法 我在上一篇文章中给出了计算规则,但没有举例,这里我举一个具体的例子做说明,方 便大家理解。 上篇文章的地址:/tangqs/archive/20 11/ 11/03/2234715.html 里面有Delphi7 版的源代码和按此方法开发的表达式计算器。 这里先给出运算符的优先级,表中0 级优先级最低,7 级最高,如下: 优先级 0 1 2 3 4 5 6 7 运算符 # ( , + - * / @ ~ !% ^ ) 表达式 左括 函数参数 阶乘,百分 说明 加减 乘除 正负 右括弧 结束符 弧 连接符 数,求幂 下面举一个简单的例子,计算表达式:2+ (8+4^2)*3 主要分两步,第一步生成逆波兰表达式,第二步计算逆波兰表达式,如下: 第一、生成逆波兰表达式 首先构建一个存储器,另一个符号栈,存储器是从左向右储存数据,而符号栈则遵守后 进先出的原则,计算表达式按从左至右的顺序扫描。 * 读入一个数据 (重点注意:数值与函数名非单个字符,需要做判断处理) 1. 如果是左单目运算符或者函数名,直接入符号栈;比如 正负号 ~ @ max sin 2. 如果是右单目运算符,直接入存储器栈;比如 阶乘!与百分号% 3. 如果是运输量,则直接写入存储器;检查符号栈顶是否有单目运算符,有的话则全部出 栈,并写入存储器; 4. 如果是左括号(,则直接入符号栈; 5. 如果是右括号) ,则弹出符号栈数据,写入存储器,一直到左括号弹出(左括弧直接丢弃, 不写入存储器) ,再检查栈顶是否为左单目运算符或者函数名,是的话继续弹出,直到遇到 双目运算符; 6. 如果是双目运算符,则与栈顶符号比较优先级,若大于栈顶优先级,则入栈;否则弹出 栈顶符号并写入存储器,直到栈顶符号的运算优先级较小为止; 7 .如果是函数参数的连接逗号“,”时,则弹出符号栈数据,直到遇到左括弧 ( 或者逗号, 为止,再将逗号,入符号栈; 8.如果是结束符 (表示表达式已全部读完),则符号栈全部弹出并写入存储器,否则继续按 以上规则读取下一个数据; 下面将逐步介绍逆波兰式生成过程: 表达式按从左至右扫描,标记为红 的字符为当前步骤扫描的字符: 0 预处理:为表达式添加一个结束标示符 “# ”,扫描时按双目运算符考虑, ○ 处理后表达式为:2+ (8+4^2)*3# 1 2+ (8+4^2)*3#:扫描“2 ”,按规则3,将运算量 2 压入存储器,如下: ○ 存储器: 2 符号栈:暂空 2 2+ (8+4^2)*3#:扫描“+ ”,按规则6,将加号压入符号栈,如下: ○ 存储器: 2 符号栈: + 3 2+ (8+4^2)*3#:扫描“(”,按规则4,将右括弧直接压入符号栈,如下: ○ 存储器: 2 符号栈: ( + 4 2+ (8+4^2)*3#:扫描“8”,按规则3,将运算量 8 压入存储器,如下: ○ 存储器: 2 8 符号栈: ( + 5 2+ (8+4^2)*3#:扫描“+ ”,按规则6,优先级高于 (,直接压入符号栈,如下: ○ 存储器: 2 8 符号栈: + ( + 6 2+ (8+4^2)*3#:扫描“4 ”,按规则3,将运算量 4 压入存储器,如下: ○ 存储器: 2 8 4 符号栈: + (

文档评论(0)

wangshirufeng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档