基于汇编语言实现的带小数的四则运算
一 需求分析
从键盘输入一个简单的表达式,如“ S=4+6*9-1+8/5”,按回车键结束输入,则屏幕显示S=58.6,小数点保留1位。假设输入的表达式中只含个位十进制数和 “+”、“-”、“*”、“/”运算符,且同一运算符最多出现2次。
二 程序设计
2.1 设计思想
这个程序应该能正确处理数字和数学表达式的输入。我的设想是使其进一步处理最多12位十进制小数的输入,以及带有括号、四则运算算式的正确处理,并给出可以精确到小数点后五位的正确结果。
该程序应完成工作:
公式的输入,包括处理数字输入、符号输入,以及正确处理输入公式的句法
公式的计算。其中包括正确处理各种符号运算的优先级和结合性、中间数的临时保存、小数的正确处理等
结果的正确显示
主程序的大致框图如下:
2.2 PARSEEXP
逐字符进行读取,并根据读取到的字符判断算式中出现的token属于什么类型。若是数字,则调用INPUTDECIMAL将其处理成双精度浮点数;若是运算符,则对应处理(见下)。
对于算式的处理和运算,采用了调度场算法(Shunting yard algorithm)。采用两个堆栈,一个放数字,一个放运算符。当算法执行到将运算符放置到数字上的步骤时,立即进行运算。这样,分析完算式后,数字栈顶便是结果。
点击此处下载文档和源码
基于汇编语言实现的带小数的四则运算相关推荐
- 利用栈实现四则运算,带负数,带括号,带小数
这利用栈实现四则运算,带负数,带括号,带小数,自己写的有问题大家纠正. #include <stdio.h> #include <stdlib.h> #include < ...
- [汇编语言计算机原理] 带开机音乐,速度、进度和行驶方向显示的出租出计费系统设计
写在前面的话: 这是计算机原理实验的大作业. 详细报告在资源"(汇编语言程序设计)带开机音乐,速度.进度和行驶方向显示的出租出计费系统设计"中,可自己下载. 资源中的源代码,我把音 ...
- python 把带小数的浮点型字符串转换为整数的解决方案
python 把带小数的浮点型字符串转换为整数的解决方案 参考文章: (1)python 把带小数的浮点型字符串转换为整数的解决方案 (2)https://www.cnblogs.com/mlgjb/ ...
- Java除法结果带小数、进一法的实现 Java问题通用解决代码
http://blog.csdn.net/windone0109/article/details/5355379进一法: 即省略的位上只要大于零都要进一位 : 四舍五入法: 即省略的位上小于五都要舍 ...
- python怎么创建列表_用Python将一个列表分割成小列表的实例讲解 Python 如何创建一个带小数的列表...
python里有一个列表,列表里有几个小列表,小列表#冒泡排序:scoreList = [['a',98],['c',45],['b',70],['d',85],['h',85],['f',92],[ ...
- C语言算小数加减,C语言带小数加减乘除.doc
C语言带小数加减乘除 /*Desgined by doBell-ConG*/ /*Function:simply add, subtract, multiply and divide*/ #inclu ...
- Java除法结果带小数、进一法的实现(java)
Java除法结果带小数.进一法的实现(java) Java除法结果带小数.进一法的实现(java) 进一法: 即省略的位上只要大于零都要进一位 : 四舍五入法: 即省略的位上小于五都要舍去,但省略的位 ...
- Java除法结果带小数、进一法的实现
进一法: 即省略的位上只要大于零都要进一位 : 四舍五入法: 即省略的位上小于五都要舍去,但省略的位上满五都要进一位 : 还有一种 去尾法: 即省略的位上不管是否满五都要舍去 : 1.除法带小数 例如 ...
- 基于Matlab实现微波带低通高通带通滤波器设计
基于Matlab实现微波带低通高通带通滤波器设计 在微波通信系统中,滤波器作为一个重要的模块被广泛使用.本文将介绍如何使用Matlab进行微波带通滤波器设计,并提供相应的源代码. 理论基础 微波滤波器 ...
最新文章
- 索尼大法要专门开始搞AI了,成立Sony AI,发力游戏、影像和美食
- C/C++结构体字节对齐详解
- C++知识点33——使用C++标准库(无序关联容器unordered_(multi)map,unordered_(multi)set)
- Numpy自定义dtype的一个使用误区
- 拖动改变Table的列宽度
- GNOME Menu File Browser-快速导航用户目次
- 【Tools】git操作总结
- OpenCV中6种访问Mat元素的方法
- Spring如何处理线程并发
- 线上问题随笔记录数据库连接池问题
- python空列表添加_Python列表的简单操作
- 【学习笔记】福州大学网络课程 网络空间安全概论(1,4)
- 相机内存卡照片删除怎么恢复
- png图片损坏打不开如何修复?
- windows 根据端口杀进程 部署jar包 批处理脚本
- 相机畸变矫正原理及代码实现
- 如何直接修改exe文件
- C# .NET CORE在linux下读取图片加载到文档方法 Gdip libgdiplus
- 在VS2017中使用Xlslib对Excel进行操作
- Ubuntu 16.04 下载、编译 友善之臂NanoPC-T2的Android5.1.1源码
热门文章
- 计算机科学论文收录,历年论文收录总数在学科(计算机科学及硬件)中专业排名.PDF...
- win7电脑连不上网怎么办
- 我的Tensorflow学习之路
- 云豹源码php mysql_如何进行直播搭建,云豹直播源码搭建
- 【老王的脑科学谬论】从“遗忘”这件事聊一聊大分子编码说和老王谬论
- Linux more 命令使用介绍
- 读书笔记 - 说话之道 (蔡康永) - 3(完)
- 基于RHEL8的Linux基础入门学习总结笔记(附示例代码)
- G - Game Night (前缀和 K-Kingpin Escape (给树加边变成边双连通图
- 5v继电器模块实物接线_高手教你玩传感器系列之继电器的使用