一 需求分析

从键盘输入一个简单的表达式,如“ S=4+6*9-1+8/5”,按回车键结束输入,则屏幕显示S=58.6,小数点保留1位。假设输入的表达式中只含个位十进制数和 “+”、“-”、“*”、“/”运算符,且同一运算符最多出现2次。

二 程序设计

2.1 设计思想

这个程序应该能正确处理数字和数学表达式的输入。我的设想是使其进一步处理最多12位十进制小数的输入,以及带有括号、四则运算算式的正确处理,并给出可以精确到小数点后五位的正确结果。

该程序应完成工作:

  • 公式的输入,包括处理数字输入、符号输入,以及正确处理输入公式的句法

  • 公式的计算。其中包括正确处理各种符号运算的优先级和结合性、中间数的临时保存、小数的正确处理等

  • 结果的正确显示

主程序的大致框图如下:

2.2 PARSEEXP

逐字符进行读取,并根据读取到的字符判断算式中出现的token属于什么类型。若是数字,则调用INPUTDECIMAL将其处理成双精度浮点数;若是运算符,则对应处理(见下)。

对于算式的处理和运算,采用了调度场算法(Shunting yard algorithm)。采用两个堆栈,一个放数字,一个放运算符。当算法执行到将运算符放置到数字上的步骤时,立即进行运算。这样,分析完算式后,数字栈顶便是结果。

点击此处下载文档和源码

基于汇编语言实现的带小数的四则运算相关推荐

  1. 利用栈实现四则运算,带负数,带括号,带小数

    这利用栈实现四则运算,带负数,带括号,带小数,自己写的有问题大家纠正. #include <stdio.h> #include <stdlib.h> #include < ...

  2. [汇编语言计算机原理] 带开机音乐,速度、进度和行驶方向显示的出租出计费系统设计

    写在前面的话: 这是计算机原理实验的大作业. 详细报告在资源"(汇编语言程序设计)带开机音乐,速度.进度和行驶方向显示的出租出计费系统设计"中,可自己下载. 资源中的源代码,我把音 ...

  3. python 把带小数的浮点型字符串转换为整数的解决方案

    python 把带小数的浮点型字符串转换为整数的解决方案 参考文章: (1)python 把带小数的浮点型字符串转换为整数的解决方案 (2)https://www.cnblogs.com/mlgjb/ ...

  4. Java除法结果带小数、进一法的实现 Java问题通用解决代码

    http://blog.csdn.net/windone0109/article/details/5355379进一法: 即省略的位上只要大于零都要进一位 :  四舍五入法: 即省略的位上小于五都要舍 ...

  5. python怎么创建列表_用Python将一个列表分割成小列表的实例讲解 Python 如何创建一个带小数的列表...

    python里有一个列表,列表里有几个小列表,小列表#冒泡排序:scoreList = [['a',98],['c',45],['b',70],['d',85],['h',85],['f',92],[ ...

  6. C语言算小数加减,C语言带小数加减乘除.doc

    C语言带小数加减乘除 /*Desgined by doBell-ConG*/ /*Function:simply add, subtract, multiply and divide*/ #inclu ...

  7. Java除法结果带小数、进一法的实现(java)

    Java除法结果带小数.进一法的实现(java) Java除法结果带小数.进一法的实现(java) 进一法: 即省略的位上只要大于零都要进一位 : 四舍五入法: 即省略的位上小于五都要舍去,但省略的位 ...

  8. Java除法结果带小数、进一法的实现

    进一法: 即省略的位上只要大于零都要进一位 : 四舍五入法: 即省略的位上小于五都要舍去,但省略的位上满五都要进一位 : 还有一种 去尾法: 即省略的位上不管是否满五都要舍去 : 1.除法带小数 例如 ...

  9. 基于Matlab实现微波带低通高通带通滤波器设计

    基于Matlab实现微波带低通高通带通滤波器设计 在微波通信系统中,滤波器作为一个重要的模块被广泛使用.本文将介绍如何使用Matlab进行微波带通滤波器设计,并提供相应的源代码. 理论基础 微波滤波器 ...

最新文章

  1. 数据库SQL Server
  2. LuoguP2754 [CTSC1999]家园(分层图,最大流)
  3. linux测试函数耗时tick数,C语言中怎样测验函数执行时间
  4. 科学家对医疗预印本服务器的影响,美国化学学会将启动化学论文预印本服务
  5. java socket 异常处理_socket编程报异常java.io.EOFException
  6. MySQL常用命令集锦
  7. Java Swing线程之SwingUtilities.invokeLater解释
  8. VScode+Latex:代码和pdf互相跳转
  9. java 上传文件接口_Java接口实现文件上传
  10. Python文本加密 或 文本文件加密
  11. 平台型组织——数字化时代的组织智商鉴定器
  12. 计算机毕业设计-基于springboot的社区志愿者管理系统
  13. 浅谈智能家居安防监控的重要性
  14. Apple pencil 无法连接到ipad的解决办法汇总
  15. 道阻且长,行则将至:搞科研,我们是认真的——数据院四周年系列报道之科研篇...
  16. 格灵深瞳:人脸识别最新进展以及工业级大规模人脸识别实践探讨 | 公开课笔记...
  17. QIIME2使用方法
  18. Pytorch | yolov3原理及代码详解(二)
  19. 游戏测试的工作(来自网络)
  20. erlang NIF部分接口实现(一)加载过程及编写框架

热门文章

  1. 用C语言求1-2000之间哪些是闰年
  2. java自定义包名和类名不可同名
  3. 提取所有mtk机型的线刷包
  4. 通达信l2接口如何用?
  5. java基础之经典算法总结篇
  6. 计算机网络(中科大郑烇)学习笔记
  7. 序列比对概念及相应工具的对比
  8. [C++ 系列] 90. 超详解C++思维导图
  9. 已经提出离职,都要办交接了,我又后悔了怎么办
  10. 关于儿童急性感染性腹泻