资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,RAPTOR,程序设计基础,可视化计算,1,学习目标,为什么学习,RAPTOR,系统?,RAPTOR,程序设计环境有那些基本概念,?,如何使用程序设计进行计算问题的求解?,2,为什么要,学习,RAPTOR,?,RAPTOR,(,the Rapid Algorithmic Prototyping Tool for Ordered Reasoning,-,用于有序推理的快速算法原型工具),是一种,基于流程图仿真的,可视化的程序设计环境,为程序和算法设计的基础课程的教学提供实验环境,使用,RAPTOR,设计的程序和算法可以直接转换成为,C+,、,C#,、,Java,等高级程序语言,这就为程序和算法的初学者铺就了一条平缓、自然的学习阶梯,3,使用,RAPTOR,的理由,可以在最大限度地减少语法要求的情形下,帮助用户编写正确的程序指令,程序,就是流程图,,可以,逐个,执行图形符号,以便帮助用户跟踪指令流执行过程,容易掌握,用,RAPTOR,可以,进行算法设计和验证,,从而使初学者有可能理解和真正掌握“计算思维”,4,RAPTOR,基本程序环境,基本界面,5,基本符号,变量显示区,“,Main,”的初始状态,调速滑块,程序输出区域,四种基本符号,/,语句,目的,符号,名称,说明,输入,输入语句,输入数据给,一个,变量,处理,赋值语句,使用各类运算来更改的,变量,的,值,处理,过程调用,执行一组在命名过程中定义的,指令,输出,输出语句,显示,变量,的,值。,6,变量,变量(,variable,)表示的是计算机内存中的位置,用于保存数据值,在任何时候,一个变量只能容纳一个值,在程序执行过程中,变量的值可以改变,命名:以字母开头,由字母、数字、下划线组成,7,变量赋值过程,说明,X,的值,程序,当程序开始时,没有任何变量,存在,未定义,第一个赋值语句,,X,32,,分配数据值,32,给变量,X,32,下一个赋值语句,,X,X+1,,检索到当前,X,的值为,32,,给它加,1,,并把结果,33,给变量,X,33,下一个赋值语句,,X,X*2,,检索到,X,当前值为,33,,乘以,2,,并把结果,66,给变量,X,66,8,RAPTOR,变量值的设置,基本原则:,任何变量在被引用前,必须,存在并被赋值,变量的类型,由最初的赋值语句所给的数据决定,设置方法,通过输入语句赋值,通过赋值语句的中的公式运算后赋值,通过调用过程的返回值赋值,9,RAPTOR,数据类型,数值(,Number,):,如,12,,,567,,,-4,,,3.1415,,,0.000371,字符串(,String,):,如“,Hello,,,how are you?,”,“,James Bond,”,“,The value of x is,:,”,注意:本系统不能使用汉字字符!,10,变量报错的原因,未定义引用,11,变量报错的原因,拼写错,12,不同类型的数据不可比较,13,RAPTOR,常量,RAPTOR,定义了四个常量(,Constant,),下列四个符号取值为固定值,不可更改,只能引用,pi,(圆周率)定义为,3.1416,e,(自然对数的底)定义为,2.7183,true/yes(,布尔值,:,真,),定义为,1,false/no(,布尔值:假,),定义为,0,14,给程序增加语句符号,在“,start,”和“,End,”之间的箭头上点鼠标右键,在快捷菜单可以添加语句符号。,15,输入,(Input),语句,输入语句的编辑(,Edit,)对话框,提示部分,变量部分,16,输入,(Input),语句,输入语句在流程图中显示的状态,运行时对话框,17,输出语句,执行输出语句将在主控(,Master Console,)窗口显示输出结果,输出的结果可以使用或不使用换行操作,其中,The Number Is:,是输出语句的提示部分,为文本型数据两端加双引号,,+,表示连接后面的内容,,n,两端无双引号表示它是一个变量。,End current line,选中表示下一个输出语句将另起一行。注意:,提示部分文字只能用英文,不支持汉字,。,18,输出语句,运行程序,点击工具栏的,在输入框输入数字:,5,输出结果出现在主控窗口。,19,赋值语句(编辑),在输入语句和输出语句之间插入赋值符号,双击,Set,部分为接受赋值的变量或,To,部分为表达式,20,赋值语句(显示),流程图中的赋值语句,21,表达式,可以是任何计算单个值的简单或复杂公式,是值(无论是常量或变量)和运算符的组合。,例如,考虑下面的两个例子:(,1,),x (3+9)/3,(,2,),x 3+(9/3),22,内置运算符和函数,数学运算,:,+,,,-,,*,,/,,,,*,(加、减、乘、除、乘方),rem,,,mod,(求余),,sqrt,(开平方),log,,,abs,,,(对数,绝对值),ceiling,,,floor,(向下取整,向上取整),23,内置运算符和函数,三角函数,:,sin,,,cos,,,tan,;,正弦,,,余弦,,,正切,cot,,,arcsin,,,ar,c,cos,;,余切,,,反正弦,,,反余弦,arctan,,,arccot,;,反正切,,,反余切,24,内置运算符和函数,random,,,伪随机数,Length_of,求数组元素个数,求字符串长度,25,表达式计算的“优先顺序”,1.,计算所有函数的值;,2.,计算括号中表达式;,3.,计算乘幂,(,,*,),;,4.,从左到右,计算乘法和除法,最后从左到右,计算加法和减法。,26,注释,注释本身对计算机毫无意义,并不会被执行。注释的目的是增强程序的可读性,帮助他人理解你所设计的程序或算法,27,一个带注释的算法,注释的四种类型:,1.,编程标题,2.,分节描述,3.,逻辑描述,4.,变量说明,28,选择控制,可能性,1,可能性,2,Statement 1,Statement,2a,Statement 3,Statement 1,Statement 2b,Statement 3,29,当程序执行时,如果决策的结果是,“,Yes,”,(,True,),则执行左侧分支,如果结果是,“,No,”,(,False,),则执行右侧分支,选择控制,注意选择控制语句的两个路径之一可能是空的,或包含多条语句,选择控制结构在英语环境中被称为“,if-then,”结构,30,决策表达式,决策表达式(,Decision Expressions,)是一组值(常量或变量)和,关系,运算符,的结合,期望得到,YES/NO,这样的结果,关系运算符(,=,、,/=,、,、,、,=,),必须针对两个,相同的数据类型值,比较,例如,,3=4,或,Wayne=Sam,是有效的比较,但,3=Mike,则是无效的,31,决策表达式中的运算符说明,运算,说明,例,=,等于,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),or,或,(3 20),结果为,Yes(true),not,非,not(3 4),结果为,No(false),32,级联,(,嵌套,),选择控制,33,在选择结构里面插入选择结构,循环控制,循环(,loop,)控制语句允许重复执行一个或多个语句,直到某些条件变为真值(,True,),菱形符号中的表达式结果为“,No,”,则执行“,No,”的分支,这将导致循环语句和重复,要重复执行的语句可以放在菱形符号上方或下方,循环控制结构在英语环境中被称为“,While-do,”结构,34,循环测试,在循环语句中,究竟是先计算后测试,还是先测试后计算,或者在计算的过程中间进行测试,?,前序测试(,Pre-test,),后续测试(,Post-test,),中序测试(,Intermediate-test,),35,删除图的,Statement 2,Statement1,为前置条件,Statement 3,是主循环体,如果进入了,Statement3,,测试条件也必须由这一部分进行修改;,前序测试,36,中序测试,Statement2,是主循环体之一,而测试条件也是在,Statement 2,中产生,Statement3,是主循环体之二,37,后续测试,删除和,Statement3,Statement2,是主循环体,而测试条件也是在,Statement 2,中产生;,38,输入验证循环,之一,39,中序测试,输入验证循环,之二,40,计数循环,循环按特定的次数,来执行某个代码块,一个著名的缩写,I.T.E.M(Initialize,,,Test,,,Execute,,,Modify,,初始化,测试,执行,和修改,),表示可以用来检查一个循环计数器变量使用是否正确的基本过程,41,典型的循环错误,42,计数控制,循环,之一,43,前序测试,计数控制,循环,之二,44,后序测试,RAPTOR,子程序与子图定义与调用,在计算机科学中,将实际问题抽象化是解决问题的关键要素之一,一项研究成果表明,人类的大脑平均只能同时积极关注约,4,件事情,大大少于以往研究所得的,7,件事情的结论,为了解决复杂的问题,必须能够研究问题的“主要方面(,big issues,)”,45,组合数求解,很容易看到,求组合数需要多次求,阶乘,,这会造成许多重复的代码,现在将求阶乘代码独立出主程序,定义为一个子程序,在主程序运行时,需要计算某数的阶乘时就调用子程序,从而简化整个软件的组成,使结构更清晰。,46,47,创建,RAPTOR,子程序,子程序如同一个加工厂,,输入原材料,,然后按设计要求,处理原材料,,,输出产成品,子程序的原材料就是一些变量,例如(,in:char,),为统计子程序输入测试样本,子程序的产成品也是变量,例如(,out:count,),向调用它的程序返回统计结果,其中,,in,out,表示子程序的输入输出参数,48,子程序定义,子程序定义界面上的接口参数称为“,形式参数,”,RAPTOR,的子程序参数不得超过,6,个,子程序参数可以是单个变量,,也可以,是数组,49,一个设计完成的子程序,50,过程调用语句,(,编辑,),编辑对话框,注意已有过程提示,51,过程调用语句(显示),注意,内置过程,子图,子程序的调用使用同样的语句,但子图没有参数;内置过程或子程序需要参数,52,子程序的调用,如要调用子程序,可以通过调用语句并给子程序的接口赋予“,实际参数,”进行,实际参数的名与形式参数的,可以不同,实际参数的数据类型则,必须,与形式参数的,相同,53,54,实参,形参,End of ch1-1,55,
展开阅读全文