欢迎来到天天文库
浏览记录
ID:23845689
大小:331.00 KB
页数:20页
时间:2018-11-11
《第01章 即时计算器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第1章即时计算器。本章循序渐进的介绍即时计算器的编写方法,您将学习下列内容:⊙即时计算器的编写原理⊙最简单的即时计算器程序的编写就象商店里出售的廉价计算器一样,这个最简单的计算器程序不能处理括号和运算符的优先级,只有当您按照正确的顺序输入时才能得到正确的结果,同一个算式,输入的顺序不同,计算出来的结果可能相差千里。⊙支持四则混合运算的即时计算器⊙支持括号的即时计算器-20-1.1即时计算器的编写原理所谓即时计算器,是和表达式计算器相对应的概念,就是在输入的时候计算中间结果并显示,输入完毕按回车键时显示最终的结果。而表达式计算器是指先输入计算公式,输入公式的过程中不计算中间结果,公
2、式输入完毕后先检查公式是否正确,如果公式中存在错误则在显示相应的信息之后等待使用者修改公式,如果公式正确再计算结果,并将计算结果显示给使用者。我们知道,在基本四则运算中使用的运算符包括括号、乘号、除号、加号和减号,计算的优先顺序是:先进行括号内运算,再进行乘法和除法运算,最后进行加法和减法运算。因此,一个完善的计算器程序必须能识别括号和运算符的优先级别。首先,我们通过一个例子来分析如何处理运算符的优先级别。例如算式50+20/2-5,处理过程如下:先输入第一个操作数50,然后输入第一个运算符“+”。这时,程序将操作数50储存在变量“运算器”中,将“+”储存在变量“运算器运算符”中
3、,等待继续输入。此时,各变量的值为:运算器=50,运算器运算符=43(加号的字符代码,下同)。输入第二个操作数20后,输入第二个运算符“/”,由于“/”的优先级别高于“+”,现在还不能确定加数,无法进行加法运算,需要将“运算器”中的数据转移到变量“寄存器”中、将“运算器运算符”中的数据转移到变量“寄存器运算符”中,并将第二个操作数和运算符储存在“运算器”和“运算器运算符”中,等待输入。此时,各变量的值为:寄存器=50,寄存器运算符=43,运算器=20,运算器运算符=47。输入第三个操作数2后,输入第三个运算符“-”,减号的优先级别低于第二个运算符除号,这时,程序将第二个操作数和第
4、三个操作数进行除法运算,将结果储存在“运算器”中,该结果作为中间结果显示在显示框中。此时,各变量的值为:寄存器=50,寄存器运算符=42,运算器=10,运算器运算符=45,显示框中显示的是10。输入第四个操作数5,并按回车键结束计算,屏幕上首先显示的是5,程序将“运算器”中的数据和屏幕上显示的数据按照“运算器运算符”变量储存的运算符进行运算,并储存在运算器中。即:运算器=运算器(运算器运算符)屏幕显示的第四个操作数=10-5=5。然后再将“寄存器”中的数据和“运算器”中的数据按照“寄存器运算符”变量储存的运算符进行运算,并储存在运算器中。运算器=寄存器(寄存器运算符)运算器=50
5、+5=55。-20-最后将结果显示在屏幕上。接下来,我们来分析括号的解析方法。一组括号由一个左括号和一个右括号组成,输入右括号时的处理方法和输入左括号时的处理方法是互逆的。当输入左括号时,需要将“运算器”、“运算器运算符”、“寄存器”、“寄存器运算符”等变量中的内容分别保存在“括号运算器”数组变量、“括号运算器运算符”数组变量、“括号寄存器”数组变量和“括号寄存器运算符”数组变量中,然后还原“运算器”、“运算器运算符”、“寄存器”、“寄存器运算符”到初始状态,用于括号内的运算。这里使用数组变量是为了能够处理多层括号,数组的维数就是我们可以同时使用的括号层数。如果不定义上述数组变量
6、的维数,在使用的过程中动态添加,则可以同时使用的括号层数仅仅受系统硬件配置的约束。当输入右括号时,得出括号内的运算结果并储存在“运算器”中,并对“括号运算器”和“括号寄存器”中的数据进行如下处理。“括号运算器运算符”必然是“*”或“/”,对“括号运算器”和“运算器”中的数据进行相应的运算,结果储存在“运算器”中,括号运算器清零。如果“括号寄存器运算符”是“*”或“/”,对“括号寄存器”和“运算器”中的数据进行相应的运算,结果储存在“运算器”中,括号寄存器清零;如果“括号寄存器运算符”是“+”或“-”,将“括号寄存器”的内容储存到“寄存器”、“括号寄存器运算符”的内容储存到“寄存器
7、运算符”后清零,等待使用者继续输入。1.2最简单的即时计算器所谓最简单的计算器,就是不支持括号、不进行运算符的有限级别判断,按照输入的顺序进行计算的计算器,就象商店里出售的廉价计算器。下面,请启动易语言,和我一起开始编写这个最简单的计算器。1.2.1设计运行界面在窗口控件上放置一个标签控件,用于显示输入的数值、中间计算结果和最终的结果,标签控件和窗口控件的属性请自行设置。-20-设置好的界面如图1-1所示。图1-1最简单即时计算器的设计界面1.2.2确定输入输出由于是最简单的计算
此文档下载收益归作者所有