码迷,mamicode.com
首页 > 其他好文 > 详细

表达式求解

时间:2016-02-27 00:47:56      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

0.功能:

计算一个多层次表达式

例如:

(((((6)+(5)+(4))-(3))*(2))/(1)) = ?

((((1)or(0)xor(2)and(not(-1)))) = ?

1.原理:

参考正则表达式解析,存储结构,和xml树形结构文件解析的思路,创建树形算式结构。

2.流程:

第一步:解析表达式

<1>.遇到‘(‘创建一个节点。

<2>.遇到‘(‘返回上一层。

<3>.遇到其他填入值。

第二步:创建结构

结构图

技术分享

 

3.应用

求解出一个复杂计算条件计算值,可以是数值,可以是布尔值

 

4.代码

 

5.扩展

<1> ([1]((((6)+(5)+(4))-(3))*(2))/(1)) = ?,加入错误分析,如果错误舍弃局部结构。

<2> (((((@192.168.0.1)+(5)+(4))-(3))*(2))/(1)) = ? ,丰富一般取值的途径。

<3> (max((1) , (2))) = 2 ?,增加更多的算法。

这些需求都可以在源代码基础上方便扩展。

表达式求解

标签:

原文地址:http://www.cnblogs.com/kobe-vanessa/p/5222132.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!