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