表达式计算【信息技术】.pptVIP

  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文档。上传文档
查看更多
作业: 请仔细阅读教材,理解和掌握表达式求值的算法,分析算法复杂度,完成下列习题。 1、将下面中缀表达式改为后缀表达式: ① 25+(x+y)*z-33 ② 72*((28+3*6)/5)-3 ③ 7*(5+(83*7-6)/11)+9 ④ x2+2x+1 2、将下面后缀表达式改为中缀表达式: ① 88 a b - * 34 c / + ② 5 x y + * 3 + 18 - ③ 12 25 364 5 * + 5 / * 5- ④ a a a * * 2 b b * * + 3、编程实现算术表达式计算的算法。 思考题: 编程实现后缀表达式转化为中缀表达式;输入由单个大写英文字母表示操作数和+、-、*、/组成的后缀表达式,输出对应的中缀表达式。 例如: 输入: ABC+D*E/+F- 输出: A+(B+C)*D/E-F * * 长郡中学 向期中 (1) 先算括号内,再算括号外; (2) 在无括号或同层括号的情况下,先做乘除运算,后做加减运算,即乘除运算的优先级高于加减运算的优先级; (3) 同一优先级运算,从左向右依次进行。 四则混合运算规则: 12+(2+5*4) /2 - 5 12+(2+5*4) /2 - 5 12+(2+20)/2 - 5 12+22/2- 5 12+11- 5 23 - 5 18 第1遍 第2遍 第3遍 第4遍 第5遍 各运算符实际的运算次序往往同它们出现的先后次序是不一致的,是不可预测的。 计算机只能一个字符一个字符的扫描,要知道哪一个先算,就必须对整个表达式扫描一次。 因此,理论上表达式中有多少个运算符就要扫描多少遍,效率太低! * + / - + 算术表达式的两种表示 中缀表达式: 运算符在两个操作数中间的表达式 后缀表达式: 运算符在两个操作数后面的表达式 问题: 既要考虑括号的作用,又要考虑运算符的优先级,还要考虑运算符出现的先后次序。 12+(2+5*4) /2 - 5 12 2 5 4 * + 2 / + 5 - 特点: 不存在括号,也不存在运算符的优先级,计算过程完全按照运算符出现的先后次序进行。 12 2 5 4 * + 2 / + 5 - 12 2 5 4 + + * / 2 - 5 =20 20 =22 22 =11 11 =23 23 =18 18 1遍 后缀表达式的计算 …… 栈 @ ———— 栈的应用 中缀表达式转换为后缀表达式 把每个运算符都移到它的两个运算数的后面,然后删除所有的括号即可。 转换规律: 课堂练习: 一、请将下列中缀表达式改写成后缀表达式: (1) 3/5+6 (2) 2*(x+y)/(1-x) 二、请将下列后缀表达式改写成中缀表达式: (1) 16_9_4_3_+*- (2) 25_x_+a_a_b_+*b_+* (3) b2-4*a*c 后缀表达式:12 2 5 4 * + 2 / + 5 - 中缀表达式:12+(2+5*4) /2- 5 1、操作数的先后顺序并没有发生变化; 2、运算符的先后顺序发生了改变。 ④ ② ① ③ ⑤ @ ) ( / * - + @ ) ( / * - + p2 p1 = = 规定 设P1和P2分别表示中缀表达式前后相邻的两个算符 表示P1 运算优先于P2 运算 表示P2 运算优先于P1 运算 相邻运算符优先关系表 同一优先级运算,从左向右依次进行 在无括号或同层括号的情况下,先做乘除运算,后做加减运算 先算括号内,再算括号外 12 + ( 2 + 5 * 4 ) / 2 - 5@ 1 2 ︼ 2 5 4 + ︼ ︼ ( + * / 2 ︼ - 5 @ ︼ ︼ @ + + ( + * * ) + ) ) = ( + / + - @ - @ = @ / - ( + 1 2 2 5 4 * + / 2 + 5 - @ - @ @ 12 2 5 4 * + 2 / + 5 - @ 1遍 结语: 中缀表达式 后缀表达式 求得结果 利用栈 扫描一遍 利用栈 扫描一遍

文档评论(0)

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

1亿VIP精品文档

相关文档