dingpin 发表于 2008-1-30 16:50

学习中,来一份
dingpin1986521@163.com

a8609785 发表于 2008-2-1 09:10

发个代码谢谢

楼主发个代码 邮箱是a8609785@163.com谢谢

peach5460 发表于 2008-2-2 16:17

我想看一下你的代码

24是怎么算的,我想看看算法
呵呵,谢谢

peach5460@gmail.com

pacocai 发表于 2008-2-3 02:02

这个是我最早期的一个程序,其实算法我感觉也有问题。[em10]
这个程序只能算是我早期学习C#过程中的一个失败品。虽然说失败现在还是有N多…………[em10]
这几天快年过了……我这边没办法发邮件。等过完年回来再给大家发。不好意思。

peach5460 发表于 2008-2-3 08:44

呵呵...好的...

你用正则表达式做的吗??

我最近想回忆起那个大学老师讲的课,发现极不起来了

pacocai 发表于 2008-2-3 08:48

没使用正则表达式,因为只是简单的4个数字运算,用正则表达式有点浪费,不过倒是可以运用工厂模式来实现倒是真的。只不过在做这个程序的时候我不懂正则表达式,更不懂得什么叫工厂模式。[em10]

peach5460 发表于 2008-2-3 09:06

额...刚发完那个回帖我就后悔了..用不上正则表达式

最近想写个计算器...
想让textbox一直接收按键点击...然后按等号的时候再去算那个四则运算式...
没头绪...

现在看到什么都像正则表达式了,呵呵

pacocai 发表于 2008-2-3 10:03

使用工厂模式做计算器,想当的好!你需要开一个类这个类种就一个switch做为运算符的判断,然后在分支条件里再调用不同的类。加法一个类,减法一个类~~~~这样比较好。

你的想法我大概能知道,其实这样也比较简单,每次的输入都是单次增加,你可以先对他每次输入的运算符和加减号做处理。最后他按等号的时候就直接给出答案,不过这种方法只能实现加减法,因为乘除会有一个优先运算。这个问题当时我也有遇到过。[em12]

说实话,我还真把具体的算法忘了,这个我到时候查一下这个程序的源代码,这个源代码里有这个算法。[em10]

peach5460 发表于 2008-2-3 11:46

呵呵,谢谢

pacocai 发表于 2008-2-3 13:30

呵呵,我当时的算法是这样,如果只是加减运算的话就照常加减。当如果发现有乘号的时候你就把乘法另外计算,最后将值与放到加减运算中去……这样最后不管你怎样放罢这个四则运算最后的答案就能保证这个序列的正确性。

用一个变量来记录总的运算记录。
A=(普通加减运算的和)
设置两个变量,分别记录两个不同的变量值。
C,D
设置一个变量做为乘队法的计算结果
E
1+1*2/2
你这样的就是先做1+1的运算,那么总变量里的A值就是2,
接着开始继续往下,发现乘号以后那就是说你的第一个变量做的运算就是多余的,那就从总的变量中把所加的1减掉,然后再用所记录的第二个变量先做乘的运算,最后再加乘运算的结果与第一变量相加。以此推算下去的话,最后就是先进行了乘计算,再进行了除计算,最后就是加法运算。算法大概是这样,不知道你能明白么?我说得比较乱……[em10]

还有另一种情况,那就是在四则运算中有括号的情况下的处理,你就要做括号的判断,用两个变量来记录括号中的运算公式,和上面一样,只不过是多了一步就是当括号中的运算结束以后再与最后的记录进行简单的加减运算就可以了。

上面这是一种算法,实现起来比较容易。还有一种算法,那就是对字符串进行查找和分析,先对字符串中是否有括号进行查找,如果有括号就把括号中的东西提出来计算,计算以后记入变量中,然后再对乘除号进行计算,最后再对加减进行提取计算,这个的话主要就是提取字符中……其实要实现也不难。

这两种方法你可以对比一下,挑自己喜欢的方法去实现。其它的我暂时没有好的方案。如果你有想到的话分享一下。[em12]

peach5460 发表于 2008-2-3 16:53

呵呵,看懂了...

但是我感觉不是很有效的算法...

我再想想...

pacocai 发表于 2008-2-3 17:05

问题是你要注意你的TEXTBOX输入以后是字符串……如果不是字符串提取计算的话,那就只能从输入的时候就着手记录。如果需要是一整个四则运算的话,说实话,没想出什么有效的算法。[em10]

你再思考一下,如果有好的算法告诉我一声,现在正在研究连连看的算法。呵呵……

peach5460 发表于 2008-2-3 19:26

呵呵...我只是觉得你的算法万一出现很多括号貌似算法复杂度会很大...

我想想吧...

其实我算法很薄弱...数据结构也很差

songbaobin 发表于 2008-3-10 16:09

学习

你好,楼主
源代码给下学习
谢谢
yumengmeng0607@sina.com.cn

songbaobin 发表于 2008-3-10 16:11

学习

你好,楼主
源代码给下学习
谢谢
yumengmeng0607@sina.com.cn

smoon 发表于 2008-3-10 17:10

gzf0306@126.com

QQ395108605 发表于 2008-3-10 22:03

楼主真强啊~  给发一下~  学习学习~
qq_zzfde@163.com 谢谢~

KTWO 发表于 2008-3-10 22:13

支持 我需要代码 邮箱:396374174@qq.com 谢谢·!!!

chashen8888 发表于 2008-3-10 22:29

谢谢!
447661568@qq.com

xinyu13520 发表于 2008-3-11 15:02

支持,麻烦给发一下xinyu13520@yahoo.com.cn

页: 1 2 3 4 5 [6] 7 8 9 10 11

编程论坛