raptor程序设计案例教程-ch7

第7章 I/O程序设计
《RAPTOR程序设计案例教程》
学习目标
何为工程化计算? 计算的原始数据从何而来? 计算的结果可以在哪里输出? 伪随机数的重要性和用途。
何为工程化计算?
对于很多实用的工程软件来说,它所需要 输入的数据量比较大,有时候需要借助大 量的输入数据完成科学计算,在这种情况 下,依靠前面所说的通过用户键盘输入显 然既费时费力,又不太可能实现
由于字符串可以当成是元素全为字符的数 组,所以每次读入一行字符串后,使用循 环语句将每个字符的ascii加1即可
文档的加密与解密
Main子图
加密与解密
加密与解密 Cipher Vs. decipher
加密解密中的文件内容
图形界面中的输入输出
例7-5 设计一个视窗界面下的
加法程序,要求在图形 界面下列出算式,并使 用视窗交互功能完成加 法数据的输入
输出重定向结束
经过成功调用Redirect_Output函数,程序将 其计算结果输出到指定的文件。在文件输 出的完成后,需要重新设置RAPTOR环境, 使后续的输出内容继续写到其输出主控制 台,需要重新调用Redirect_Output函数,这 个时候用False(No)作为参数
Redirect_Output(False)
分析与思考
图形界面下如何接收来自键盘的单个输入 数字?
如何将来自键盘的多个数字输入组合成一 个完整的参与加法运算的数?
两个加数如何结束输入? 为了使程序界面更为美观,整个符号的显
示需要对该符号区域做居中处理。
模块设计
Main子图控制整个过程; Init子图负责初始化视窗和加数; Screen_input子程序负责从键盘接受
Redirect_Output("file.csv") Redirect_Output("C:\User\cxq\CS101\datafile")
在运行过程中,进行文件名输入的输出重 定向
Redirect_Output(TRUE) 此语句将文件名的输入延迟到运行时间。当 Redirect_Output函数调用执行时,RAPTOR会打开 文件名对话框,用户输入文件名并用于输出
借助来自键盘的每个数字,将其做加权处 理可以得到完整的数字
通过设置一个特殊键来实现每个加数的结 束,如回车键(借助get_key_string函数的值 判断)
图形加法器的实现要点
为了使程序界面更为美观,整个符号的显示需要 对该符号区域做居中处理
如display子程序给出五个参数:x1,y1,x2,y2,text; 其中(x1,y1)为将要处理区域左上角坐标,(x2,y2)为 右下角坐标,text为要显示的内容
输出重定向
输出语句可以用来将数据输出到一个文本文件 RAPTOR程序执行过程中遇见一个输出语句,系统
会检查输出是否已经被重定向(redirected) 如果输出被重定向,这意味着已经指定了一个
输出文件,此时输出的数据将写入到指定的文 件中
如果输出没有被重定向,则输出数据依然显示 在主控制台(masterconsole)
居中处理时分别取x1+x2和y1+y2的中点(假设 x2>x1,y2>y1)
特别注意:取中点时还要考虑内容本身的长度,内容 本身的长度可以通过get_font_width*length_of(string)获 得,高度可以通过get_font_height获得
本章小结
基本输入输出,如键盘输入和主控制台输出对于 需要大量信息录入的程序来说显然是无法满足的 ,这时就需要借助新的方式来完成输入
读入成绩表
数据文件
1000以内质数的文件输出
1000以内质数的文件输出
测素子程序
文档的加密和解密
例7-4 :要求对一 个文本文档进行加 密,或者对一个加 密过的文本文档进 行解密。加密要求 使用最简单的加密 方法:n=1的凯撒 加密。
分析与设计
凯撒密码是一种基于简单替换的密码术。 原理如下:用每个字母后移n位得到的字母 来代替原来的字母。相应的,解码的过程 就是将每个字母前移n位。这里我们取最简 单的n=1。加密时,将每个字符换成ascii码 大1的字符,如‘p’换成‘q’,‘3’换 成‘4’等等
入; Display子程序负责输入字符串的正规化显示
图形界面下的加法器
Main子图
图形界面下的加法器
Init子图
图形界面下的加法器
Screen_input子程序
完成屏幕中数据 的输入与整理
图形界面下的加法器
Display子程序
运行结果
图形加法器的实现要点
接收键盘来的单个输入数字可以借助 get_key或者get_key_string函数来实现,将 函数的值赋给某一变量即可完成该操作
基本输入输出实例
基本输入输出
RAPTOR基本输入的对话框
RAPTOR主控台输出
文件数据的输入输出
文件输出,就是将计算结果保存到文件中
利用文件可以与其他应用软件交换计算结 果
例如,将某个计算结果保存成为电子表格可以 读入的文件格式(.csv),那么,这些计算结果 就可以为电子表格和数据库管理系统读入后进 行图形化或检索处理
文件输出举例
文件输出的结果实例
文件输出的结果保 存在.csv文件中
.csv文件为逗号分 隔的文本文件,在 Windows中会自动 调用excel打开
从文件输入计算数据
从文件中读入计算需要的基本数据,可以 减少人机交互,节省调式时间
这在图和树类抽象数据结构的算法设计中 ,特别重要
例如,由于一个有4个顶点的图,往往需要有16 个数据组成的邻接矩阵来表达,如果通过键盘 输入该矩阵,工作效率极低且容易出错
同样,对于大量数据的输出也不能仅借助 主控制台。那有什么办法来高效完成这项 工作呢?
基本输入输出
例7-1: 编写一个小程序,实现百分制到四级 分制的转换,规则如下:
若分数在[90,100]之间,则输出“A”; 若分数在[80,89]之间,则输出“B”; 若分数在[60,79]之间,则输出“C”; 若分数在[0,59]之间,则输出“D”。 分数由用户通过键盘输入
合集下载

raptor程序设计案例教程-ch4

raptor程序设计案例教程-ch4
RAPTOR的设计者在权衡利弊之后,放弃了 全局变量的设置,而是使用存取子程序来 代替全局数据,用全局数据能作的一切
矩阵乘法
矩阵乘法是线性代数的基本算法之一 熟悉和编制矩阵乘法对深入了解线性代数
和计算方法有重要意义
案例问题
矩阵乘法要求第一个矩阵的列数(column)和 第二个矩阵的行数(row)相同,若A为m×n 矩阵,B为n×p矩阵,则他们的乘积AB会是 一个m×p矩阵。其乘积矩阵的元素可由下 式得出:
同样,由于子图具有名称,可以作为一种功能的 抽象,分级实现的子图,可以将较大的 定义和传递任何参数
例4-2中的output子图
子图和子程序的命名
与变量不同的是,变量是一种被操作的对象,保 存一种具体的计算结果或中间量,所以变量名称 以名词(或代号)为多见;
英文单词统计(续)
例4-2 请设计一个程序,在例4-1的问题 求解基础上,统计使用了“a~z”所有 字母开头的单词的次数,并输出统计结 果
分析:
解这个问题程序似乎只要把例4-1的部分程序 再复制、粘贴25次,做一点修改就可以解决 问题。但是,可以将例4-1中的程序改造成一 个子程序,或者是一种抽象,以便“复用”
为了解决复杂的问题,必须能够研究问题 的“主要方面(big issues)”
模块化的主要作用
程序设计中,通过组合一系列相关指令, 组成分立和离散的过程,就可以抽象所有 的细节
模块化的主要作用包括:
降低复杂性 避免代码段重复 改进性能
英文单词统计
例4-1:请设 计一个程序, 计算一个英文 文章中,使用 了“a”开头 的单词的次数
2.模块化:模块化是把程序要解决的总目标 分解为分目标,再进一步分解为具体的小 目标,把每个小目标称为一个模块;

第1章RAPTOR程序设计基础(A)

第1章RAPTOR程序设计基础(A)
32
内置运算符和函数
数学运算:
+,-,*,/,^,**(加、减、乘、除、乘方)
rem, mod, sqrt(求余,开平方)
log, abs, (对数,绝对值)
ceiling, floor
(向下取整,向上取整)
33
内置运算符和函数
三角函数:
sin,cos,tan;正弦 ,余弦 ,正切 cot,arcsin,arccos;余切 ,反正弦 ,反余弦 arctan, arccot;反正切 ,反余切
21
RAPTOR数据类型
数值(Number):
如12,567,-4,3.1415,0.000371
字符串 (String):
如“Hello, how are you?”, “James Bond”, “The value of x is: ”
字符(Character):
如’A’,’8’,’!’。
效率和程序设计方法论等
12
程序的两类基本要素
对数据对象的运算和操作 程序的控制结构
13
程序的基本运算和操作
算术运算:
加、减、乘、除等
逻辑运算:
“与”、“或”、“非”等
关系运算:
“大于”、“小于”、“等于”、“不等于”
数据传输:
赋值、输入、输出等
14
程序的控制结构
顺序结构 :
选择结构 :
15
程序的控制结构
(a)直到型循环结构
(b)当型循环结构
16
RAPTOR基本程序环境
基本界面
17
四种基本符号/语句
目的
符号
名称
说明
输入 处理 处理
输入语句 赋值语句

RAPTOR与流程图说课讲解

RAPTOR与流程图说课讲解

输入(Input)语句
输入语句的编辑 (Edit)对话框
◦ 提示部分 ◦ 变量部分
输入(Input)语句
输入语句编辑完成后在流 程图中显示的状态
运行时对话框
RAPTOR控制结构
程序员合理利用控制结构和控制语句,可以确定程 序语句的执行顺序
这些控制结构可以做三件事:
1. 按照顺序执行某些语句; 2. 根据条件的判断件为真时重复执行一条或多条语句
选择控制结构在英语环境中被称为“if-then”结 构
决策表达式
决策表达式(Decision Expressions)是一组值 (常量或变量)和关系运算符的结合, 期望得到 YES/NO这样的结果
关系运算符(=、 / =、 <、<=、>、> =),必 须针对两个相同的数据类型值(无论是数值、字符 串、字符或布尔值)比较
字符(Character):
◦ 如’A’,’8’,’!’。
变量报错的原因
未定义引用(a) 拼写错(b)
不同类型的数据不可比较
RAPTOR常量
pi(圆周率) 定义为 3.1416 e (自然对数的底)定义为 2.7183 true /yes(布尔值: 真) 定义为 1 false/no(布尔值:假) 定义为 0
一个椭圆和一个菱形符号组合在一起被用来表示一个循环 过程
菱形符号中的表达式结果为“No”,则执行“No”的分 支,这将导致循环语句和重复
要重复执行的语句可以放在菱形符号上方或下方
循环控制结构在英语环境中被称为“While-do” 结构
循环测试
在循环语句中,究竟是先计算后测试,还是先测试 后计算,或者在计算的过程中间进行测试?

raptor程序设计案例教程-ch6

raptor程序设计案例教程-ch6

阻塞性键盘输入函数
(1) Wait_For_Key
等待击键
(2) Character_variable Get_Key
等待并取得用户输入的字符键值,返回用户输 入的字符键给某个变量
(3) String_variable Get_Key_String
取得用户输入的特殊键键值,如“home”
+鼠标位置的计算非常关键,这里使用了圆 的标准方程“(x-a) 2+(y-b)2=r2”(在算法中的 表达为(x-a)^2+(y-125)^2<=2500的决策语句 )进行判断
-执行效率较低 -一旦出错,出错信息没有清除功能
一个矩形按钮输入程序的设计
Main子图
负责用户输入全局 控制
绘制按钮画面( drawbuttons子图)
第6章 视窗交互程序设计
《RAPTOR程序设计案例教程》
学习目标
如何在图形界面中设置按钮? 如何在图形界面中设置键盘响应? 如何在图形界面下接收字符串输入? 如何在图形界面下布点并连线?

视窗交互程序设计基础
程序设计中,用户与图形程序的互动形式 很多,如用户点击鼠标或者按键盘上的某 个键,就会触发相应的事件
需求与设计
1.“开始”和“结束”按钮如何产生? 2. 如何获取鼠标点击位置? 3.鼠标点击点坐标的判断。 4.相关文本如何显示。
鼠标输入的实现案例
鼠标输入视线中的资源
位图图片装载功能,分别载入标识有“开始”和 “结束”的两张图片
借助Get_Mouse_Button(Which_Button,X,Y)获取鼠 标点击位置,并用Which_Button指明点击的是哪 个键,用X和Y来接收鼠标点击点的坐标

实验指导 raptor可视化环境入门

实验指导 raptor可视化环境入门

29
实验指导第2章 基于流程图的可视化程序设计(RAPTOR)
过程调用语句(显示)

注意,内置过程,子图,子程序的调用使 用同样的语句,但子图没有参数;内置过 程或子程序需要参数
30
实验指导第2章 基于流程图的可视化程序设计(RAPTOR)
输出语句


执行输出语句将 在主控(Master Console)窗口 显示输出结果 输出的结果可以 使用或不使用换 行操作
4
实验指导第2章 基于流程图的可视化程序设计(RAPTOR)
使用RAPTOR的理由



可以在最大限度地减少语法要求的情形下, 帮助用户编写正确的程序指令 程序就是流程图,可以逐个执行图形符号, 以便帮助用户跟踪指令流执行过程 容易掌握 用RAPTOR可以进行算法设计和验证,从 而使初学者有可能理解和真正掌握“计算 思维”
RAPTOR常量

RAPTOR定义了四个常量(Constant)



pi(圆周率) 定义为 3.1416 e (自然对数的底)定义为 2.7183 true /yes(布尔值: 真) 定义为 1 false/no(布尔值:假) 定义为 0
20
实验指导第2章 基于流程图的可视化程序设计(RAPTOR)

16
实验指导第2章 基于流程图的可视化程序设计(RAPTOR)
变量报错的原因

未定义引用
17
实验指导第2章 基于流程图的可视化程序设计(RAPTOR)
变量报错的原因

拼写错
18
实验指导第2章 基于流程图的可视化程序设计(RAPTOR)
不同类型的数据不可比较
19

raptor程序设计案例教程-ch8

raptor程序设计案例教程-ch8
为了观察方便,只需要模拟将自然数1~N排 序的过程
解题思路
数据结构自然是采用数组,并且是数据为1 至N的随机数组
所以程序首先要生成一个N元的全排列。要 生成N元的全排列,需要N次生成随机数, 但是每一次都要与之前的不重复
可以使用另一个布尔型数组存储各个数是否被 使用过
解题思路
使用着色的方法可以让这个过程变得直观 ,所以可以给数据着色,然后在变更某个 数据的时候改变它的颜色,可以做出一种 不错的效果
那么如何确定子边的属性呢?
分析与设计思路
假设父边的阶数为level,边长为length,坐标为(x, y),方向为orientation
则子边的阶数显然是level-1,子边的边长则是 length÷3。
再看方向,①号边和④号边的方向与父边相同, 为orientation,②号边的方向为orientation+1,而 ③号边的方向为orientation-1
第8章 综合应用
《RAPTOR程序设计案例教程》
本章案例
科赫雪花的原理及简单绘制 可视化排序方法如何设计? 图形界面下如何输入无向图? 如何用RAPTOR设计画图程序?
科赫雪花的原理及简单绘制
将一条线段三等分,先以中 间的一段为底边作一个正三 角形,然后再去掉这个正三 角形的底边, 于是我们可以 得到一条由4条长度为原线段 长度三分之一的线段构成的 折线
一种较为方便的方法是使 用另一个一维数组used[i] 来表示数字i是否已经被 使用过
这样在生成第二个数的时 候,检查第二个数是否被 使用过,如果已经被使用 过了,那么就重新生成一 个新的随机数直到出现没 有使用过的为止
数组的排序-冒泡
Bubble_Sort子程序
数组的排序-插入

详细版Raptor软件使用说明.ppt

实际参数的名与形式参数的可以不同 实际参数的数据类型则必须与形式参数的
相同
演示课件
实参
形参
演示课件
End of ch1-1
演示课件
演示课件
组合数求解
很容易看到,求组合数需要多次求阶乘, 这会造成许多重复的代码,现在将求阶乘 代码独立出主程序,定义为一个子程序, 在主程序运行时,需要计算某数的阶乘时 就调用子程序,从而简化整个软件的组成, 使结构更清晰。
演示课件
演示课件
创建RAPTOR子程序
子程序如同一个加工厂,输入原材料,然 后按设计要求处理原材料,输出产成品
演示课件
前序测试
删除图的Statement 2 Statement1为前置条件 Statement 3是主循环体 如果进入了Statement3,测试条
件也必须由这一部分进行修改;
演示课件
中序测试
Statement2是主循环体之一 而测试条件也是在Statement 2
中产生 Statement3是主循环体之二
演示课件
内置运算符和函数
三角函数:
sin,cos,tan;正弦 ,余弦 ,正切 cot,arcsin,arccos;余切 ,反正弦 ,反余弦 arctan, arccot;反正切 ,反余切
演示课件
内置运算符和函数
random,伪随机数 Length_of
求数组元素个数,求字符串长度
演示课件
演示课件
选择控制
注意选择控制语句的两个路径之一可能是 空的,或包含多条语句
选择控制结构在英语环境中被称为“if-then” 结构
演示课件
决策表达式
决策表达式(Decision Expressions)是一组 值(常量或变量)和关系运算符的结合, 期 望得到YES/NO这样的结果

RAPTOR与流程图解析

3 >= 4 结果为 No(false) (3 < 4) and (10 < 20) 结果为 Yes(true)

在数字评 分的基础 上换算字 母(A,B, C,D或F) 等级
循环(loop)控制语句允许重复执行一个或多个语
句,直到某些条件变为真值(True)
一个椭圆和一个菱形符号组合在一起被用来表示一个循环 过程 菱形符号中的表达式结果为“No”,则执行“No”的分 支,这将导致循环语句和重复 要重复执行的语句可以放在菱形符号上方或下方


决策表达式(Decision Expressions)是一组值 (常量或变量)和关系运算符的结合, 期望得到 YES/NO这样的结果 关系运算符(=、 / =、 <、<=、>、> =),必 须针对两个相同的数据类型值(无论是数值、字符 串、字符或布尔值)比较
◦ 例如,3 = 4或"Wayne" = "Sam"是有效的比较,但3 = "Mike"则是无效的
循环控制结构在英语环境中被称为“While-do”
结构



在循环语句中,究竟是先计算后测试,还是先测试 后计算,或者在计算的过程中间进行测试? 前序测试(Pre-test) 后续测试(Post-test) 中序测试(Intermediate-test)
前序测试:删除图的Statement

基本原则:
◦ 任何变量在被引用前必须存在并被赋值 ◦ 变量的类型由最初的赋值语句所给的数据决定

设置方法
◦ 通过输入语句赋值 ◦ 通过赋值语句的中的公式运算后赋值 ◦ 通过调用过程的返回值赋值

数值(Number):

Raptor软件使用说明

例如,3 = 4或坜祡敮 = 卜浡 是有效的比较,但3 = ?歩履 则是无效的
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)
结果33给变量X
下一个赋值语句,X←X * 2,检索到X当前值为33,
66
乘以2,并把结果66给变
量X
程序
8
RAPTOR 变量值的设置
基本原则:
任何变量在被引用前必须存在并被赋值 变量的类型由最初的赋值语句所给的数据决定
设置方法
通过输入语句赋值 通过赋值语句的中的公式运算后赋值 通过调用过程的返回值赋值
48
子程序定义
子程序定义界面上的接口参 数称为“形式参数” RAPTOR 的子程序参数不得 超过6个 子程序参数可以是单个变量, 也可以是数组
49
一个设计完成的子程序
50
过程调用语句(编辑)
编辑对话框 注意已有过程提示
51
过程调用语句(显示)
注意,内置过程,子图,子程序的调用使用同样的语句, 但子图没有参数;内置过程或子程序需要参数
RAPTOR 程序设计基础
《可视化计算》

RAPTOR流程图编程


3
什么是可视化程序设计?



可视化(Visual)程序设计是一种全新的程序 设计方法,一般可视化程序主要是指编译 环境的可视化; 程序设计人员利用开发环境本身提供各种 可视化的控件、方法和属性等,像搭积木 一样构造出应用程序的各种界面 典型的可视化程序设计环境如Visual Basic
4


数组是有序数据的集合。 一般分为一维数组和二维数组 数组最大的好处在于用一个统一的数组名 和下标(index)来唯一地确定某个数组变 量中的元素
52
RAPTOR一维数组的元素表示

形式一

形式二
53
数组的创建


数组变量必须在使用之前创建 所创建的数组大小由赋值语句中给定的最 大元素下标来决定,可以在算法运行过程 中动态增加数组元素,扩展其大小。 第一次给values[]数组赋值:
X 的值 未定义
32 33
程序
第一个赋值语句,X←32, 分配数据值32给变量X 下一个赋值语句, X←X +1,检索到当前X 的值为32,给它加1,并 把结果33给变量X 下一个赋值语句,X←X * 2,检索到X当前值为33, 乘以2,并把结果66给变 量X
66
11
RAPTOR变量值的设置

基本原则:
27
内置运算符和函数

random,伪随机数 Length_of 求数组元素个数,求字符串长度

28
过程调用语句(编辑)

编辑对话框 注意已有过程提示
29
过程调用语句(显示)

过程调用分内置过程,子图,子程序; 内置过程、子图、子程序的调用使用同样 的语句,但子图没有参数,内置过程或子 程序需要参数
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档