`

计算器制作JAVA版(第四步,表达式求值(+-*/)混入点号和负号)

阅读更多

前面我们基本上解决了包括四则运算、括号在内的正整数表达式求值。
基本思路是:括号序列属于边界序列行列,在运算中一旦出现*/号就立刻进行计算,出现)号则进行区域性计算,也就是说我们在已经扫描计算过的序列中只剩下数据和+-号运算。这样以来就可以利用前面讲到的栈式计算模式。

那么我们进一步考虑,如果在数据中间包含了小数点怎么办呢?我们发现如果不加处理,则存入的数据和原来的形式相比较,唯一的不同是原来放整数的地方里面多了一些括号,那么如果我们视所有的数据都是double类型的不就可以直接解决这个问题了吗?!是的,我一向喜欢大一统的方式解决问题,在编码初期这样处理是有好处的,不过往后继续升级的时候就得考虑性能问题了。借助这个思路,我们可以假设表达式直接就是有正确的形式,然后统一处理这些数据就可以了。

如果有时间我会继续补充这一部分。
不过可以提醒一下,那个乘方也可以采用这种方式处理。

分享到:
评论

相关推荐

    68--[自动点号机].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    68--[自动点号机].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码68--[自动点号机].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码68--[自动点号机].zip源码scratch2.0 3.0编程项目源文件源码案例...

    qlexpress java表达式

    qlexpress java表达式,使用方便灵活

    java时间格式大全(算法源码)

    java时间格式大全(算法源码) java,date,时间,时间格式,算法源码 * * @return */ public static String getTimeShort() { SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); Date currentTime...

    精通正则表达式~~~

    第4章:表达式的匹配原理.... 143 发动引擎... 143 两类引擎... 144 新的标准... 144 正则引擎的分类... 145 几句题外话... 146 测试引擎的类型... 146 匹配的基础... 147 关于范例... 147 规则1:优先...

    PLC-电子计算器设计.doc

    3 第3章 电子计算器控制系统梯形图程序设计 4 3.1 电子计算器控制程序流程图设计 4 3.2 电子计算器控制设计程序流程图分析 4 第4章 监控系统的设计 5 第5章 系统调试及结果分析 6 5.1 系统调试 6 5.2 结果分析 6 ...

    重叠管线点号避让处理-自动挪点号(第2版).zip

    CAD管线图文字整饰神器,一键处理,重叠管线点号自动避让处理,又名自动挪点号。采用VB后期绑定技术,几乎可以匹配所有的CAD版本,Windows操作系统32位64位均可。相对第1版,增加了优化次数,标注引线,避让图层增加...

    在b/s开发中经常用到的javaScript技术整理

    4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母 4.4 字符串替换函数.Replace(); 5、浏览器类 5.1 判断浏览器的类型 5.2 判断ie的版本 5.3 判断客户端的分辨率 6、结合类 ...

    Java 正则表达式

    Java 正则表达式 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 正则表达式实例 一个字符串其实就是一个简单的正则...

    java程序是怎么操作数据库的,可以以常用据库为例,求详细解答,最好能举例。

    注意:设置时要在最前面的点号和分号 第三步:编辑java程序并且运行 实例1如下: //import com.microsoft.*; //注意:在java与sql server 连接时不需要这个包,其他书上说这个包是必需的,这个问题有待进一步...

    js校验特殊字符

    4. * 要转义的字符包括:1, 点号 . 5. * 2, 中括号 [] 6. * 3, 大括号 {} 7. * 4, 加号 + 8. * 5, 星号 * 9. * 6, 减号 - 10. * 7, 斜杠 \ 11. * 8, 竖线 | 12. * 9, 尖号 ^ 13. * 10, 钱币 $ ...

    JSP网页制作平台搭建

    在系统变量Path的值的前面加入以下内容:%JAVA_HOME%\bin;(注意:这里的分号不能省略) 二、安装Tomcat 首先下载jakarta-tomcat-5.0.30.zip,之所以下载免安装版的好处是可以使用多个Tomcat(jakarta-tomcat-5.0.30...

    [精通正则表达式(第三版)]

    第 1 章 正则表达式入门 29 解决实际问题 30 作为编程语言的正则表达式 32 以文件名做类比 32 以语言做类比 33 正则表达式的思维框架 34 对于有部分经验的读者 34 Egrep元字符 36 行的起始和结束 36 字符组...

    javascript 基于正则表达式的文本框验证代码

    只能输入数字和点号(注意:在[^\d\.]里的d不能写成大写D,否则就变成除了数字以外的所有字符) <input name="price" type="text" size="8" maxlength="8" > 总而言之:先在<input>里输入onkeyup="value=...

    js各种验证文本框输入格式(正则表达式)

    不能为空 <input onblur=”if(this.value.replace(/^ +| +$/g,”)==”)alert(‘不能为空!’)”> 只能输入英文和数字<input onblur=”if(/[^0-...判断字符由字母和数字,下划线,点号组成.且开头的只能

    挪点号通用版设置图层距

    对话框式选择是否需要引线以及下划线,可设置图层以及偏移量,自动避让管线点号重叠问题,批量自动挪点,可快速整理图面压盖问题。

    php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)

    本文实例需要验证的内容:邮件地址、Url...//域名中的第一段,规则和用户名类似,不包括点号“.” $code_at= "@"; $per_domain= "\w|(\w[-\w]*\w)"; //域名中间的部分,至多两段 $mid_domain= "(\." .$per_domain. ")

    编译原理pl\0词法分析程序

    //点号 . int isQmark(); //单引号 ' int isDqmark(); //双引号 " int isStringElement(); //字符串合法字符,ASCII码值为32,33,35-126的字符 void catToken(); //每次调用前把当前ch中的字符与token字符数组中的...

    zuobiaozhandian.lsp

    数据展点 点号+编码+高程" "点号+编码" "编码+高程" "点号+高程" "点号" "编码" 点号+编码+高程" "点号+编码" "编码+高程" "点号+高程" "点号" "编码" 点号+编码+高程" "点号+编码" "编码+高程" "点号+高程" "点号" ...

    学习python的第三天 正则表达式

    学好正则表达式,是开发爬虫的第一步。 今天将掌握如下知识。 1.正则表达式的基本符号 2.如何在python中使用正则表达式 3.正则表达式的提取技巧 4.python读写文本文件和CSV文件 知识梳理 正则表达式的基本符号(任务...

Global site tag (gtag.js) - Google Analytics