Jackei 2008-07-23 18:09
果然BH啊!!!
ubun 2008-07-23 13:07
搞笑。。。
hj6 2008-07-08 11:23
关于您的提示“参数名称和参数个数一定要设置正确,否则在解析的时候会出错”,必须在写函数的时候就指定参数个数吗?如果参数的个数不确定该怎么办啊?比如我准备增加一个MIN函数,来获取数组中的最小值,但这个数组时不定长的,该如何处理?谢谢您,请您指点,谢谢。
力大无比 2008-03-27 14:18
神奇的表达式
代码乱了 2008-03-26 17:49
对,还是推荐使用此法分析器,例如Antlr,
RicCC 2008-03-26 17:33
这样练习一下也不错
看看Antlr生成的代码,参考一下它的LL解析过程会更有收获
Edward.Net 2008-03-26 17:29
兄弟你这么做貌似太辛苦了吧,直接用Antlr写一个语法文件编译一下就全部搞定了。
准备闯关东 2008-03-17 14:45
好好,研究一下
楼主的奉献精神值得大家学习啊
荼蘼 2008-03-17 11:51
博主您好!我是博文视点的编辑,我们有本书《编程之美》提到了表达式求值,也许您会对这本书感兴趣,我们想请您为本书写点书评或感想,我的联系方式是:msn:julybluekid@hotmail.com 邮件:tumi711@gmail.com
toni 2008-03-13 15:45
好东东
呵呵,下来用了的
感谢一下!!
簡簡單單.. 2008-03-10 17:38
...
簡簡單單.. 2008-03-10 17:37
...
幕名而来,果然是高人啊,服了 2008-03-03 15:37
幕名而来,果然是高人啊,服了
jeasonzhao 2008-01-22 13:31
我采用的方法和你的不一样,
先做词法分析,然后再做表达式构造,构造出一颗二叉树,对这个二叉树的每个节点开始求值
求值的时候引入一个外部接口,这个接口有几个函数
ValuePair GetVar(String strVarName) 返回指定变量的值
FunctionSignWrapper GetFunction(String strFunctionName,Object[] parmaeters)
这样我的函数、变量都可以在实现的接口中扩充,呵呵
zjfeiye 2008-01-06 08:42
楼主少了一种基本运算,幂运算
比如: 5^3就是5的3次方
(5+2)^6等
chengmeng 2008-01-02 19:39
这是所谓的算符优先级方法,很多编译器里也是这么解析表达式的。
解析表达式和计算,其实是一回事而已。
简单点的话,来个递归下降就可以了。其实和基于堆栈的算符优先级是一样的,只不过一个显式的使用了堆栈,一个是隐式(递归其实是堆栈)。我知道不少编译器,总体上使用递归下降,在算术表达式这块则用算符优先,为了性能考虑。
不想自己写的话,找个yacc之类的,写一下语法文件就OK。
Joanna 2008-01-02 18:35
终于等到了..非常谢谢.
applethink() 2008-01-02 17:15
编译原理是自上而下或者自下而上分析,关键是匹配,和堆栈的实现还是不一样的。
装配脑袋 2008-01-02 16:30
其实我觉得用编译原理还要简单些呢……
Zoe 2008-01-02 16:28
--引用--------------------------------------------------
Indigo Dai: 传说中的编译原理……
--------------------------------------------------------
好像是数据结构中的栈的经典应用啊
Cat Chen 2008-01-02 16:18
@Indigo Dai
编译的话根本不是这样做的……这是表达式计算。
Indigo Dai 2008-01-02 13:55
传说中的编译原理……
金色海洋(jyk) 2007-12-31 14:12
一般地思路都是 中缀转后缀,再对后缀表达式来计算。
但是我的思路是只遍历一遍正常的计算式(中缀),然后直接得到结果。
记得我当年的课程设计就是这个。
dikongpulu 2007-12-30 15:15
拼计算字符串然后动态执行不是更方便实现?
飞翔天空 2007-12-30 11:08
@NetCare
这个类也能计算
飞翔天空 2007-12-30 11:07
@Joanna
见后续文章
自定义函数不支持, 但修改代码加入另一个函数还是很简单的。
NetCare 2007-12-30 09:53
VS2008TrainingKit里面有个例子好像是Demo目录里面的第11个例子就有一个很常强大的表达式计算功能。可以直接计算2sinx^3子类的东西。
Joanna 2007-12-29 15:18
非常感谢...正在找这个东西...可我有点没看明白...
strExpression字符串内容如何分解到List<ExpressionToken>中的呢...
还有关于函数的处理,我好象没看到相关代码...如果是自定义的函数或object.Fuction()这种也可以吗?
Phinecos(洞庭散人) 2007-12-29 14:52
这种题目没啥意思了,有时间还不如找个OnlineJuedge做做ACM的题目练练还好点,
BlueMountain 2007-12-29 14:03
两个栈,分别存放运算符合操作数,还有注意()这个东西,大学时候的基本知识了。
BlueMountain 2007-12-29 14:00
Jeffrey Richter. net框架程序设计技术内幕, 李建忠翻译, 说得非常清楚了。
Anders Liu 2007-12-29 13:46
:)
Phinecos(洞庭散人) 2007-12-29 12:45
中缀转后缀,后缀表达式计算,数据结构最基础的题目了
LiuXiongfei 2007-12-29 12:37
不错 是语义分析中的属性部分吧 似曾相识
毁于随 2007-12-29 12:36
数据结构的表达式求值呀.
Tony Qu 2007-12-29 12:17
原来有兄弟和我有一样的嗜好,我原来也做过一个科学计算器,你可以去我的blog上看看,多多交流:)
芭蕉 2007-12-29 12:16
.Net components上有一个实现我觉得还不错,感兴趣的可以去看看,Lifecycle Management那一章的最后一个例子就是了。
michaelhuwei 2007-12-29 10:05
--引用--------------------------------------------------
装配脑袋: 问题的关键在于,有人不知道什么叫“非托管资源的清理”,以至于还是不能正确实现Dispose
--------------------------------------------------------
#8楼 2007-12-29 09:12 Anytao
已经回答了, 不同的非托管资源, 清理方法不一样啊, 比如打开的文件句柄要用 CloseHandle 关掉, GDI 的DC 要用 ReleaseDC 关掉,等
michaelhuwei 2007-12-29 10:03
@辰
GC.SuppressFinalize(this); 这句话怎么会没用呢?
加了这句后, Finalize 方法就不会执行了,文章中不是说了吗?
Anytao 2007-12-29 09:12
常见的非托管资源包括:文件句柄、数据库链接、位图、网络链接、COM对象、互斥体等,使用Dispose就得了解哪些资源在这里释放。
推荐同时实现Finalize和Dipose,以确保非托管资源一定被释放。
corvallis 2007-12-29 02:48
My 2 cents:
In Dispose method, maybe move GC.SuppressFinalize(this) above the Dispose(True) call. It is a little better to inform GC ealier.
Simliarly, move disposed=true just after the if condition. This can help reducing the thread-safety issue since release unmanaged resource can take a while. (not 100% although)
Henry Liang 2007-12-29 01:44
@装配脑袋
你说的有道理。
Cat Chen 2007-12-28 23:28
我觉得这个写法是线程不安全的。
只有博主才能看到 2007-12-28 20:56
太搞笑了.
望穿秋水 2007-12-28 20:32
//该函数为手动调用,此处可进行托管资源的清理
这里具体该怎样写对象的释放?很不解?
辰 2007-12-28 18:56
说了还是没说。
到底怎么从内存清理。
GC.SuppressFinalize(this);
这句话根本没用
Terry Sun 2007-12-28 17:38
实用的文章
偶在上一个项目中有用到了继承IDisposable的方法,Dispose(bool disposing)
这个方法比偶写的巧,3Q
装配脑袋 2007-12-28 16:25
问题的关键在于,有人不知道什么叫“非托管资源的清理”,以至于还是不能正确实现Dispose
代码乱了 2007-12-27 01:11
多谢,很喜欢这曲子