社区
C++ 语言
帖子详情
求程序设计思路
ylc3895_cn
2005-03-18 10:58:57
输入一行(或与之类似的): (3*(3+4)+5)*9
敲回车之后得出结果。
也就是把一句话翻译为运算式。
给我点思路就可以了,当然越多越好,越简单越好,越新越好。
...全文
126
8
打赏
收藏
求程序设计思路
输入一行(或与之类似的): (3*(3+4)+5)*9 敲回车之后得出结果。 也就是把一句话翻译为运算式。 给我点思路就可以了,当然越多越好,越简单越好,越新越好。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zjyu88
2005-03-19
打赏
举报
回复
上面说得很好..顶下~~
sloriver
2005-03-19
打赏
举报
回复
还是看编译原理的书好一点
当然 The C+ + Programming Language Third Edition\patr 1\ch 6\A Desk Calculator(p107)
上面有,讲的很细
BillSmith
2005-03-19
打赏
举报
回复
比较根本的解决办法是词法分析和语法分析,生成语法树。然后再算。
Cassati
2005-03-19
打赏
举报
回复
栈,运算符的优先级比较~~
pcboyxhy
2005-03-18
打赏
举报
回复
把表达式化为逆波兰式,
主要是运算符的优先级问题,
然后求值。
一般用栈,
数据结构书一般都会讲这个问题的。
当然递归处理也是可以的。
把不带括号运算符的表达式看成 原子表达式 ,
把带有括号的表达式看成 复合表达式,
所有的符合表达式是 将原子表达式两端添加括号并在外面添加运算符构成。
对于任意一个原子表达式可以简单的计算,
对于复合表达式,
可以采取如下策略:
搜索最外层的括号,
如果括号存在,
就递归计算括号内部的表达式,
并把计算后的结果替换掉原来的括号内的内容(括号也同时删除),
如果括号不存在,
说明遇到了原子表达式,
直接求解。
直到整个表达式序列中只剩下结果为止。
比如
(3*(3+4)+5)*9
先找到(3*(3+4)+5)开始处理,
3*(3+4)+5
发现(3+4)
开始处理 3+4
原子表达式,直接求值得到7
将(3+4)替换成7,得到3*7+5
现在是原子表达式了,直接计算得到26
替换成 26*9
变成原子表达式了
直接计算,然后输出 。
对于原子表达式,可以按照规则计算,
从左往右扫描表达式,
遇到'+' '-'计算前面的连续的式子(如果存在)
遇到'*' '/' 直接计算
noauh
2005-03-18
打赏
举报
回复
<<C++程序设计语言>>有一章讲了这个问题.
要用栈操作.
ylc3895_cn
2005-03-18
打赏
举报
回复
楼上稍微具体点,太笼统了。
zhangfjj
2005-03-18
打赏
举报
回复
翻数据结构的书吧,好象要用队列还是栈!
Android组件设计思想
理解Android组件设计思想,对Android应用程序架构会有更好的认识。这一节讲Android组件化设计的背景、理念、原则,以及Android在OS级别上提供的组件化支持,其中还会包含一个实验来验证这种组件化设计思想,可以对...
单片机秒表设计
1.1 单片机秒表课程设计的概述 1.2 课程设计
思路
及描述 1.3 课程设计任务和要
求
2 硬件与软件的设计流程 2.1 系统硬件方案设计 2.2 软件方案设计 3 程序编写流程及课程设计效果 3.1 源程序及注释 3.2 原理图分析 3.3...
C语言及
程序设计
提高视频精讲
本课为“C语言及
程序设计
”系列课程中的第二部“提高篇”。在第一部“初步篇”介绍基本的数据结构和控制结构基础上,引入函数和数组,传授模块化设计的方法,目标是使学习者有能力编制出300行左右代码的应用程序。...
Java 面向对象编程.pdf
紧密结合实际,利用大量典型实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结优化Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理。书中实例均基于最新的...
程序设计
思想
程序设计
思想是指在
程序设计
过程中所采用的一种思维方式,它是
程序设计
的灵魂和基础。在实际的
程序设计
中,我们需要遵循一定的
程序设计
思想,以确保程序的正确性、可读性和可维护性。在函数式编程中,需要采用纯函数...
C++ 语言
64,631
社区成员
250,915
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章