关于对计算2.0的创作思想
2013-01-05 00:00
127 查看
对于本计算器,存储的每个运算符或者操作数均是适用string结构。
首先读取函数input接受一个带空格的中缀表达式(这么做我也是为了解决负号和减号混合的问题)例如:
2 + -3(其中’-‘和’3‘之间是没有空格的,而‘+’前后均有一个空格);然后将其存储在string m_s_str[100]数组结构中,例如’2‘->str[0]
’+‘->str[1] ’3‘ –>str[2];
存储好后由一个函数将其转换为后缀表达式并将其存储在string m_s_p_str[xx];结构中。
在类 calculate中还提供了一个out_print函数该函数输出后缀表达式的内容并把他设置为public属性。
但是对于中缀表达式转换为后缀表达式都是基于双目运算符的表示,对于单目运算符又该如何呢?
这里提供了一个比较有意思的思想(当然好坏由各位看官来裁定了,我李惟其不敢妄自吹嘘的)
就是将单目运算符也转为双目运算符来处理。也就是在前面添加了一个废弃的1而已了。
但是值得思考的是单目运算符分为两种,前缀和后缀。前缀如sin,后缀如! 阶乘。所以这个1还真能随便乱加了,你的考虑如何将其加入合适的位置。前缀应该加在前面,后缀应该加在后面。
在处理完后完全可以再计算两个运算的函数中丢弃这个1了。
该计算器为了方便处理在一开始的时候就将一些字符串的运算符全部转换为字符。
大概的含义如下:
'a': //sin
'b': //cos
'c': //tan
'A': //asin
'B': //acos
'C': //atan
'G': //根号
'!': //阶乘
'^': //次方
'l': //ln运算符
'L': //lg运算符
至于为什么这么这么做(好吧只能说明我懒了)?因为一开就完全处理好到后面的函数处理中就会很方便了。
好吧今天就暂时写在这里吧。我的邮箱是wcmxiaolizi@foxmail.com
首先读取函数input接受一个带空格的中缀表达式(这么做我也是为了解决负号和减号混合的问题)例如:
2 + -3(其中’-‘和’3‘之间是没有空格的,而‘+’前后均有一个空格);然后将其存储在string m_s_str[100]数组结构中,例如’2‘->str[0]
’+‘->str[1] ’3‘ –>str[2];
存储好后由一个函数将其转换为后缀表达式并将其存储在string m_s_p_str[xx];结构中。
在类 calculate中还提供了一个out_print函数该函数输出后缀表达式的内容并把他设置为public属性。
但是对于中缀表达式转换为后缀表达式都是基于双目运算符的表示,对于单目运算符又该如何呢?
这里提供了一个比较有意思的思想(当然好坏由各位看官来裁定了,我李惟其不敢妄自吹嘘的)
就是将单目运算符也转为双目运算符来处理。也就是在前面添加了一个废弃的1而已了。
但是值得思考的是单目运算符分为两种,前缀和后缀。前缀如sin,后缀如! 阶乘。所以这个1还真能随便乱加了,你的考虑如何将其加入合适的位置。前缀应该加在前面,后缀应该加在后面。
在处理完后完全可以再计算两个运算的函数中丢弃这个1了。
该计算器为了方便处理在一开始的时候就将一些字符串的运算符全部转换为字符。
大概的含义如下:
'a': //sin
'b': //cos
'c': //tan
'A': //asin
'B': //acos
'C': //atan
'G': //根号
'!': //阶乘
'^': //次方
'l': //ln运算符
'L': //lg运算符
至于为什么这么这么做(好吧只能说明我懒了)?因为一开就完全处理好到后面的函数处理中就会很方便了。
好吧今天就暂时写在这里吧。我的邮箱是wcmxiaolizi@foxmail.com
相关文章推荐
- 关于使用二分思想算法的时间复杂度的计算
- 关于计算日期时间问题
- 复利计算1.0,2.0
- 关于vue的使用计算属性VS使用计算方法的问题
- 复利计算1.0-2.0-3.0
- 关于树的深度和高度的计算
- 关于Web API 2.0中的Options请求返回405的问题
- 82.JAVA编程思想——关于垃圾收集
- 20151224今天发现到的两篇关于CSS架构、可复用可维护CSS和CSS学习提升能有改变思想观念意识的文章 分别是CSS架构目标和说说CSS学习中的瓶颈
- 关于数学分析的计算题III(极限)
- 转载:关于Java、Python、Go编程思想的不同
- 关于海明码的计算
- 关于级联信道的信道容量计算问题
- 关于iOS应用管理之九宫格的坐标计算以及与UIScrollView的结合
- 关于dijkstra的贪心思想的正确性的证明
- c++数组宽度计算的sizeof关于指针设想
- 【程序人生】:一篇关于编程思想的体会
- 关于名片管理系统的编程思想总结