标题:[原创]用LR(0)写的计算器
只看楼主
stnlcd
Rank: 1
等 级:新手上路
帖 子:177
专家分:1
注 册:2004-11-21
 问题点数:0 回复次数:8 
[原创]用LR(0)写的计算器
V4t1DKlp.rar (20.55 KB) [原创]用LR(0)写的计算器


完全按照LR(0)语法设计要求写的表达式计算器,
源代码包含词法分析程序和语法分析(LR(0))程序。
目前该计算器可以计算如:
cos,sin,tg,lg,ln等常用的表达式,
或计算统计数据:
avg(3,4,5)=4(求平均值)
如:
求coscos1:
输入coscos1然后输入'='就可以求得如下:
coscos1=0.857553

求lglg1000:
输入lglg1000然后输入'='就可以求得如下:
lglg1000= 0.477121

求2^2^2:
输入2^2^2然后输入'='就可以求得如下:
2^2^2 = 16.000000

求10,20,30的平均数:
输入avg(10,20,30)后输入'='就可以得到:
2^2^2 = 16.000000

求3+4*(5-3):
输入该表达式后输入'='得到:
3+4*(5-3) = 11.000000

★输入表达式后不要忘了输入'='(不要习惯性的打回车!),如果表达式有问题(词法或语法错误)那么输入‘=’后不会有任何反映,只要表达式输入正确就会得到正确的值!目前该计算器还不支持除10进制以外的其他进制(本人的疏忽)
★lr0.h为词法分析和语法分析程序!本人是先用c语言写程序,然后在用类封装的,所以封装的比较差,就将就看吧,
c语言版文件今天不能上传了(因为今天我已经洗?个文件了),改天吧!

[此贴子已经被作者于2005-11-5 23:51:06编辑过]

搜索更多相关主题的帖子: 计算器 源代码 sin cos 
2005-11-05 23:21
stnlcd
Rank: 1
等 级:新手上路
帖 子:177
专家分:1
注 册:2004-11-21
得分:0 

以上程序写给那些对编译原理感兴趣的同学。
如果想写表达式计算器而严格的用编译原理的产生式系统来分析(词法分析-》语法分析-》语法制导)。这样太麻烦了!可以用数据结构的方法来写,那样简单多了,但没有我这个功能强大!
以上计算器的产生式系统如下:
E->E+E|E-E|E*E|E/E|(E)|id|PoneE|avg(F)
Pone->cos|sin|lg|ln...
F->id,F|id
当然可以加入更多的功能,比如方差分析,统计功能等,这样这个计算器就完善了,本人比较懒,对这类算法不是很熟悉,就不加了!


要让一个男人破产,请给他一架相机,要让一个男人倾家荡产,请给他一架望远镜。
2005-11-05 23:50
激情依旧
Rank: 1
等 级:新手上路
威 望:2
帖 子:524
专家分:0
注 册:2005-4-4
得分:0 
呵呵。看起来很不错。我还没运行。不知道是否正确。不过都先设为精华

生是编程人!!!!死是编程鬼!!!!颠峰人生!!!焚尽编程!!! 爱已严重死机!情必须重新启动!情人已和服务器断开连接!网恋也需要重新拨号!-----激情依旧
2005-11-08 08:25
stnlcd
Rank: 1
等 级:新手上路
帖 子:177
专家分:1
注 册:2004-11-21
得分:0 
谢谢激情依旧
如果这个可以为精华的话,那么我的“图最短路径的动态规划算法和A*算法”可以为超精华了。
麻烦大家看看,要不我讲了也白讲。

要让一个男人破产,请给他一架相机,要让一个男人倾家荡产,请给他一架望远镜。
2005-11-09 12:12
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
得分:0 
强人,有机会一定要学编译原理.

c++/C + 汇编 = 天下无敌
2005-11-10 22:36
打豆豆
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-12-28
得分:0 
先谢谢楼主分享啊
2006-01-04 09:31
modern_roc
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-4-19
得分:0 



够厉害。。。佩服
顶 。顶顶顶顶

┣☆等待英雄,我就是那条龙。
2006-04-28 01:36
高阁逆风
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:508
专家分:321
注 册:2006-4-29
得分:0 
够精致!!!

      上天安排我做了个多情的人,却又安排我遭遇了无数绝情的人,所以我最终把自己磨练成了一个滥情的人。别人是人见人爱,我是见人爱人.......
2006-06-09 14:19
light001
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-1-6
得分:0 
谢谢了。。。。不错啊
2013-01-06 21:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-32793-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.570489 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved