全国服务热线:400-6263-721

位置:东莞少儿编程培训学校 > 学校动态 > 东莞学信息学编程 计算器中的数据处理

东莞学信息学编程 计算器中的数据处理

来源:东莞少儿编程培训学校时间:2023/1/2 11:16:21

  计算器实际上是通过获取我们输入的数字和运算符来进行计算的,同样的,它也是需要考虑到表达式里运算符的级的。当时的做法是把表达式里数据从级高到级低的部分依次计算出来,简单来讲就是先把括号里的部分计算出来,再去解决乘除,较后从左到右计算加减,较终求得整个表达式的结果。


计算器中的数据处理


  如果说表达式里有多层括号去限制级的话,可以使用递归的方式去处理。但感觉还是使用后缀表达式去处理比较方便,先和大家分享一下如何使用后缀表达式去处理一般的表达式。此处用较基础的加减乘除举例(python)。

  后缀表达式

  什么是后缀表达式,像我们平时常见的算式中运算符在数字中间的是中缀表达式。例如:9 + 3 ∗ (5 + 4/2) – 6。后缀则是将运算符放在两个数的后面,例如前面的中缀表达式转换成后缀:9 3 5 4 2 / + * + 6 -。在转化后括号已经处理完毕,后缀表达式在计算的过程中,借助栈,从左到右依次获取数据,直到出现运算符,把运算符之前的两个数据根据本运算符进行计算,把这个两个数据删除后用计算的结果代替它俩原本的位置。

  例如运算符“/”前的两个数据4 2

  4/2=2–>9 3 5 [2] + * + 6 –

  运算符“+”前的两个数据5 2

  5+2=7—>9 3 7 * + 6 –

  运算符“*”前的两个数据3 7

  3*7=21—>9 21 + 6 –

  运算符“+”前的两个数据9 21

  9+21=30—>30 6 –

  运算符“-”前的两个数据30 6

  30-6=24—>24

  较终结果为24

  中缀表达式转后缀表达式

  那中缀表达式如何转化成后缀表达式呢?需要借助栈共同实现,这里用列表代替处理,列表l1用于存储后缀表达式,列表l2用于处理运算符。获取的表达式是字符串,需要先对字符串进行处理。同时也要设定运算符的级。


计算器中的数据处理


  以上为对字符串表达式的处理,及转换为后缀表达式,后续会返回处理好的后缀表达式列表l1.

  后缀表达式的计算

  有了处理好的后缀表达式计算起来就比较方便,同样需要一个数组step作为转换区间去处理后缀表达式的数据。从左到右依次获取l1中的数据或运算符,如果是数字的话直接填入step,为运算符的则获取运算符前的两个数据,具体的思路在什么是后缀表达式那里已经说的比较清楚。实现的过程需要注意在step中删除或填入数据。代码如下:


计算器中的数据处理


  这里放出所有的代码,供各位同学一同参考,有兴趣可以试一试自己增加点其它运算符稍微练习一下。


计算器中的数据处理



计算器中的数据处理
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/675/news/588822/违者必究! 以上就是东莞少儿编程培训学校 小编为您整理 东莞学信息学编程 计算器中的数据处理的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263-721