作业帮 > 综合 > 作业

java编写计算机 要分析数学表达式

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/26 08:40:41
java编写计算机 要分析数学表达式
要分析包含+ - * / ( ) 的表达式,然后进行计算,不用图形界面.
例如(-2)*4+(2*3+3)=的式子分析计算.
这个问题分两大步:
1:将中缀表达式转换为后缀表达式——栈(c)存放运算符
遍历中缀表达式
遇到运算符(a),则拿当前的运算符(a)和栈(c)中数据比较,根据运算符的优先级(乘除高于加减,另需注意括号),决定要出栈或入栈的运算符.
当遍历完表达式时,把栈(c)中剩下的运算符依次出栈.
例如:a + b --> a b +
a + b * c --> a b c * +
(a + b) * c --> a b + c *
中缀 (-2)*4+(2*3+3) 转换为 后缀:-2 4 * 2 3 * 3 + +
2:计算后缀表达式——栈(s)存放计算结果
遍历,遇到数字入栈(s),遇到+、-、*、/ ,则(s)取出栈顶两个数字 做运算,在入栈(s).
最后即为计算结果.
具体的规则详见逆波兰表达式.