2022年2022年简单的LISP算术表达式计算器 .pdf
《2022年2022年简单的LISP算术表达式计算器 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年简单的LISP算术表达式计算器 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、沈阳航空工业学院课程设计(说明书)简单 LISP 算术表达式计算器班级/学号 7402101-024 学 生 姓 名田青林指 导 教 师贾亮名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 11 页 -简单算术表达式计算器-1-一、题目分析本题目是设计一个简单的LISP 算术表达式计算器。简单 LISP 算术表达式(以下简称表达式)定义如下:(1)一个 0.9的整数;或者(2)(运算符表达式 表达式)例如,6,(+45),(+(+25)8)都是表达式,其值分别为 6,9 和 15。算术表达式不同于普通的普通的表达式,不是简单的从左向右(或是从右向左)的计算,它包含了算术运算符和算术
2、量,计算的过程就是要根据算术运算符的优先关系将其所对应得量的每一位进行计算,最后得到结果。初步思想是建立一个栈列,将变量存储进去,通过每步中对头两个算术量的求和,最后将结果存储到栈头,输出。运算的要点如下:从左到右地扫描表达式(1)扫描到操作数时,直接输出。(2)第二次扫描到(时进行递归调用,从头进行扫描。(3)扫描到算术量时将其压入栈,并与前一个压入栈的算术量求和。(4)最后的栈头元素即为所求。二、设计过程(程序流程图)根据本课设题目的要求,本设计程序依据利用栈依次从里向外计算括号内数的思想设计成一个简单的LISP 算术表达式计算器。该程序首先建立一个栈,通过PUSH函数和 POP 函数的入
3、栈,出栈功能实现栈中元素“先进后出,后进先出”的特性。然后动态建立一大小为K 的整型数组,把开辟的数组指针赋给a,从而实现栈函数的构造过程。然后再建立栈的对象,再建立一个字符型数组ch,然后向该数组输入表达式,最后进入表达式判断阶段。若LISP 表达式为一操作数,则直接输出;若该表达式为运算符,则经过主函数的扫描计算,最终输出结果。2.1 栈的建立这是一个子函数 stack(int k=100),首先建立一个足够大的栈,动态定义其大小为100,然后对其置空初始化,再根据判断其是否为空返回不同的值。其设计流程图如图 1。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 11 页 -简
4、单算术表达式计算器-2-图 1:栈的建立2.2 入栈这是一个子函数 PUSH,首先赋给输入值k,再判断栈是否为非空,若为非空则将 k 压入栈中;若为满栈,则输出错误。其流程图如图2 所示。图 2:PUSH 函数2.3 出栈定义栈 a 初始化栈 a 是否为空?Top=-1 Top=big 返回 top 开始Y N 开始输入 k 值!full()?atop=k top+wrong push 返回N Y 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 11 页 -简单算术表达式计算器-3-这是一个子函数 POP,首先判断是否非空,若是则输出栈头元素atop,若不是,则返回 0 并参与运
5、算。其设计流程图如图3 所示。图 3:POP 函数2.4 构建函数首先动态开辟一个大小为K 的数组,然后把开辟数组的指针赋给a,然后将 K-1赋给 Big,将-1 赋给 Top,从而实现函数的构造过程,函数构造完毕,退出此进程,此段程序结束。其设计流程图如图4 所示。图 4:构建函数2.5 主函数这是整个程序的核心所在。首先要建立一个栈V1,将所求表达式赋值给字符变开始!empty()?返回 atop top-返回 0 结束开始动态开辟一个大小为k 的数组把开辟数组的指针赋给a big=k-1 top=-1 结束名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 11 页 -简单算术
6、表达式计算器-4-量 ch。接下来就是从头扫描字符,这也是一个循环的过程。若chi不是(,则直接入栈,若是则跳向下下个字符,;再判断是不是(,若不是,则将 chi 入栈,跳向下一个字符;再判断是不是(,若还不是则入栈。这其中若是,若是则都要进行从头扫描。接下来进行一个总的判断“!=(&!=)?”,若成立,跳向下一字符,若不成立跳过本步;接下来判断是否为),若是则把入栈的两个元素出栈后相加再入栈,跳向下一字符。最后对此循环作一个判断,若chi 是 0 则接着进行循环,若不是则跳出循环输出栈顶元素,即为所求。其设计流程如图5 所示。三、调试过程及实验结果3.1 调试过程:本程序在调试的过程中遇到了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年简单的LISP算术表达式计算器 2022 简单 LISP 算术 表达式 计算器
限制150内