算法设计工具实验报告.docx
- 文档编号:1426266
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:22
- 大小:264.98KB
算法设计工具实验报告.docx
《算法设计工具实验报告.docx》由会员分享,可在线阅读,更多相关《算法设计工具实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
算法设计工具实验报告
深圳大学实验报告
课程名称计算机根底
工程名称算法设计工具
学院
专业
指导教师
报告人学号
实验时间2021.12.01
提交时间2021.12.08
教务处制
一、实验目的与要求
1.加深对算法设计和流程图的认识和理解;
2.掌握算法设计工具Raptor的根本工作环境;
3.掌握顺序构造、选择构造和循环构造的设计方法;
4.掌握Raptor的子图和子程序设计方法。
二、实验容与方法
1.Raptor的工作环境
2.控制构造
〔1〕顺序构造案例一
〔2〕选择构造案例2
〔3〕循环构造案例3
3.子图和子程序案例4
4.练习题
三、实验步骤与过程
1.Raptor的工作环境
1〕Raptor的下载与安装
在Internet上查找Raptor,或访问Raptor官网〔raptor.martincarlisle./〕下载,按照Raptor汉化版安装向导的说明进展安装即可。
2〕Raptor的窗口组成
启动Windows系统后,选择“开场〞→“所有程序〞→“Raptor汉化版〞命令,或双击桌面上的Raptor快捷图标,翻开Raptor的应用窗口,如图1所示。
工作区
菜单栏
符号区
工具栏
图1
(1)标题栏。
标题栏位于Raptor窗口的顶部,显示该软件的图标,应用程序名称〔Raptor汉化版〕以及当前正在处理的Raptor的文件名。
标题栏最左端是Raptor图标,单击该图标可以翻开该软件的控制菜单,包括“复原〞、“移动〞、“移动〞、“大小〞、“最大化〞、“最小化〞和“关闭〞等命令。
右边的三个按钮分别是“最小化〞按钮、“最大化〞/“复原〞按钮和“关闭〞按钮。
(2)菜单栏。
菜单栏位于标题栏的下方,包括“文件〞、“编辑〞、“比例〞、“视图〞、“运行〞、“模式〞、“画笔〞、“窗口〞、“生成〞、“帮助〞等10个菜单项选择项。
单击每一个菜单项选择项都会激活一个下拉菜单,列出有关此项功能的具体操作命令。
其中,“模式〞菜单项选择项包含“初级〞、“中级〞、和“面向对象〞3种模式。
(3)工具栏。
工具栏位于菜单栏的下方,显示常用的Raptor命令选项,用于快速启动这些应用,如“新建〞、“翻开〞、“保存〞、“运行〞、“单步运行〞以及“画笔〞等。
(4)符号区。
Raptor有6种根本符号,每个符号代表一个特定的语句类型。
各类语句的功能如下。
1赋值语句:
用于各类运算以更改变量的值。
2调用语句:
用于调用Raptor置过程、子图和子程序。
3输入语句:
允许用户输入数据,并将数据赋值给一个变量。
4输出语句:
用于显示变量的值或保存到文件中。
5选择语句:
经过条件判断后选择两条路径之一,并继续执行。
6循环语句:
允许重复执行一个或多个语句,知道某些条件为真值。
(5)工作区。
工作区就是编制流程图的地方,用于显示当前编辑的程序。
初级模式下,右击main程序可建立子图或子程序。
(6)主控台。
在Raptor中,当输出语句执行时,会将数据输出到“主控台〞窗口上。
每当程序运行完毕时,在主控台上均会显示程序执行了多少条语句。
Raptor的“主控台〞窗口如图2所示。
图2Raptor的“主控台〞窗口
退出Raptor的方法有多种,常用的方法是在Raptor应用程序窗口中选择“文件〞→“退出〞命令,或直接单击Raptor应用程序窗口上标题栏右端的“关闭〞按钮。
2.控制构造
编写程序的重要工作之一就是控制语句的执行流程,控制构造含有3种根本类型,它们是顺序构造、选择构造和循环构造。
1)顺序构造
顺序构造是最简单的程序构造,它把每条语句按顺序排列,执行时程序从开场〔Start〕语句顺序执行到完毕〔End〕语句,箭头连接着语句并指示程序的执行方向。
案例1某圆的半径radius,求该圆的面积Area。
首先确定计算圆的面积公式:
Area=pi*radius*radius
然后在Raptor中编制相应的流程图,如图3所示。
图3计算圆的面积
其运行结果如图4
图4
注意:
在Raptor中目前没有提供为用户定义常量的功能,而只是在系统部定义了假设干符号来表示常用的数值型常数。
当用户需要相应的值时,可直接使用代表这些常数的符号〔这些符号也被称为保存字,保存字不可以再作为变量或者子图、子程序的名字〕。
圆周率pi被定义为3.1416〔Raptor默认精度为4位〕。
2〕选择构造
很多情况下,仅使用顺序构造进展程序控制是无法得到针对现实世界问题的解决方案的。
有时需要根据某些条件是否满足来决定程序执行的方向,或者从给定的两种操作中选择其一,这就是选择构造要解决的问题。
选择语句可以使程序根据数据的当前状态选择两条可以选择的路径中一条继续执行。
案例2某圆的半径radius,求该圆的面积Area。
如果输入圆的半径radius是负数,那就没有意义了。
请设计程序,当输入的半径radius为负数时,输出错误提示信息。
分析题目可知,当输入半径radius之后,如果半径radius小于零,那么输出相应的错误提示信息:
如果半径不小于零,那么进展相应半径radius的圆面积计算。
根据数据当前状态选择两条可以选择的路径中的一条继续执行,显然要用到选择构造。
在Raptor中编制相应的流程图,如图5
图5计算圆的面积
当输入半径radius小于零的时候,得到运行结果如下:
当输入半径radius不小于零的时候,得到运行结果如下:
3〕循环构造
循环构造就是反复执行某段程序,直到某种条件满足时才完毕执行的控制构造。
一个循环语句允许重复执行一个或多个语句,直到某种条件为真。
控制循环体执行次数的方法有以下两种。
(1)采用计数器方法:
设置一个计数器,通过判断计数器的数值来控制循环体是否继续进展。
(2)采用“哨兵法〞:
这种方法在“事先不知道要循环多少次〞的情况下特别有效。
通过“对数据容的判断〞来控制循环是否继续。
哨兵法的实现:
在被处理数据序列的尾部安放一个“哨兵〞——即事先知道的数据。
所以,每次循环体执行时,都会通过判断哨兵是否出现来控制循环体是否继续进展,一旦发现“哨兵〞,那么完毕循环体的执行。
案例3接着案例2的问题,如果要在一个程序中屡次进展半径radius的输入并计算圆的面积Area,该如何实现?
题目要求屡次进展半径radius的输入并计算圆的面积Area,因此重复执行某段程序,直到某种条件满足时才完毕该段程序执行,显然,使用循环构造较为适宜。
考虑到有两种循环的情况:
第一,事先知道有多少组数据要进展测试;第二,事先不知道有多少组数据要测试。
因此,通过两种方式来控制循环的条件,从而实现程序求解问题。
(1)事先知道有多少组数据要进展测试。
可以通过输入要测试数据的组数来控制循环,在Raptor中编制相应的流程图,如图6所示。
图6计算圆的面积〔计数法〕
按照提示信息输入待测试的数据组数为2,接着输入两个半径radius的值为10和100,运行结果如图7:
图7
(2)事先不知道有多少组数据要测试,这种情况下,可以利用“哨兵法〞,即在要测试的最后一组数据后边做上标记,像“哨兵〞一样来提示循环的完毕。
这里用0来作为“哨兵〞,即当输入的半径radius等于0时,循环完毕。
在Raptor中编制相应的流程图,如图8所示
按照提示信息依次输入2、3/10/0,得到的运行结果如下:
图8计算圆的面积
3.子图和子程序
Raptor模式有初级、中级和面向对象3种形式可供选择。
其中,初级模式和中级模式没有太大的查边,唯一不同的地方就是初级模式中的调用语句可以调用语句进展调用,子图调用时无须提供参数,因为所有的Raptor子图共享所有的变量。
而子程序相当于Raptor的置过程,必须提供完成任务所需要的数据,也就是所谓的参数。
Raptor的子图和子程序之间的最大差异在于不能给子图传递参数,子图也不会返回任何值。
所有Raptor子图共享所有的变量,而子程序的所有变量“自成系统〞。
案例4
输入两个数a和b,交换之后输出。
在Raptor中编制相应的流程图,main子图的实现如图9所示,swap子图的实现如图10所示。
图10判断最大数的main子图
图11判断最大数的main子图
图12判断最大数的Maxximum_value子程序
其运行结果如下:
子程序如同一个加工厂,输入原材料,然后按照设计要求,输出所需要的产品。
子程序〔Maxximum_value〕的原材料就是一些变量,这里是指in:
m和in:
n,这是子程序待处理的数据,子程序〔Maxximum_value〕的产品也是变量,这里是指out:
max_number,用于向调用它的程序返回处理结果。
其中in和out代表子程序的输入和输出参数。
子程序定义界面上的接口参数称为“形式参数〞,如图13.从中可以看出,Raptor中的子程序参数不得超过6个,任何参数只要是有in〔输入参数〕的属性,那么在程序调用该子程序之前,必须准备好这个参数,即已经初始化且有数值。
子程序运行中的所有变量都“自成系统〞,与调用它的程序没有关系。
调用它的程序只是通过调用参数与它交接“原材料〞〔待处理的数据〕和“所需产品〞〔已处理的数据〕。
子程序的所有变量在子程序运行过程中存在,运行完毕后,除了传回调用程序的参数,所有变量立即释放或删除。
图13Maxximum_value子程序定义界面
练习题
1.输入三角形的三条边长,求三角形的面积。
输入a=3,b=2,c=1,运算结果如下
输入a=20,b=21,c=19,运算结果如下
2.求方程ax²+bx+c=0在实数域上的根。
a、b、c由键盘输入。
输入a=0时,运算结果如图:
输入a=1,b=0,c=1时,运算结果如图:
输入a=1,b=0,c=-1时,运算结果如图:
输入a=1,b=-2,c=1时,运算结果如图:
3.设计程序,判断输入的数是否为素数,是那么输出“Yes〞,否那么输出“No〞
如图
输入n=177,运行结果如下:
4.写一个子图或子程序,用递归方法求Fibonacci数列的第n项,n由键盘输入。
输入n=3,运行结果如下:
四、实验结论或体会
刚开场对Raptor的算法一无所知,不过通过这次实验开场喜欢算法了。
我们平时遇到的一些难以解决的题目,都可以用算法来解决。
而且,设计算法也是一种锻炼逻辑思维的好途径,同时也能让我养成检查,寻找最正确优化方案的习惯。
在完成这次实验报告的过程中,也会遇到一些找不出原因的问题,幸亏最后都解决了。
总而言之,这次实验让我有很大的进步。
指导教师批阅意见:
成绩评定:
指导教师签字:
梁正平
2021年12月3日
备注:
注:
1、报告的工程或容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 工具 实验 报告