




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章RAPTOR计算环境PARTB,基于RAPTOR的可视化计算案例教程,控制结构,程序员合理利用控制结构和控制语句,可以确定程序语句的执行顺序这些控制结构可以做三件事:1.按照顺序执行某些语句;2.根据条件判断结果,跳过某些语句而执行其他语句;3.条件为真时重复执行一条或多条语句主要介绍选择(Selection)和循环(Loop)命令,顺序控制,顺序逻辑是最简单的程序构造本质上,就是把每个语句按顺序排列,程序执行时,从开始(Start)语句顺序执行到结束(End)语句,顺序控制,程序员为解决问题,必须首先确定问题的解决方案,该方案需要哪些语句,以及语句的执行顺序因此,编写正确的语句以及确定语句在程序的何处放置是同样重要的例如:当要获取和处理来自用户的数据时,必须先取得数据,然后才可以使用如果交换一下这些语句的顺序,则程序根本无法执行顺序控制在英语环境中被称为“and-then”结构,选择控制,当程序执行时,如果决策的结果是“Yes”(True),则执行左侧分支如果结果是“No”(False),则执行右侧分支,选择控制,注意选择控制语句的两个路径之一可能是空的,或包含多条语句选择控制结构在英语环境中被称为“if-then”结构,决策表达式,决策表达式(DecisionExpressions)是一组值(常量或变量)和关系运算符的结合,期望得到YES/NO这样的结果关系运算符(=、/=、=),必须针对两个相同的数据类型值比较例如,3=4或Wayne=Sam是有效的比较,但3=Mike则是无效的,关系运算,级联选择控制,循环控制,循环(loop)控制语句允许重复执行一个或多个语句,直到某些条件变为真值(True)菱形符号中的表达式结果为“No”,则执行“No”的分支,这将导致循环语句和重复要重复执行的语句可以放在菱形符号上方或下方循环控制结构在英语环境中被称为“While-do”结构,循环测试,在循环语句中,究竟是先计算后测试,还是先测试后计算,或者在计算的过程中间进行测试?前序测试(Pre-test)后续测试(Post-test)中序测试(Intermediate-test),删除图的Statement2Statement1为前置条件Statement3是主循环体如果进入了Statement3,测试条件也必须由这一部分进行修改;,前序测试,中序测试,删除图中的Statement1Statement2是主循环体之一而测试条件也是在Statement2中产生Statement3是主循环体之二,后续测试,删除图中的Statement1和Statement3Statement2是主循环体而测试条件也是在Statement2中产生;,输入验证循环之一,输入验证循环之二,计数循环,循环按特定的次数,来执行某个代码块一个著名的缩写I.T.E.M(Initialize,Test,Execute,Modify,初始化,测试,执行,和修改)表示可以用来检查一个循环计数器变量使用是否正确的基本过程,典型的循环错误,输入控制循环之一,输入控制循环之二,RAPTOR数组变量,数组是有序数据的集合。一般数组中的每一个元素都属于同一个数据类型(数值、字符、字符串)。数组最大的好处在于用一个统一的数组名和下标(index)来唯一地确定某个数组变量中的元素由于下标值可以参与计算,这为动态进行数组元素的遍历访问创造了条件,RAPTOR一维数组的元素表示,形式一形式二,一维数组的创建,数组变量必须在使用之前创建所创建的数组大小由赋值语句中给定的最大元素下标来决定第一次给values数组赋值:values7-3结果如下图:,一维数组的扩展,第二次再给该数组赋值:values9-6则将数组进行了扩展,得到的结果如下图:,二维数组的创建,创建二维数组时,数组的两个维度的大小由最大的下标确定例如:numbers3,4-13得到:,RAPTOR数组特性,RAPTOR并不强制每个数组的元素必须具备相同的数据类型例如程序员可以将二维数组,设计成为类似像数据库那样的一种记录式结构,数组变量的应用,数组变量的好处来自数组符号允许RAPTOR在方括号内执行数学计算,什么是平行数组?,计算某个班级学员的一个学期4门课程的平均成绩。应该如何保存参与计算的课程成绩可以分别使用:computer,math,physica,history,而每个同学的编号,可以用做数组的下标,数组应用注意事项,在RAPTOR中,一旦某个变量名被用做数组变量,就不允许存在一个同名的非数组变量RAPTOR数组可以在算法运行过程中动态增加数组元素;但不可以将一个一维数组在算法运行中扩展成二维数组,RAPTOR模块定义与调用,在计算机科学中,将实际问题抽象化是解决问题的关键要素之一一项研究成果表明,人类的大脑平均只能同时积极关注约4件事情,大大少于以往研究所得的7件事情的结论为了解决复杂的问题,必须能够研究问题的“主要方面(bigissues)”,计算一个英文文章中,使用了“a”开头的单词的次数,一个英文单词的以特定字母开头,那么它的前面一定有空格所以,判断一个空格后面是否跟了一个字母“a”,就可以找出一段英文中所有以a开头单词的使用次数,统计“az”字母开头单词数,解这个问题程序似乎只要把上个例子部分程序再复制、粘贴25次,做一点修改就可以解决问题但是,为了使得设计的程序更加简练、具有更长久的生命力和更广泛的用途,可以将上一例中的程序改造成一个子程序,或者是一种抽象:其功能就是“统计一个特定字母开头的单词,在一段文字中出现了多少次”,创建RAPTOR子程序,子程序如同一个加工厂,输入原材料,然后按设计要求处理原材料,输出产成品子程序的原材料就是一些变量,例如(in:char),为统计子程序输入测试样本子程序的产成品也是变量,例如(out:count),向调用它的程序返回统计结果其中,in,out表示子程序的输入输出参数,子程序定义,子程序定义界面上的接口参数称为“形式参数”RAPTOR的子程序参数不得超过6个子程序参数可以是单个变量,也可以是数组,一个设计完成的子程序,子程序的调用,如要调用子程序,可以通过调用语句并给子程序的接口赋予“实际参数”进行实际参数的名与形式参数的可以不同实际参数的数据类型则必须与形式参数的相同,自顶向下vs自底向上,先规划子程序,然后逐个实现,为自顶向下的设计方法先实现各个子程序的功能,然后进行综合,为自底向上的设计方法,计算问题求解的一般过程,理解问题制定计划执行计划回顾与总结,使用计算机进行问题求解,程序开发周期分析问题设计程序以解决问题程序编码程序测试,RAPTOR算法设计常用子程序,随机数的产生和存储(可以用于后续章节将要介绍的排序和查找算法设计)从文件输入用于算法的基础数据(主要考虑后续算法中要用到图和树等抽象数据类型的描述)将计算结果输出到文件(用于计算结果的输出与保存,在某个算法需要保存中间结果是可以使用),随机数的产生与存储,用数学方法产生的随机数列是根据确定的算法推算出来的,严格说来并不是随机的,因此一般称用数学方法产生的随机数列为伪随机数列只要用数学公式产生出来的伪随机数列通过统计检验符合一些统计要求,如均匀性、抽样的随机性等,就可以把伪随机数列当作真正的随机数列使用计算机随机数一般在0,1)上均匀分布,随机数的主要用途,产生算法(如排序、查找)所必需的数据;一些随机模拟算法需要的基础数据,例如随机漫步(RandomWalk)减少不必要的人机交互,如要求用户输入10个数据,进行最大、最小值的查找等;提高算法调试的效率;提高算法数据工程化的程度。,随机数使用的注意事项,由于随机数只有0,1)之间的小数,所以需要加工以后,才能获得算法所需要的整数将rnd()乘以10的倍数、再用floor()或ceiling()来获取相应范围内的随机整数需要获取ASCII码表中的数值,可以使用模除运算,如(rnd()*1000mod128)可能得到全部的标准ASCII码值(0127),随机数,将计算结果存储到文件,将计算结果保存到文件,可以与其他应用软件交换计算结果例如,将某个计算结果保存成为电子表格可以读入的文件格式(.csv),这些计算结果就可以为电子表格和数据库管理系统读入后进行图形化或检索处理,计算结果输出到文件,输出语句可以用来将数据输出到一个文本文件。其前提条件是预先设置了“输出重定向”如果输出被重定向,这意味着已经指定一个输出文件如果输出没有被重定向,则输出数据显示在主控制台,输出重定向,在第一种类型重定向语句(打开文件):Redirect_Output(file.csv)Redirect_Output(C:datafile);第二种类型重定向语句(打开文件):Redirect_Output(TRUE)这将文件名的输入延迟到运行时间当该语句执行时,RAPTOR会打开文件选择对话框,用户可以指定输出文件名,文件输出,输出到文件中的内容与主控制台上输出的格式、内容相同在输出语句中,程序员可以控制输出的内容和换行的时机,输出重定向结束,在文件输出的完成后,需要要重新设置RAPTOR环境使后续的输出内容继续写道其输出主控制台,需要重新调用Redirect_Output函数来关闭文件Redirect_Output(False),文件输出与结果,从文件中读入基础数据,从文件中读入算法测试需要的数据,可以减少人机交互,节省调式时间在图算法设计中,由于一个有4个顶点的图,往往需要有16个数据组成的邻接矩阵来表达,如果通过键盘输入该矩阵,工作效率极低且容易出错从文件输入的数据可以任意调整以测试算法,文件输入,从.csv文件读入数据并保存到数组中的流程图,子图与子程序的相互关系,在编制RAPTOR程序时,子图和子程序是两种不同的模块形式一般情况下,main子图与所有的子图共享变量;而子程序的变量在子程序结束时,除去out的参数传给调用它的模块之外,其他变量将全部释放但是,如果子程序调用子图,它们之间的变量生命周期又该如何处理呢?,子图与子程序之间的相互调用与变量关系,子程序与变量,Main子图其实也可以看成一个子程序。子程序是相互独立的,级别平等的,所以调用关系并不会在程序上构成级别关系每个子程序有各自的变量:main函数的变量是在程序体中声明的,子程序中的函数变量在程序头和子程序体中都可以声明,子图与变量,子图其实可以看做在一头一尾有一个turn_to语句的代码块调用子图时“turnto”到子图,子图执行完成后再“return”到原来的位置如果是main子图调用了这个子图,它所使用的变量就是main子图的如果是子程序调用了它,它的变量就是这个子程序的,变量的生命周期随子程序结束而结束,小结与回顾,本章的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六一复古怀旧活动方案
- 六一孩子野餐活动方案
- 六一德育活动方案
- 六一沙滩活动方案
- 六一活动抢答活动方案
- 六一活动游乐场活动方案
- 六一活动钻山洞活动方案
- 六一节活动亲子活动方案
- 六一获奖活动方案
- 六一饭团活动方案
- 犬猫常见消化道疾病(课堂PPT)
- KV单电源环形网络继电保护设计——保护
- 疾病预防控制体系建设与发展
- 河南省开封市体育中心PPP项目案例分析
- 基于UG NX 5.0的箱体零件的数控加工
- 一种基于SG3525的半桥高频开关电源
- ASTM A276-1997不锈钢棒材和型材规格(中文版)_图文
- 上饶市光伏产业发展规划
- 不随行父母同意函(父母一方随行)
- 军队营区物业服务合同
- 制冷设备产品生产许可证实施细则
评论
0/150
提交评论