raptor流程图与算法设计教程

raptor流程图与算法设计教程

Raptor运算符号、函数、子过程介绍大全

Raptor symbols 符号(六个)

The six symbols used in Raptor are displayed in the Symbol Window in the upper left corner of the main window:

赋值Assignment

x <- x + 1用Set x to x+1

调用Call及subcharts

graphics routines and other instructor-provided procedures及subcharts

输入Input

输出Output

分支Selection

循环Loop Control

Math in Raptor(数学运算符)

Unary Minus ( – )负号

例如,x值分别为7,-3,3,则-x的值为-7;-x的值为3,—x值为-3

Exponentiation ( ^ or ** )指数运算

2^3的值为8;-3**2 的值为9 ( =(-3)*(-3) )

* , / , REM, MOD——乘、除、取余函数

floor ( 5 / 2 )——整除函数?=2

x y x REM y x MOD y
10 3 1 1
37 2 1 1
16 2 0 0
9.5 3 0.5 0.5
9.5 2.5 2 2
-10 3 -1 2
10 -3 1 -2

常用于判断某数是否奇偶数

注:三种除运算除数均不可为0,否则将显示“run-time error”

+ , – 加减运算

非三角函数

In Assignments:

x_magnitude <- abs(x)

product <- e^(log(factor1) + log(factor2))

In Select and Loop Exit Comparisons:

log(x) > 0.0

sqrt(c^2) <= sqrt(a^2 + b^2)

random > 0.5 and abs(x) < 100.0

以字母顺序列出非三角函数:

求绝对值ABS

例如abs(-3.7) 为3.7

CEILING(与FLOOR相对)

ceiling(math_expression)

例如ceiling(15.9) 为16, ceiling(3.1) 为 4, ceiling(-4.1) 为-4

FLOOR

variable <- floor(math_expression)

floor(15.9) is 15, floor(-4.1) is -5

E指数幂

e^x

e为约等于2.7的对数常数

LOG对数

log(math_expression)

参数不可为0,否则run-time error

MAX

max(math_expression, max_expression)

例如:max(5,7) 为7.

MIN

min(math_expression, max_expression)

例如:min(5,7) 为5.

PI

返回圆周率值3.14159.

POWERMOD

powermod(base, exp, modulus)

返回值为 ((base^exp) mod modulus).

RSA public key encryption and decryption

bases and exponents too large for the Raptor exponentiation operator can still be used for encryption.

RANDOM

Random返回[0.0,1.0)间的一个随机数

例如:floor((random * 6) + 1).

SQRT

sqrt(math_expression)

参数不可为负数

三角函数

SIN

sin(expression_in_radians)

COS

cos(expression_in_radians)

TAN

tan(expression_in_radians)

COT

cot(expression_in_radians)

ARCSIN

arcsin(expression)

ARCCOS

arccos(expression)

ARCCOT

arccot(x,y)

例如arccot(sqrt(2)/2,sqrt(2)/2) 为pi/4

arccot(-sqrt(2)/2,sqrt(2)/2)为3/4 *pi

arccot(sqrt(2)/2,-sqrt(2)/2)为-pi/4

arccot(-sqrt(2)/2,-sqrt(2)/2)为-3/4 *pi.

ARCTAN

arctan(y,x)

Program Control

用布尔值控制

= Equal True if the compared items are equal
/= Not Equal True if the compared items are not equal
!= Not Equal True if the compared items are not equal
> Greater Than True if the expression on the left is greater than the expression on the right
< Less Than True if the expression on the left is less than the expression on the right
>= Greater Than or Equal True if the expression on the left is greater than or equal to the expression on the right
<= Less Than or Equal True if the expression on the left is less than or equal to the expression on the right

例子:

count = 10;count mod 7 != 0;x > maximum

Boolean Operators布尔运算有:

AND, OR, XOR and NOT

n >= 1 and n <= 10

n < 1 or n > 10

表达式1 XOR 表达式2中,两个表达式有1个为true则返回true

可用于比较数和字符串

Boolean Functions布尔函数

Key_Hit

Is_Open

Mouse_Button_Pressed(Left_Button)

Delay_For

Delay_For(duration)

含一个参数的过程,含义为暂停若干秒duration。

Clear_Console

一个过程,用于清除控制台显示,并将光标移至初始位置。

关于Raptor图

默认色为白色。程序可使用下列函数在窗口中输出raptor图。

RaptorGraph坐标

Open_Graph_Window打开Raptor Graph后,白色背景中将出现一个打开的window。window左下角像素的坐标为(1,1)。

Open_Graph_Window(400,300)显示的窗口:

 

Drawing Operations画图操作

可以绘制指定颜色的指定形状。

Keyboard Operations键盘操作

用于确定是否有键输入。例如输入字符串ASCII编码

Mouse Operations鼠标操作

可以返回当前鼠标位置。

Window Operations窗口操作

用于更新和设置窗口属性。Freeze_Graph_Window and Update_Graph_Window 调用可以平滑动画显示

注:窗口必须打开才能进行相应操作,否则将出现run-time error

Window Operations窗口操作

Close_Graph_Window

Close_Graph_Window

关闭窗口过程

例:Close_Graph_Window

Get_Max_Height

variable <- Get_Max_Height

返回窗口的高度像素值。事实上,该过程常在Open_Graph_Window调用前使用。其值可用来作为打开窗口的参数。

Open_Graph_Window(Get_Max_Width,Get_Max_Height)

Get_Max_Width

variable <- Get_Max_Width

类同上

Get Window Height

variable <- Get_Window_Height

返回窗口高度。图窗口必须先打开。

例:

Get Window Width

variable <- Get_Window_Width

类同上

Is_Open

Is_Open

用于判断窗口是否打开,返回值为Yes (True) 或No (False)。常用于判断。

例:

Open_Graph_Window

Open_Graph_Window(X_Size, Y_Size)

例:Open_Graph_Window(500, 300)

opens a 500 pixel (wide) by 300 pixel (high) graphics window.

Set_Window_Title

Set_Window_Title(Title)

改变或设置窗口标题。

例:Set_Window_Title(“CS 110 PEX 3”)

Smoothing Animations平滑绘制图形

Freeze_Graph_Window及Update_Graph_Window常用于平滑动画显示

不用Freeze_Graph_Window将使每次描画变得明显而导致动画很愣。

Freeze_Graph_Window is called (and before Unfreeze_Graph_Window is called), this buffer is used for all graphics calls.  That is, the objects being drawn by the graphics calls are not drawn to the screen, but instead to the screen buffer.  When the programmer has drawn the desired objects to the screen buffer, the Update_Graph_Window call is used to almost instantaneously move the screen buffer to the viewable graphics screen.  An animation normally repeats the following steps:

1) Draw desired objects (to the screen buffer) using normal graphics calls (例如Draw_Circle, Draw_Line, etc.)

2) 调用Update_Graph_Window使描画迅速可见

结束动画描画时,用Unfreeze_Graph_Window过程,将screen buffer数据更新屏幕使动画立即描画。例:

Colors颜色

Black, Blue, Green, Cyan青,Red, Magenta紫, Brown, Light_Gray浅灰, Dark_Gray深灰, Light_Blue浅蓝, Light_Green浅绿, Light_Cyan浅青, Light_Red浅红, Light_Magenta浅紫, Yellow, White

或用序号0~15(0-黑, 1-蓝,15-白)

例:

Draw_Box(X1, Y1, X2, Y2, BoxColor, Filled)

Draw_Box(X1, Y1, X2, Y2, Green, Filled)

Draw_Box(X1, Y1, X2, Y2, 2, Filled)

色值可达241,当大于15时,将为扩充色。

Filled——值为True(or Yes) or False (or No)。True则用指定颜色填充,否则无色。

Closest_Color

color <- Closest_Color(Red, Green, Blue)

一个函数,返回值0~241之间的某值(接近RGB颜色模式中),在0~ 255间或显示run-time error。

例:Color <- Closest_Color(50, 30, 110)具有RGB色值为50,30,110

Generating Random Colors产生随机颜色

Random_Color

返回0~15 (Black, Blue, Green, Cyan, Red, Magenta, Brown, Light_Gray, Dark_Gray, Light_Blue, Light_Green, Light_Cyan, Light_Red, Light_Magenta, Yellow, White)的一个随机色。

例:Display_Text(100,100,”Message”,Random_Color)

Random_Extended_Color

返回0~241间随机色

例:Display_Number(100,100,Score,Random_Extended_Color)

画图操作

Clear_Window

Clear_Window(Color)

例:Clear_Window(Red)——清屏且填充红色

Draw_Arc绘制弧

Draw_Arc(X1, Y1, X2, Y2, Startx, Starty, Endx, Endy, Color)

含8个参数,在指定的(X1, Y1, X2, Y2)矩形中绘制椭圆。 (X1,Y1) and (X2,Y2) 为矩形中的对角坐标。从坐标(Startx,Starty)开始,到(Endx,Endy)结束。

注:必须先打开图窗口,否则将run-time error

例:Draw_Arc(1,100,200,1,250,50,2,2,black)

在以下300×300 window中:

Draw_Bitmap

Draw_Bitmap(Bitmap, X, Y, Width, Height)

一个含5个参数的调用,用于在图窗口中绘制图像。

Bitmap——为函数Load_Bitmap的返回值

X,Y——图像在图窗口左上角的坐标值

Width,Height——以像素表示的图像绘制的最大宽度、高度

注:必须先打开图窗口,否则将run-time error

注:Raptor本身不自动缩放图像,一旦图像尺寸大于指定宽、高度,将自动截去图像右、下边。否则将正常显示。

例:在(50,450)位置绘制具有400、300像素宽、高的图像。注意必须先对参数bitmap用Load_Bitmap function赋值。

装入mypicture.bmp文件中的图像。

Draw_Box绘制矩形

Draw_Box(X1, Y1, X2, Y2, Color, Filled)

(X1, Y1)矩形的任一角坐标,(X2, Y2)与(X1, Y1)相对的另一角坐标

Filled——值为True(or Yes) or False (or No)。True则用指定颜色填充,否则无色。

Filled——值为True(or Yes) or False (or No)。True则用指定颜色填充,否则无色。

注:图窗口必须先打开,否则run-time error

例:Draw_Box(50,150,250,25,Green,True)从左(50,150)到右(250,25)绘制绿色矩形

Draw_Box(250,150,50,25,Green,False)同一位置绘制无色矩形。

Draw_Circle绘圆形

Draw_Circle(X, Y, Radius, Color, Filled)

在中心坐标(X,Y)绘制半径为radius的圆形。Filled用法同矩形调用。

注:必须先打开图窗口,否则run-time error

例:绘制绿色或无色圆形Draw_Circle(50,150,25,Green,True)

Draw_Circle(100,250,50,Green,False)

Draw_Ellipse绘制椭圆

Draw_Ellipse(X1, Y1, X2, Y2, Color, Filled)

(X1,Y1) 起点坐标,(X2,Y2)终点坐标

注:必须先打开图窗口,否则run-time error

例:Draw_Ellipse(50,150,250,25,Green,True)

Draw_Ellipse(250,150,50,25,Green,False)

绘制绿色、无色椭圆。

Draw_Ellipse_Rotate

Draw_Ellipse(X1, Y1, X2, Y2, Angle, Color, Filled)

此过程与Draw_Ellipse类似,但却是绘制一个逆时针旋转的指定角度angle,该值用数值指定 (例如,90度以pi/2给出)

例:Draw_Ellipse_Rotate(50,150,250,25,pi/2,Green,True)

绘制90度的椭圆。

Draw_Line绘制直线

Draw_Line(X1, Y1, X2, Y2, Color)

注:必须先打开图窗口,否则run-time error

例:Draw_Line(50,150,250,25,Green);

Flood_Fill填充指定颜色

Flood_Fill(X, Y, Color)

一个过程调用,在在(X,Y)指定的区域内填充指定颜色。

注:必须先打开图窗口,否则run-time error

例:Flood_Fill(X1+1,Y1-1,Red)

Get_Pixel获取某处颜色

Get_Pixel(X, Y)

返回指定坐标位置的颜色值,若x,y值错误,将显示run-time error并停止程序运行。

常用于赋值。也用于判断,例如使循环退出的判断Get_Pixel(x1,y1)= Green

注:必须先打开图窗口,否则run-time error

例:set Color to Get_Pixel(200,200);

Load_Bitmap装载图

Load_Bitmap(Filename)

一个函数,返回某文件中的图像。用于Draw_Bitmap过程

注:图像文件必须是支持的格式.bmp,.jpg)或.gif

注:必须先打开图窗口,否则run-time error

例:

The following example loads the image with the filename mypicture.bmp into memory and assigns an associated value to the variable bitmap.  The variable bitmap could then be used in a subsequent call to Draw_Bitmap in order to draw all or part of the image in a RaptorGraph window.

Put_Pixel改变颜色

Put_Pixel(X, Y, Color)

一个过程,改变指定位置的颜色

注:必须先打开图窗口,否则run-time error

例:Put_Pixel(50,50,Red);

Put_Pixel(50,50,ColorVar);

Keyboard Operations键盘操作

Get_Key

variable <- Get_Key

返回最后一个按键的扩展ASCII码值

Left Arrow 165
Right Arrow 167
Up Arrow 166
Down Arrow 168

注:图窗口必须打开,否则run-time error。

例:

Get_Key_String

Get_Key_String

返回用户输入字符串的最后一个键值。

Get_Key_String

按键 返回值
a “a”
Shift-a “A”
Page Down “PageDn”
F-1 “F1”
Enter “Enter”
Esc “Esc”
Tab “Tab”
Backspace “Backspace”
Down Arrow “Down”
Up Arrow “Up”
Left Arrow “Left”
Right Arrow “Right”
Insert “Insert”
Delete “Delete”
\ (Back Slash) “\”
Space Bar ” “
Control-A “Ctrl-A”

注:图窗口必须打开,否则run-time error。

例:

Key_Down

Key_Down(“key”)

当指定键按下时,返回true。如Key_Down(“c”);Key_Down(” “) 空格键按下为true

Key_Hit, calls to Key_Down are unaffected by any previous calls to Get_Key, Get_Key_String, or Wait_For_Key.

注:图窗口必须打开,否则run-time error。

例:

按键 按键参数
a “a”
Shift “Shift”
Page Down “PageDn”
F-1 “F1”
Enter “Enter”
Esc “Esc”
Tab “Tab”
Backspace “Backspace”
Down Arrow “Down”
Up Arrow “Up”
Left Arrow “Left”
Right Arrow “Right”
Insert “Insert”
Delete “Delete”
\ (Back Slash) “\”
Space Bar ” “
Control “Ctrl”

Key_Hit

当get_key调用时,有键按下则返回true

常用于是否执行了Get_Key调用。

注:图窗口必须打开,否则run-time error。

例:

Wait_For_Key

Wait_for_Key

当有键按下时暂停程序运行。

注:图窗口必须打开,否则run-time error。

例:Wait_For_Key

Mouse Operations鼠标操作

Get_Mouse_Button

Get_Mouse_Button(Which_Button, X, Y)

一个过程,等待鼠标单击,并返回鼠标单击处的X,Y坐标值,如同时单击左、右两边,则只保留左键坐标。释放时的坐标值

Which_Button must be either Left_Button or Right_Button.

注:图窗口必须打开,否则run-time error。

例:Get_Mouse_Button(Left_Button,Mouse_X,Mouse_Y)

Get_Mouse_X

Get_Mouse_X

返回鼠标当前的X值

注:图窗口必须打开,否则run-time error。

例:

Get_Mouse_Y

Get_Mouse_Y

例:

Mouse_Button_Down

Mouse_Button_Down(Which_Button)

当鼠标左或右键按下时间,返回true。

与Mouse_Button_Pressed不同,Mouse_Button_Down对以前的Get_Mouse_Button 或Wait_For_Mouse_Button调用无效。

注:图窗口必须打开,否则run-time error。

例:

Mouse_Button_Pressed

Mouse_Button_Pressed(Which_Button)

当最后一次调用Get_Mouse_Button或Wait_For_Mouse_Button(或因未调用Open_Graph_Window)鼠标按下时返回true。常用于测试是否调用了Get_Mouse_Button。

注:图窗口必须打开,否则run-time error。

例:

Mouse_Button_Released

Mouse_Button_Released(Which_Button)

当Get_Mouse_Button或Wait_For_Mouse_Button (或因Open_Graph_Window未成功调用)时鼠标释放返回true

注:图窗口必须打开,否则run-time error。

例:

Wait_For_Mouse_Button

Wait_For_Mouse_Button(Which_Button)

一个过程,暂停运行知道指定的鼠标键按下,左键优先。

注:图窗口必须打开,否则run-time error。

例:Wait_For_Mouse_Button(Left_Button)

Text Operations文本操作

Display_Number

Display_Number(X, Y, Number, Color)

在左上角指定位置X,Y按指定颜色Color显示值Number

注:图窗口必须打开,否则run-time error。

例:Display_Number(3,10,x, Black)

Display_Text显示字符串

Display_Text(X, Y, Text, Color)

注:图窗口必须打开,否则run-time error。

例:Display_Text(3, 10, “Hello!”, Black)

Display_Text(30, 50, “Score: ” + score, Red)

显示字符串变量”Score: ” + score的值

Get_Font_Height

variable <- Get_Font_Height

返回字符高度。

注:图窗口必须打开,否则run-time error。

例:

Get_Font_Width

variable <- Get_Font_Width

注:图窗口必须打开,否则run-time error。

Set_Font_Size

Set_Font_Size(Size)

设置文字大小0~100pt,默认值为10

注:图窗口必须打开,否则run-time error。

例:Set_Font_Size(14)

Set_Font_Size(x)按变量x值设置文本大小。

Arrays数组

Array Overview数组概述

一系列带有顺序的用[]标记的数。例:

scores[1] scores[2] scores[3] scores[4]

顺序号必须是正数。

Scores成绩

1 2 3 4
87 93 77 82

常用于循环处理。

 Two-Dimensional Arrays二维数组

用于表示矩阵。例:

grid[1,1] grid[1,2] grid[1,3] grid[1,4]
grid[2,1] grid[2,2] grid[2,3] grid[2,4]
grid[3,1] grid[3,2] grid[3,3] grid[3,4]

 

grid 1 2 3 4
1 3 8 6 15
2 2 9 12 14
3 6 11 18 13

grid[3,2]值11,grid[2,4] 值14.

Processing Two-Dimensional Arrays二维数组处理

双循环。分别对行列。例如:

Creating Arrays创建数组

使用前必须先创建数组。说明数组的最大顺序(用赋值语句)。

大于最大顺序号时将出现run-time error

例如,先values[7] <- 3

1 2 3 4 5 6 7
0 0 0 0 0 0 3

如:values[9] <- 6

则:

1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 3 0 6

对100个数组元素赋初始值0,可以:values[100] <- 0

Creating Two-Dimensional Arrays创建二维数组

 

numbers[3,4] <- 13。则二维数组

numbers 1 2 3 4
1 0 0 0 0
2 0 0 0 0
3 0 0 0 13

Array Operations数组操作

Length_Of

Length_Of is a function that takes one argument, a one-dimensional array without any index or square brackets after the name.  It returns the highest index (which is also the number of elements) defined for the array.  Length_Of can also be used to determine the length of a string expression.

 

例:Length_Of(Scores) will return 4.

Scores

1 2 3 4
87 93 77 82

Raptor Reference

Math

 

数学运算符

负号unary minus
^ , ** 指数运算exponentiation
* 乘法multiplication
/ 除法division
rem, mod 求余remainder
+ 加法addition
减法subtraction

Basic Math Functions基本函数运算

abs 绝对值

ceiling (round up)取上界

e – 返回自然对数值 (base for natural logarithms)

floor – 取下界(round down)

log – 求自然对数

max – 求最大值

min – 求最小值

pi – pi值

powermod – used for public key encryption / decryption

random – [0.0,1.0)间随机数

sqrt – 平方根

Trigonometric Functions三角函数

arccos – arc cosine

arccot – arc cotangent

arcsin – arc sine

arctan – arc tangent

cos – cosine

cot – cotangent

sin – sine

tan – tangent

Program Control

Relational Operators

=     equal to

>     greater than

<     less than

!=    not equal to

/=    not equal to

>=   greater than or equal to

<=   less than or equal to

Boolean Operators

and – 与运算

not – 非运算

or – 或运算

xor – 异或运算’xor’ (true if expressions on either side are different)

 

clear_console – 清除主控制台信息

delay_for – 等待若干秒

Raptor Graphics

Available colors可用色

Black, Blue, Green, Cyan, Red, Magenta, Brown,Light_Gray, Dark_Gray, Light_Blue, Light_Green, Light_Cyan, Light_Red, Light_Magenta, Yellow, White

Available fill values可用填充

Filled, Unfilled

True, False

Yes, No

Mouse button values鼠标值

Left_Button , Right_Button,

RaptorGraph Functions (return a value)图函数

Closest_Color, Get_Font_Height, Get_Font_Width, Get_Key, Get_Key_String, Get_Max_Height, Get_Max_Width, Get_Mouse_X, Get_Mouse_Y, Get_Pixel, Get_Window_Height, Get_Window_Width, Is_Open, Key_Down, Key_Hit, Mouse_Button_Down,  Mouse_Button_Pressed, Mouse_Button_Released, Random_Color, Random_Extended_Color

RaptorGraph Calls图过程

Clear_Window, Close_Graph_Window, Display_Text, Display_Number, Draw_Arc, Draw_Box, Draw_Bitmap, Draw_Circle, Draw_Ellipse, Draw_Ellipse_Rotate, Draw_Line , Flood_Fill, Freeze_Graph_Window, Load_Bitmap, Open_Graph_Window, Wait_For_Key, Wait_For_Mouse_Button, Get_Mouse_Button, Put_Pixel, Set_Font_Size, Set_Window_Title, Unfreeze_Graph_Window, Update_Graph_Window

Arrays

Array Operations

Length_Of – 返回数组长度

[ ] – indexing: 顺序

 

To_Character – 返回指定数的ASCII值

To_ASCII – 为指定字符赋予ASCII值

Strings

String Operations

+ – Concatenation

Length_Of – 返回字符串长度

[ ] – indexing:顺序

Variable Type Queries

Boolean Functions

Is_Array, Is_Number, Is_String, Is_2D_Array

Sound

Sound Calls

Play_Sound, Play_Sound_Background, Play_Sound_Background_Loop

Files

File Calls

Redirect_Input  – 以某文件中数据作为输入

Redirect_Output – 将值输出到某文件。

 

 

 

Note that it is as easy for the programmer to process 4,000 values as it is to process  four  by simply changing the value of the variable howmany!  That is part of the power of arrays used with counting loops.

整个Reference结束

Advanced Topics

1、Sound Operations

Raptor程序可以用后面三个过程播放声音 (.wav)文件,但需注意:

  • 文件名必须是字符串或字符串变量
  • 必须带有完整路径,否则必须与raptor在同一文件夹中
  • .wav可省略
  • 如果文件名错误,将产生鸣笛音

Play_Sound

Play_Sound(filename)

例:Play_Sound(“c:\windows\media\Windows XP Startup”)

Play_Sound_Background

Play_Sound_Background(filename)

例:Play_Sound_Background(“c:\windows\media\tada.wav”)

Play_Sound_Background_Loop循环播放背景

Play_Sound_Background_Loop(filename)

例:Play_Sound_Background(“sound.wav”)

2、Strings

(1)String Variables & Assignment

或在过程中:

Assigning values to strings

  • 必须用双引号”Hello, World!”)
  • 可以是字符串变量或表达式”Hello, ” + name_string_var + “, it’s nice to meet you”

(2)String vs. Numeric Input

下面为非法输入

字符串
3e5   (3 x 105) 3  5
123 12.3.2
-55  (nothing – if nothing is input, an empty string results
58.7 “123”    (quotes will be part of the string)

(3)String Operations

+ (Concatenation)

例: “The answer is: ” + count will have the value “The answer is: 7” if the value of count is 7.

Length_Of

Length_Of返回一维数组或字符串长度

Length_Of(stringVar)

Length_Of(“Answer” + ” is”) 值为9

[ ] (Indexing)返回第一个字符

例如,字符串 “John Doe”则initial <- Name[1] 后值为’J’.

Name[6] <- ‘F’将使”John Doe”变为”John Foe”

To_Character

To_Character(70) 值为 ‘F’

To_ASCII

To_ASCII(‘F’) 值为70

(4)String Comparisons

=, !=, /=, <, <=, >, <=

以字典顺序比较。例:”abc” <“abd”

控制字符<可打印字符<数字字符<大写字母<小写字母

3、Files for input and output

(1)Files Overview文件概述

(2)Inputting from a File

Redirecting Input from a File

Redirect_Input(“file.txt”)

Redirect_Input(“C:\Documents and Settings\John.Doe\CS110\file.txt”);

Stopping Input Redirection

Redirect_Input(False)

停止file输入,改由键盘输入。

例:下列流程图”file.txt”

(3)Input Line by Line逐行输入

Line-Oriented Input

 

When a file is used for input, an Input symbol consumes exactly one line of the file.  The contents of the line determine whether Raptor interprets it as a string or a number (see String vs. Numeric Input).  Therefore, a text file created for input must have the desired number of lines to match the number of inputs to be performed.  Further, each of these lines must make sense for the variable that is to input that line of data. 例如,某文件包含一个学员信息:

 

C4C John Doe

28

3.51

分别顺序赋予下列变量:cadet_name;squadron;GPA

Notes: 空行赋值给variable空串。

Files of Unknown Size (Advanced Topic)未知大小的文件

有时从一个未知行数的文件中读取数据,因而,程序必须知道何时到达文件尾。Raptor 提供了一个End_Of_Input函数,此函数在读入所有行后返回true。

注:如用笔记本程序编辑文件,必须确认文件尾无额外的空行。在Raptor中,空行将作为空串,可能会导致某些数值变量被无意义赋值从而导致运行错误。

例:

(4)Outputting to a File

Redirecting Output to a File

Raptor提供了Redirect_Output语句输出到文件

Redirect_Output(“file.txt”)

Redirect_Output(“C:\Documents and Settings\John.Doe\CS110\datafile”);

Notes: 如果文件已经存在,将无警示地覆盖原内容。没有写入权限的文件,将产生run-time error

 

Redirect_Output(True)

运行时,将弹出文件选课对话框,用户可以在运行时动态输入文件名。

File Output

输出文件中的数据格式与显示在主控台中的格式相同。程序可以控制一个新行开始时的输出内容。

Stopping Output Redirection

要重置Raptor使输出改向到主控台,可以用以下过程:

Redirect_Output(False)

使用此过程,将关闭输出文件,输出数据将从新输出到主控台

例:流程图显示了Redirect_Output call在交互界面到文件的切换过程。

开始输出到主控台,以后的输出将转向到文件”file.txt”,等所有元素输出后,输出关闭,最后的输出再次转向主控台。

4、Subcharts子图

(1)Subchart Overview

有些步骤常常需要在程序的不同位置反复执行。可以用复制粘贴,但肯定会导致程序行数增加,进而使程序难读,错误多。可以用子图subchart 实现。在不同位置调用子图。

类似圆形绘制,可以直接定义一个调用实现。

可以通过判断中断子图运行。

全程变量共享。某子图中的变量一直不变除非重新赋值。

注意:对临时变量特别要注意其值。例如,某变量在主程序中是最大值,若某数在子图中赋值给max,原max值将丢失。

(2)Creating and Modifying Subcharts

Creating a Subchart创建子图

开始编辑主程序时,窗口标题为”Main”,要创建subchart, 在”Main”tab右击并选择菜单中的“添加子图Add Subchart”,然后输入子图名,新窗口标题将为子图名,可以在子图中添加、删除和编辑流程图符号。

Renaming a Subchart重命名子图

在子图窗口的子图名处右击,在弹出菜单中选”Rename Subchart”。

Deleting a Subchart删除子图

右击。

(3)Calling Subcharts

在调用位置用Call symbol,可以在Call symbol双击编辑,主程序可以调用子图,某子图可以调用另一子图。甚至本子图可以调用自己(这是不好的用法)。

Passing Data to and from Subcharts (Advanced Topic)子图参数传递

可以用同一Draw_Circle过程绘制红色(100,100)大小的圆形,也可以绘制黑色的(250,250)大小的圆形。Subcharts也有此功能。

子图不支持子图内的参数传递,但允许其他情形的参数传递。

要确保子图中的参数变量不再被程序误用,应用唯一方式命名。好的命名方式是用子图名作为前缀符,并用下划线连接变量名。例如,用draw_triangle_x作为draw_triangle中的变量。

5、Variable Type Queries

Is_Array

Is_Array(variable)

当变量是数组时,则返回true。否则为false

Is_Character

Is_ Character(variable)

当变量是字符时,则返回true。否则为false

Is_Number

Is_Number(variable)

变量为数值时,返回true

Is_String

Is_String(variable)

当变量是字符串时,则返回true。否则为false

Is_2D_Array

Is_2D_Array(variable)

当变量是二维数组时,则返回true。否则为false

李兴球

李兴球的博客是Python创意编程原创博客