RAPTOR流程图编程课件_第1页
RAPTOR流程图编程课件_第2页
RAPTOR流程图编程课件_第3页
RAPTOR流程图编程课件_第4页
RAPTOR流程图编程课件_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RAPTOR程序设计基础

1RAPTOR程序设计基础

1为什么要学习程序设计?由于计算思维的核心之一是算法思维,同时算法思维也是计算机科学的精髓而算法思维的实现离不开程序设计,所以对于计算思维的学习和认识,必须从程序设计开始2为什么要学习程序设计?由于计算思维的核心之一是算法思维,同时计算思维的根本内容计算思维最根本的内容,即其本质(Essence)是抽象(Abstraction)和自动化(Automation)计算思维中的抽象完全超越物理的时空观,并完全用符号来表示抽象和自动化行为将贯彻课程的始终3计算思维的根本内容计算思维最根本的内容,即其本质(Essen什么是可视化程序设计?可视化(Visual)程序设计是一种全新的程序设计方法,一般可视化程序主要是指编译环境的可视化;程序设计人员利用开发环境本身提供各种可视化的控件、方法和属性等,像搭积木一样构造出应用程序的各种界面典型的可视化程序设计环境如VisualBasic4什么是可视化程序设计?可视化(Visual)程序设计是一种VisualBasic6.0界面5VisualBasic6.0界面5http://xqc为什么要使用RAPTOR?RAPTOR(theRapidAlgorithmicPrototypingToolforOrderedReasoning--用于有序推理的快速算法原型工具),是一种基于流程图的可视化程序设计环境,为程序和算法设计的基础课程教学提供实验环境使用RAPTOR设计的程序和算法可以直接转换成为C++、C#、Java等高级程序语言,这就为程序和算法的初学者铺就了一条平缓、自然的学习阶梯6为什么要使用RAPTOR?RAPTOR(theRapid使用RAPTOR的理由可以在最大限度地减少语法要求的情形下,帮助用户编写正确的程序指令程序就是流程图,可以逐个执行图形符号,以便帮助用户跟踪指令流执行过程容易掌握用RAPTOR可以进行算法设计和验证,从而使初学者有可能理解和真正掌握“计算思维”7使用RAPTOR的理由可以在最大限度地减少语法要求的情形下,RAPTOR基本程序环境基本界面F5:运行流程图F10:单步执行显示执行结果。8RAPTOR基本程序环境基本界面8四种基本符号/语句目的符号名称说明输入输入语句输入数据给一个变量处理赋值语句使用某些运算来更改变量的值处理过程调用执行一组在命名过程中定义的指令输出输出语句显示变量的值。9四种基本符号/语句目的符号名称说明输入输入语句输入数据给一个变量变量(variable)表示的是计算机内存中的位置,用于保存数据值在任何时候,一个变量只能容纳一个值变量的初始值决定了变量的数据类型,在流程执行过程中变量的数据类型不能更改,但变量的值可以改变10变量变量(variable)表示的是计算机内存中的位置,用于变量赋值过程说明X的值程序当程序开始时,没有任何变量存在未定义第一个赋值语句,X←32,分配数据值32给变量X32下一个赋值语句,X←X+1,检索到当前X的值为32,给它加1,并把结果33给变量X33下一个赋值语句,X←X*2,检索到X当前值为33,乘以2,并把结果66给变量X6611变量赋值过程说明X的值程序当程序开始时,没有任何变量存在未定RAPTOR变量值的设置基本原则:任何变量在被引用前必须存在并被赋初值变量的类型由最初的赋值语句所给的数据决定设置方法通过输入语句赋值通过赋值语句的中的公式运算后赋值通过调用过程的返回值赋值12RAPTOR变量值的设置基本原则:12RAPTOR数据类型数值(Number):

如12,567,-4,3.1415,0.000371字符串(String):如“Hello,howareyou?”,“JamesBond”,“Thevalueofxis:

”字符(Character):如’A’,’8’,’!’。13RAPTOR数据类型数值(Number): 13变量报错的原因未定义引用14变量报错的原因未定义引用14变量报错的原因拼写错15变量报错的原因拼写错15不同类型的数据不可比较16字符串:用双引号括起来字符:用单引号括起来不同类型的数据不可比较16字符串:用双引号括起来RAPTOR常量RAPTOR定义了四个常量(Constant)pi(圆周率)定义为3.1416e(自然对数的底)定义为2.7183true/yes(布尔值:

真)定义为1false/no(布尔值:假)定义为017RAPTOR常量RAPTOR定义了四个常量(Constant输入(Input)语句输入语句的编辑(Edit)对话框在提示文本框中说明所需的输入在变量文本框中输入变量名18输入(Input)语句输入语句的编辑(Edit)对话框18输入(Input)语句输入语句在流程图中显示的状态运行时对话框19输入(Input)语句输入语句在流程图中显示的状态19赋值语句(编辑)Set文本框中输入需要赋值的变量名。To文本框中输入需要执行的表达式,表达式可以是一个值或一个公式。20赋值语句(编辑)Set文本框中输入需要赋值的变量名。20赋值语句(显示)流程图中的赋值语句21赋值语句(显示)流程图中的赋值语句21表达式可以是单个值可以是常量或变量和运算符的组合。例如:

(1)x←(3+9)/3 (2)x←3+(9/3)22表达式可以是单个值22表达式计算的“优先顺序”1. 计算所有函数的值,2. 计算括号中表达式,3. 计算乘幂(^,**),4. 从左到右,计算乘法和除法,最后5. 从左到右,计算加法和减法。23表达式计算的“优先顺序”1. 计算所有函数的值,23运算符逻辑运算是一组值(常量或变量)和关系运算符的结合,期望得到YES/NO这样的结果关系运算符(=、/=、<、<=、>、>=),必须针对两个相同的数据类型值比较例如,3=4或"Wayne"="Sam"是有效的比较,但3="Mike"则是无效的24运算符逻辑运算是一组值(常量或变量)和关系运算符的结合,期关系运算运算说明例=等于3=4结果为

No(false)!=/=不等于3!=4结果为Yes(true)3/=4结果为

Yes(true)<小于3<4结果为Yes(true)<=小于或等于3<=4结果为Yes(true)>大于3>4结果为No(false)>=大于或等于3>=4结果为No(false)25关系运算运算说明例=等于3=4结果为No(false内置运算符和函数数学运算:

+,-,*,/,^,**(加、减、乘、除、乘方)rem,mod,sqrt(求余,开平方)log,abs,(对数,绝对值)ceiling,floor

(向下取整,向上取整)26内置运算符和函数数学运算:26内置运算符和函数三角函数:sin,cos,tan;正弦,余弦,正切

cot,arcsin,arccos;余切,反正弦,反余弦

arctan,arccot;反正切,反余切

27内置运算符和函数三角函数:27内置运算符和函数random,伪随机数

Length_of

求数组元素个数,求字符串长度28内置运算符和函数random,伪随机数28过程调用语句(编辑)编辑对话框注意已有过程提示29过程调用语句(编辑)编辑对话框29过程调用语句(显示)过程调用分内置过程,子图,子程序;内置过程、子图、子程序的调用使用同样的语句,但子图没有参数,内置过程或子程序需要参数30过程调用语句(显示)过程调用分内置过程,子图,子程序;30输出语句执行输出语句将在主控(MasterConsole)窗口显示输出结果必须用双引号,以便与变量区分是否换行输出结果选中表示换行31输出语句执行输出语句将在主控(MasterConsole输出语句的设计技巧32输出语句的设计技巧32注释注释本身对计算机毫无意义,并不会被执行。注释的目的是增强程序的可读性,帮助他人理解你所设计的程序或算法33注释注释本身对计算机毫无意义,并不会被执行。注释的目的是增一个带注释的算法注释的四种类型:1.编程标题2.分节描述3.逻辑描述4.变量说明34一个带注释的算法注释的四种类型:34控制结构程序员合理利用控制结构和控制语句,可以确定程序语句的执行顺序这些控制结构可以做三件事:1.按照顺序执行某些语句;2.根据条件判断结果,跳过某些语句而执行其他语句;3.条件为真时重复执行一条或多条语句主要介绍选择(Selection)和循环(Loop)命令35控制结构程序员合理利用控制结构和控制语句,可以确定程序语句的顺序控制顺序逻辑是最简单的程序构造本质上,就是把每个语句按顺序排列,程序执行时,从开始(Start)语句顺序执行到结束(End)语句36顺序控制顺序逻辑是最简单的程序构造36顺序控制程序员为解决问题,必须首先确定问题的解决方案,该方案需要哪些语句,以及语句的执行顺序因此,编写正确的语句以及确定语句在程序的何处放置是同样重要的例如:当要获取和处理来自用户的数据时,必须先取得数据,然后才可以使用如果交换一下这些语句的顺序,则程序根本无法执行顺序控制在英语环境中被称为“and-then”结构37顺序控制程序员为解决问题,必须首先确定问题的解决方案,该方案选择控制可能性

1可能性2Statement1StatementStatement3Statement1Statement2bStatement3当程序执行时,如果决策的结果是“Yes”(True),则执行左侧分支如果结果是“No”(False),则执行右侧分支38选择控制可能性1可能性2Statement1Statem选择控制注意选择控制语句的两个路径之一可能是空的,或包含多条语句选择控制结构在英语环境中被称为“if-then”结构39选择控制注意选择控制语句的两个路径之一可能是空的,或包含多条级联选择控制40级联选择控制40循环控制循环(loop)控制语句允许重复执行一个或多个语句,直到某些条件变为真值(True)菱形符号中的表达式结果为“No”,则执行“No”的分支,这将导致循环语句和重复要重复执行的语句可以放在菱形符号上方或下方循环控制结构在英语环境中被称为“While-do”结构41循环控制循环(loop)控制语句允许重复执行一个或多个语句,循环测试在循环语句中,究竟是先计算后测试,还是先测试后计算,或者在计算的过程中间进行测试?前序测试(Pre-test)后续测试(Post-test)中序测试(Intermediate-test)42循环测试在循环语句中,究竟是先计算后测试,还是先测试后计算,删除图的Statement2Statement1为前置条件Statement3是主循环体如果进入了Statement3,测试条件也必须由这一部分进行修改;前序测试43删除图的Statement2前序测试43中序测试删除图中的Statement1Statement2是主循环体之一而测试条件也是在Statement2中产生Statement3是主循环体之二44中序测试删除图中的Statement144后续测试删除图中的Statement1和Statement3Statement2是主循环体而测试条件也是在Statement2中产生;45后续测试删除图中的Statement1和Statement输入验证循环46输入验证循环46输入验证循环之二47(N<=10)输入验证循环之二47(N<=10)计数循环循环按特定的次数,来执行某个代码块一个著名的缩写I.T.E.M(Initialize,Test,Execute,Modify,初始化,测试,执行,和修改)表示可以用来检查一个循环计数器变量使用是否正确的基本过程48计数循环循环按特定的次数,来执行某个代码块48典型的循环错误49典型的循环错误49输入控制循环50输入控制循环50输入控制循环之二51输入控制循环之二51RAPTOR数组变量数组是有序数据的集合。一般分为一维数组和二维数组数组最大的好处在于用一个统一的数组名和下标(index)来唯一地确定某个数组变量中的元素52RAPTOR数组变量数组是有序数据的集合。52RAPTOR一维数组的元素表示形式一形式二53RAPTOR一维数组的元素表示形式一53数组的创建数组变量必须在使用之前创建所创建的数组大小由赋值语句中给定的最大元素下标来决定,可以在算法运行过程中动态增加数组元素,扩展其大小。第一次给values[]数组赋值:values[7]3结果如下图:54数组的创建数组变量必须在使用之前创建54一维数组的扩展第二次再给该数组赋值:values[9]6则将数组进行了扩展,得到的结果如下图:但不能将一个一维数组扩展为一个二维数组。55一维数组的扩展第二次再给该数组赋值:55二维数组的创建创建二维数组时,数组的两个维度的大小由最大的下标确定例如:numbers[3,4]13得到:56二维数组的创建创建二维数组时,数组的两个维度的大小由最大的下RAPTOR数组特性RAPTOR并不强制每个数组的元素必须具备相同的数据类型例如程序员可以将二维数组,设计成为类似像数据库那样的一种记录式结构57RAPTOR数组特性RAPTOR并不强制每个数组的元素必须具数组变量的应用数组变量的好处来自数组符号允许RAPTOR在方括号内执行数学计算58数组变量的应用数组变量的好处来自数组符号允许RAPTOR在方什么是平行数组?计算某个班级学员的一个学期4门课程的平均成绩。应该如何保存参与计算的课程成绩可以分别使用:computer[],math[],physics[],history[],而每个同学的编号,可以用做数组的下标59什么是平行数组?计算某个班级学员的一个学期4门课程的平均成绩数组应用注意事项在RAPTOR中,一旦某个变量名被用做数组变量,就不允许存在一个同名的非数组变量RAPTOR数组可以在算法运行过程中动态增加数组元素;但不可以将一个一维数组在算法运行中扩展成二维数组60数组应用注意事项在RAPTOR中,一旦某个变量名被用做数组变RAPTOR子程序与子图定义与调用在计算机科学中,将实际问题抽象化是解决问题的关键要素之一一项研究成果表明,人类的大脑平均只能同时积极关注约4件事情,大大少于以往研究所得的7件事情的结论为了解决复杂的问题,必须能够研究问题的“主要方面(bigissues)”61RAPTOR子程序与子图定义与调用在计算机科学中,将实际问题计算一个英文文章中,使用了“a”开头的单词的次数一个英文单词的以特定字母开头,那么它的前面一定有空格所以,判断一个空格后面是否跟了一个字母“a”,就可以找出一段英文中所有以a开头单词的使用次数62计算一个英文文章中,使用了“a”开头的单词的次数一个英文单词6363统计“a~z”字母开头单词数解这个问题程序似乎只要把上个例子部分程序再复制、粘贴25次,做一点修改就可以解决问题但是,为了使得设计的程序更加简练、具有更长久的生命力和更广泛的用途,可以将上一例中的程序改造成一个子程序,或者是一种抽象:其功能就是“统计一个特定字母开头的单词,在一段文字中出现了多少次”64统计“a~z”字母开头单词数解这个问题程序似乎只要把上个创建RAPTOR子程序子程序如同一个加工厂,输入原材料,然后按设计要求处理原材料,输出产成品子程序的原材料就是一些变量,例如(in:char),为统计子程序输入测试样本子程序的产成品也是变量,例如(out:count),向调用它的程序返回统计结果其中,in,out表示子程序的输入输出参数65创建RAPTOR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论