易语言资源网 - 做最全的易语言资源下载社区
【周六更新】【2021开源大赛(第六届)】全部参赛作品信息 精易论坛授权登录

算术表达式的计算-中缀表达式转后缀表达式   [复制链接]

    2022-09-21 09:32:28
    进阶教程源码
    易语言资源网
    213 次浏览
    来源链接


在很多年前,试过用代码实现算术表达式的计算,但是因为当时知识储备不足,所以不了了之。

直到现在,学到的知识储备已经能够支撑我实现当年未实现的代码。

(其实就是中缀表达式转后缀表达式的实现)

下面是大致的实现过程

1、把算术表达式,转换城后缀表达式。

转换过程:

先定义一个数组和一个栈变量

1:遍历表达式,遇到数字的话直接加入到,后缀表达式数组里。

2:遇到运算符和(,则先加入到运算符栈里。加入的规则是,运算符优先级高于栈定运算符时,直接加入。优先级低于时,则先把栈顶运算符移到后缀表达式数组里,直到加入运算符优先级高于栈顶运算符优先级后再加入到运算符栈里。如果遇到 )时,则把()内的全部运算符先移到后缀表达式数组里。

2、遍历后缀表达式数组,进行计算。

例子:12 + ((2 + 5 * 2) - 10)/ 2

后缀表达式: 12 2 5 2 * + 10 - 2 / +

计算过程如下:

12 2 5 2 * + 10 - 2 / +

5 * 2 = 10    >>> 12 2 10 + 10 - 2 / +

2 + 10 = 12    >>> 12 12 10 - 2 / +

12 - 10 = 2    >>> 12 2 2 / +

2 / 2 = 1    >>> 12 1 +

12 + 1 = 13

计算结果为:13



点我下载 (已有 14 次下载)

引用模块





引用支持库


源码文件名 支持库文件名 支持库标识
表达式计算.e 系统核心支持库 5.0 d09f2340818511d396f6aaf844c7e325
特殊功能支持库 3.0 A512548E76954B6E92C21055517615B0


[错误报告]   上一篇:MySQL 服务管理器 更改版增加备份等...     下一篇:【炫彩 - 未闻花名UI】登录页面...