(一). 求复杂表达式的值
设计要求: 求复杂算数表达式的值。
具体要求:设计一个程序,计算含有如下标识符的表达式的值。
(1) 数值:包括整数和实数,数值可带正、负号。
(2) 一般运算符:正号、负号、加、减、乘、除、求模和乘方,其中可以包括括号。
(3) 单词(即运算函数):abs、sqrt、exp、ln、log10、sin、cos和tanh。
例如:输入一个表达式: 2*sqrt(16)-(-3+5)*(-5),得到运算结果18
这是运算符优先级的问题,后缀表达式?记得那时靠栈来解决的吧,计算器项目啊。
貌似很多算法书上有的,可以看看那个吧。和语言没多大关系,个人认为。
这个问题就是处理一串未知长度字符串,要看来很多出错处理,处理方法上面回答了部分,具体先要将得到的字符串进行一定的处理,考虑问题要全面!自己写一些方法预处理字符串,之后将字符串读进栈,也可以设计成树(数据结构),读的过程就要考虑单词、括号、数字和各个运算符了,对各个运算符实现算法,后面栈就是出栈操作,树就利用逆波兰式,搞定
编译原理的作业题吧