给出一个算符优先分析方法的程序,根据输入的算术表达失判断此表达失是否正确。 列如: 输入:10# 输出: 正确输入:1+2# 输出: 正确输入:(1+2)/3+4-(5+6/7)# 输出: 正确输入:((1-2)/3+4# 输出: 错误输入:1+2-3+(*4/5)# 输出:: 错误
2021-12-15 19:11:03 189KB 算符优先分析方法
1
(Python实现,注释详细)直接输入:3+4*5,一般的计算器会在输入乘号时,先得到7,输入完成后的结果是35。如果希望能够更方便的使用计算器,我们可以进行一些改进。实验中要求计算器: (1)可以输入+ - * / () (2) 输入时不立即计算,等到下一个算符出现时才确定是否进行计算,例如:输入3+5*4,在输入*后,发现+的优先级低于*,因此+不计算,表达式输入结束后先计算*,后计算+。 实验分成两个阶段进行: (1)第一阶段,运用算符优先分析算法完成计算器中对算术表达式的语法分析; (2)第二阶段,设计属性文法,改造第一阶段的程序,完成算术表达式的计算和相关的输出。
1