直观灵活的程序语句

Authorware除了具有图标化的程序设计流程外,直观灵活的程序语句也是一大特色,即使您没有任何的编程基础,一样可以很轻松地掌握Authorware的程序语句编写技巧。

本节我们一起讨论Authorware 6.5程序语句的基础知识与相关的语句编写技巧等。

一、预备知识

Authorware 6.5的程序语句一般都是在计算代码编辑器里编写完成并执行的,如图1所示。除了计算图标外,其它图标都有附带执行计算代码的功能,选择该图标后按快捷键“Ctrl”+“=”即可调出附带计算代码编辑器。

二、基本语法与结构

1.注释符"--"

一目了然的注释既能增强程序的可读性,又可以方便设计者日后对程序代码的修改与维护。Authorware计算代码中默认"--"后面即为注释文本内容,在程序执行中并不被执行。强烈建议大家养成良好的程序注释习惯!

2.运算符

Authorware涉及的运算符号主要包括赋值运算符、关系运算符、算术运算符、连接运算符、逻辑运算符共五大类。

(1)赋值运算符":="

把赋值运算符右边的值赋予左边的变量,例如Variable:=Value即把右边"Value"的值赋予左边的变量"Variable",这种运算关系可以包括数值、字符串文本等各种Authorware支持的数据类型的赋值。

语法范本:A:=10

List:=[1,2,3,4,5,6]

PopupHandle:=tmsCreatePopupList(WindowHandle)

(2)关系运算符:=(等于)、<>(不等于)、<(小于)、>(大于)、<=(小于或等于)、>=(大于或等于)。

对两个值(例如字符串、数值等)进行比较并返回一个逻辑比较结果True(1)或False(0),一般用于条件分支判断。

语法范本:A<>B(A不等于B)

(3)算术运算符:这类运算符主要是完成程序中一些基本的算术演算,包括有+(加)、-(减)、 *(乘)、/(除)、**(乘方)。

语法范本:3+5*20(即3+5×20=103)

(4)连接运算符"^":主要用于两个或多个字符串之间的连接。

语法范本:A:="Authorware"^"6.5"(即A的值为"Authorware6.5")

(5)逻辑运算符:~(逻辑非)、&(逻辑与)、|(逻辑或)。

这类运算符主要是完成两个逻辑值的比较操作,比较返回的结果是True(1)或False(0),一般用于条件分支判断。

语法范本:A&B(假如A=1,B=0,则A&B的逻辑值为False,即0)

最后我们还要介绍一下运算符的优先级问题,这在复杂的运算表达式中尤为重要。Authorware中运算符的优先级问题一般遵循以下原则:(左边最高,右边最低)

() 、~ 、** 、*或/ 、+或-、 ^、 =或<=或>=或<>或<或>、 &或|、 :=

其中括号的优先级别最高,而赋值符则最低。

例如:N:=(3+4/2)>1&5*2>25

其运算顺序是:3+4/2=3+2=5 → 5>1中间结果A为True(1) →

5*2=10>25中间结果B为False(0) →

A&B=True&False=1&0=0,最后结果N即为False(0)

3.条件/循环判断语句结构

通过条件/循环判断语句可以控制程序流程的执行方向,完成不同的分支任务。Authorware 6.5主要包括如图2所示的条件/循环判断语句结构。

图 2

(1)条件判断语句

顾名思义条件判断语句就是用于某种事件或者结果的判断上,并根据判断结果决定执行哪条分支动作,条件判断语句结构一般以if开头,而以End if结束。例如:

if A>10 then

DisplayIcon(iconid@"hello")

else

Eraseicon(iconid@"good")

end if

如果A>10的情况下则执行DisplayIcon(iconid@"hello")语句显示显示图标"hello"的内容;否则执行Eraseicon(iconid@"good")语句擦除显示图标"good"的内容。

一条件判断语句下允许镶嵌多重更复杂的条件判断语句,例如下面的代码:

if 条件1 then 执行语句1

else if 条件2 then 执行语句2

else 执行语句3

end if

上述程序代码段含义是:如果满足条件1,程序将执行语句1;而如果满足条件2,将执行语句2;否则的话程序只能执行语句3;执行完这个条件结构后,程序自动由End If来结束整个条件判断。

(2)循环判断语句

循环判断语句可以在条件仍然满足的情况下重复执行某一段程序代码,而被重复执行的这段程序代码通常被称为循环体。Authorware 6.5支持的循环判断语句结构都以repeat开头,end repeat结束。例如:

repeat with i:=1 to 10

str:=String(i)

end repeat

即自变量i在1≦i≦10的范围内将重复执行赋值语句str:=String(i),每循环一次i自增+1,直到i值大于10结束退出循环。

Authorware支持的循环判断语句结构共有以下几类(见图2):

repeat with counter:= start [down] to finish

循环体语句

end repeat

这种循环结构中,值start和finish分别是循环的上下限,当循环执行到计数器counter超出循环范围时,将自动退出循环。此种循环结构可以指定计数器counter的自增方式,即每次递增1还是递减1(down)。

repeat with 变量in 列表

循环体语句

end repeat

这种循环结构通常被应用在数组上,如果变量元素在指定的列表中,将重复执行循环体的程序语句;每执行完一次循环后,就会自动指定列表中的下一个变量元素,直到该变量元素超出列表索引范围,才执行end repeat结束循环。

repeat while条件

循环体语句

end repeat

这种循环结构相对简单,即在条件满足的情况下循环执行循环体的程序语句,直到条件不满足为止才执行end repeat结束循环。

提示技巧

初学者如果还不熟悉Authorware 6.5的条件/循环判断语句结构,可以通过点击计算代码编辑器窗口(如图1)工具栏中的 图标按钮调出如图2所示的语句结构插入窗口,这也是Authorware 6.5的新增辅助设计工具之一。

三、程序语句代码范例

了解上面的一些程序语句编写基本知识和技巧后,我们来加深一下认识,尝试编写一段程序代码,在Authorware窗口中绘制一个饼状模拟分布图。

启动Authorware 6.5并新建一个a6p文件,在流程线上拖入一个计算图标,并输入以下程序代码:

--//相关变量初始化

orgx := 200

orgy := 200

radius := 150

pensize:=2

multiplier:=10

percentages:="30,15,20,35"

num_angles:=LineCount(percentages,",")

--//绘制饼状分布模拟图

repeat with i := 1 to num_angles

percentage := GetLine(percentages,i,i,",")

if i = 1 then

SetFrame(TRUE , RGB(255,0,0))

else if i=2 then

SetFrame(TRUE , RGB(0,255,0))

else if i=3 then

SetFrame(TRUE , RGB(0,0,255))

else if i=4 then

SetFrame(TRUE , RGB(255,255,0))

end if

start:=finish

finish:=finish+percentage

repeat with j:=start*multiplier to finish*multiplier

angle := (((50 - (j*(1/multiplier))) * Pi / 50))

x := SIN(angle) * radius

y := COS(angle) * radius

Line(pensize, orgx,orgy,orgx+x,orgy+y)

end repeat

total := total + percentage

end repeat

输入完毕后按快捷键Ctrl+R调试执行,您将看到窗口屏幕上自动绘制出一个饼状模拟分布图,如图3所示。

图 3

这里魔岩并不要求大家对上述的代码完全读懂(因此本文也不做详细分析),我们的重点是给大家一个感性认识,使大家了解并掌握Authorware 6.5程序语句与结构的编写特点和相关基础知识即可。