QT之计算器解析算法下

本文探讨了QT环境下如何解析计算表达式,特别是后缀表达式的计算过程。通过从栈中弹出操作数,根据运算符进行相应运算,并将结果压回栈中,实现表达式的求值。在遍历结束后,栈中的最后一个数字即为最终运算结果。
摘要由CSDN通过智能技术生成
    上篇博客我们已经将中缀表达式正确的转换为后缀表达式了。

    那么后缀表达式是如何进行计算的呢?这时就需要比那里后缀表达式中的数字和运算符了。如果当前元素为运算符:1. 从栈中弹出右操作数;2. 从栈中弹出左操作数;3. 根据符号进行运算;4. 将运算结果压入栈中。当遍历结束时,再将栈中的唯一数字为运算结果。

    用伪码描述出来就是:

 
     我们在这块得考虑到数学运算中的除法(除0)的情况,若是浮点运算,则应避免代码中直接与 0 做相等比较。
     具体到代码就是:
QString QCalculatorDec::calculate(QQueue<QString>& exp)
{
QString ret = "Error";
QStack<QString> stack;

while( !exp.isEmpty() )
{
QString e = exp.dequeue();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值