
RAPTOR与流程图.pptx
46页RAPTORRAPTOR与流程图与流程图补充讲义基本界面RAPTORRAPTOR基本程序环境基本程序环境目的符号名称说明输入输入语句输入数据给一个变量处理赋值语句使用各类运算来更改的变量的值处理过程调用执行一组在命名过程中定义的指令输出输出语句显示变量的值四种基本符号四种基本符号/ /语句语句变量(variable)表示的是计算机内存中的位置,用于保存数据值在任何时候,一个变量只能容纳一个值然而,在程序执行过程中,变量的值可以改变变量变量说明X的值程序当程序开始时,没有任何变量存在未定义第一个赋值语句,X32,分配数据值32给变量X32下一个赋值语句,XX +1,检索到当前X的值为32,给它加1,并把结果33给变量X33下一个赋值语句,XX * 2,检索到X当前值为33,乘以2,并把结果66给变量X66变量赋值过程变量赋值过程基本原则: 任何变量在被引用前必须存在并被赋值 变量的类型由最初的赋值语句所给的数据决定设置方法 通过输入语句赋值 通过赋值语句的中的公式运算后赋值 通过调用过程的返回值赋值RAPTORRAPTOR变量值的设置变量值的设置数值(Number): 如12,567,-4,3.1415,0.000371字符串 (String): 如“Hello, how are you?”, “James Bond”, “The value of x is: ”字符(Character): 如A,8,!。
RAPTORRAPTOR数据类型数据类型未定义引用(a)拼写错(b)变量报错的原因变量报错的原因不同类型的数据不可比较不同类型的数据不可比较pi(圆周率) 定义为 3.1416e (自然对数的底)定义为 2.7183true /yes(布尔值: 真) 定义为 1false/no(布尔值:假) 定义为 0RAPTORRAPTOR常量常量输入语句的编辑(Edit)对话框 提示部分 变量部分输入输入(Input)(Input)语句语句输入语句编辑完成后在流程图中显示的状态运行时对话框输入输入(Input)(Input)语句语句RAPTORRAPTOR控制结构控制结构程序员合理利用控制结构和控制语句,可以确定程序语句的执行顺序这些控制结构可以做三件事:1. 按照顺序执行某些语句;2. 根据条件的判断结果,跳过某些语句而执行其他的语句;3. 条件为真时重复执行一条或多条语句本节主要介绍选择(Selection)和循环(Loop)命令顺序控制顺序控制顺序逻辑是最简单的程序构造本质上,就是把每个语句按顺序排列,程序执行时,从开始(Start)语句顺序执行到结束(End)语句顺序控制顺序控制程序员为解决问题,必须首先确定问题的解决方案,该方案需要哪些语句,以及语句的执行顺序因此,编写正确的语句以及确定语句在程序的何处放置是同样重要的例如,当要获取和处理来自用户的数据时,必须先取得数据,然后才可以使用如果交换一下这些语句的顺序,则程序根本无法执行顺序控制在英语环境中被称为“and-then”结构选择控制选择控制可能性 1可能性2Statement 1Statement Statement 3Statement 1Statement 2bStatement 3当程序执行时,如果决策的结果是“Yes”(True),则执行左侧分支如果结果是“No”(False),则执行右侧分支选择控制选择控制注意选择控制语句的两个路径之一可能是空的,或包含多条语句如果两个路径同时为空或包含完全有相同的语句,则是不合适的。
因为无论选择决策的结果如何,这对程序的运行过程都没有影响选择控制结构在英语环境中被称为“if-then”结构决策表达式决策表达式决策表达式(Decision Expressions)是一组值(常量或变量)和关系运算符的结合, 期望得到YES/NO这样的结果关系运算符(=、 / =、 、 =),必须针对两个相同的数据类型值(无论是数值、字符串、字符或布尔值)比较 例如,3 = 4或Wayne = Sam是有效的比较,但3 = Mike则是无效的关系运算关系运算运算说明例=等于3 = 4 结果为 No(false)!=/=不等于3 != 4结果为Yes(true)3 /= 4结果为 Yes(true)小于3 4结果为Yes(true)=小于或等于3 大于3 4结果为No(false)=大于或等于3 = 4结果为No(false)and与(3 4) and (10 20)结果为Yes(true)级联选择控制级联选择控制在数字评分的基础上换算字母(A,B,C,D或F)等级循环控制循环控制循环(loop)控制语句允许重复执行一个或多个语句,直到某些条件变为真值(True)一个椭圆和一个菱形符号组合在一起被用来表示一个循环过程菱形符号中的表达式结果为“No”,则执行“No”的分支,这将导致循环语句和重复要重复执行的语句可以放在菱形符号上方或下方循环控制结构在英语环境中被称为“While-do”结构循环测试循环测试在循环语句中,究竟是先计算后测试,还是先测试后计算,或者在计算的过程中间进行测试?前序测试(Pre-test)后续测试(Post-test)中序测试(Intermediate-test)前序测试:删除图的Statement 2。
Statement1为前置条件,Statement 3是主循环体,如果进入了Statement3,测试条件也必须由这一部分进行修改;后续测试:删除图中的Statement 1和Statement3Statement2是主循环体,而测试条件也是在Statement 2中产生;中序测试:删除图中的Statement 1Statement2是主循环体之一,而测试条件也是在Statement 2中产生,Statement3是主循环体之二输入验证循环输入验证循环两个输入验证循环案例计数循环计数循环循环按特定的次数,来执行某个代码块一个著名的缩写 I.T.E.M (Initialize, Test, Execute, Modify,初始化,测试,执行,和修改)表示可以用来检查一个循环计数器变量使用是否正确的基本过程典型的循环错误典型的循环错误输入输入控制控制循环循环两种形式RAPTORRAPTOR数组变量数组变量数组是有序数据的集合一般数组中的每一个元素都属于同一个数据类型(数值、字符、字符串)数组最大的好处在于用一个统一的数组名和下标(index)来唯一地确定某个数组变量中的元素而且下标值可以参与计算,这为动态进行数组元素的遍历访问创造了条件 RAPTOR RAPTOR一维数组的元素表示一维数组的元素表示形式一形式二一维数组的创建一维数组的创建数组变量必须在使用之前创建所创建的数组大小由赋值语句中给定的最大元素下标来决定第一次给values数组赋值: values7 - 3 结果如下图:一维数组的一维数组的扩展扩展第二次再给该数组赋值: values9 - 6 则将数组进行了扩展,得到的结果如下图:二维数组的创建二维数组的创建创建二维数组时,数组的两个维度的大小由最大的下标确定 例如: numbers3,4 - 13 得到:RAPTORRAPTOR数组数组特性特性RAPTOR并不强制每个数组的元素必须具备相同的数据类型例如程序员可以将二维数组,设计成为类似像数据库那样的一种记录式结构数组变量的应用数组变量的应用数组变量的好处来自数组符号允许RAPTOR在方括号内执行数学计算什么是平行数组什么是平行数组?计算某个班级学员的一个学期4门课程的平均成绩。
应该如何保存参与计算的课程成绩,当然采用数组,可以分别使用:computer,math,physica,history,而每个同学的编号,可以用做数组的下标数组应用注意事项数组应用注意事项在RAPTOR中,一旦某个变量名被用做数组变量,就不允许存在一个同名的非数组变量RAPTOR数组可以在算法运行过程中动态增加数组元素;但不可以将一个一维数组在算法运行中扩展成二维数组RAPTORRAPTOR子程序与子图定义与调用子程序与子图定义与调用在计算机科学中,将实际问题抽象化是解决问题的关键要素之一一项研究成果表明,人类的大脑平均只能同时积极关注约4件事情,大大少于以往研究所得的7件事情的结论为了解决复杂的问题,必须能够研究问题的“主要方面(big issues)”计算一个英文文章中,使用了计算一个英文文章中,使用了“a a”开开头的单词的次数头的单词的次数一个英文单词的以特定字母开头,那么它的前面一定有空格,所以,判断一个空格后面是否跟了一个字母“a”,就可以找出一段英文中所有以a开头单词的使用次数统计统计 “ “azaz” ” 字母开头单词数字母开头单词数解这个问题程序似乎只要把上个例子部分程序再复制、粘贴25次,做一点修改就可以解决问题但是,为了使得设计的程序更加简练、具有更长久的生命力和更广泛的用途,可以将上一个例子中的程序改造成一个子程序,或者是一种抽象: 其功能就是“统计一个特定字母开头的单词,在一段文字中出现了多少次”创建创建RAPTORRAPTOR子程序子程序子程序如同一个加工厂,输入原材料,然后按照子程序的设计处理原材料,输出产成品子程序的原材料就是一些变量,例如(in:char),为统计子程序输入测试样本子程序的产成品也是变量,例如(out: count),向调用它的程序返回统计结果其中,in, out表示子程序的输入输出参数子程序定义子程序定义子程序定义界面上的接口参数称为“形式参数”RAPTOR的子程序参数不得超过6个子程序参数可以是单个变量,也可以是数组一个设计完成的子程序一个设计完成的子程序子程序的调用子程序的调用如要调用子程序,可以通过调用语句并给子程序的接口赋予“实际参数”进行实际参数的名与形式参数的可以不同实际参数的数据类型则必须与形式参数的相同endend。












