实现计算器4则运算算法-分离算法 理论
来源:互联网 发布:ssh权限管理系统源码 编辑:程序博客网 时间:2024/06/05 01:00
1.问题
计算机如何读懂四则运算表达式?
例: “10.3 +(-3 - -0.54)* 100”
2.后缀表达式
将运算符放在数字后面的后缀表达式
实例:
10 + 4 -> 10 4 +
1 +2*3 -> 1 2 3 * +
9 + (3 - 1) * 5 -> 9 3 1 -5 * +
后缀表达式消除了中缀表达式中的括号
同时保留中缀表达式中的运算优先级
3. 解决方案
1.将中缀表达式进行数字和运算符的分离
2.将中缀表达式转换为后缀表达式
3.通过后缀表达式计算 最终结果
所要计算的中缀表达式中包含
- 数字和小数点【0-9 或 .】
- 符号位 【 + 或 -】
-运算符 【+,-,*,/】
- 括号 【(或)】
思想 : 以符号作为标志对表达式中的字符逐个访问
- 定义累计变量num(存储数字)
- 当前字符exp【i】为数字或小数点时:
累计: num += exp【i】
-当前字符exp【i】为符号时:
num 为运算数,分离并保存
若exp【i】为正负号:
累计符号位 + 和 -: num += exp【i】
若exp【i】为运算符:
分离并保存
伪代码:
for(int i=0; i<exp.length(); i++)
{
if ( exp[i] 为数字或小数点)
累计: num += exp【i】;
else if( exp[i] 为符号)
{
if (num != "")
分离并保存运算数: num;
if( exp[i] 为正号或负号)
符号位累计 : num += exp【i】;
else
{
分离并保存运算符 : exp【i】;
}
}
}
难点:
- 如何区分正负号与加号和减号?
- +和 - 在表达式的第一个位置
- 括号后的 + 和-
- 运算符后的 + 和 -
四则运算表达式的计算分三个步骤
- 数字和符号分离
- 中缀表达式转后缀表达式
- 根据后缀表达式计算结果
- 实现计算器4则运算算法-分离算法 理论
- 实现计算器4则运算算法-分离算法
- 实现计算器4则运算算法-中缀表达式转后缀表达式
- java实现简单计算器算法--支持浮点数运算
- JAVA计算器算法实现
- MD5算法理论和实现
- 遗传算法理论与实现
- 张正友标定算法理论及算法实现
- java 实现简单计算器算法
- 计算器算法的简单实现
- 理论算法
- 计算器算法
- PyQt4--QThread实现界面与算法分离
- matlab实现PS算法之色调分离
- 基于堆栈的计算器实现算法
- 基于堆栈的计算器实现算法
- winfrom计算器,使用栈实现算法
- 计算器核心算法代码实现(Java)
- 定时器Timer
- Matlab size函数的使用
- 分苹果算法
- vim编辑器的使用
- JS简单的更改样式
- 实现计算器4则运算算法-分离算法 理论
- SQL语句使用08-------函数
- 按钮组件
- 移动架构01_UML用例图
- Codeforces Round #408 (Div. 2) B. C.D.
- 《计算机视觉-一种现代方法(第2版)》读书笔记四:中层视觉
- Merge k Sorted Lists(leetcode)
- rotate_array
- “双鸭山大学的来源”