算法<算法名>(变量i1,···,变量in.变量j,···,变量jn)
// <算法的概括说明>或者/* <算法的概括说明> */
<步骤名>.[<本步骤的概括说明>]
<操作1>//<操作1的解释>或者/*<操作1的解释>*/
或者(操作1的解释)或者<无解释>
···
<操作J1> // <操作J1的解释>或者/* <操作J1的解释> */
或者(操作J1的解释)或者<无解释>
···
<步骤名>.[<本步骤的概括说明>]
<操作1> //<操作1的解释>或者/*<操作1的解释>*/
或者(操作1的解释)或者<无解释>
···
<操作Jk> // <操作Jk的解释>或者/* <操作Jk的解释> */
或者(操作Jk的解释)或者<无解释>▎
(1)关于“<算法名>(变量i1,···,变量in.变量j,···,变量jn)”的解释
<算法名>是由字母和数字组成的有限字符串,并且字符串中的第一个符号必须是字母。
在变量表中,变量ik为输入变量.1≤k≤m,m≥0,当m=O时.表示无输入变量;变量jk为输出变量,1≤k≤n,n≥1。
(2)关于<算法的概括说明>的解释
在算法的变量表后对整个算法进行概括说明,说明中应包含算法的主要思想,对算法功能和其变量的解释等。
(3)关于算法步骤的解释
算法的每一步骤都要有步骤名,步骤名由<算法名或算法名缩写><数字>组成。
步骤名后面的方括号内是对该步骤所执行操作的高度概括。
方括号后是本步骤的一系列操作,每个操作由ADL语句给出,若某操作难于理解则需在其后对其做出解释。
(4)关于符号“ ▎”的解释
每个算法都需要用符号“ ▎”表示其被书写完毕,也就是说,符号“ ▎”作为对应算法被书写完毕的结束符。
注意算法不一定在符号“I”处运行结束。
(5) 可使用的算术运算符
+、-、*、x、/、DIV、MOD、L」(取地板运算,如Lx」的值是小于等于x的最大整数)、
「](取天棚运算,如「x]的值是大于等于x的最小整数).....
(6)关系、逻辑运算符、逻辑常量、集合运算符
可用的关系运算符(=、≠、<、>、≥、≤)逻辑运算符(AND OR NOT),逻排常量(true,false).集合运算符(∩、U、一(差)...)。
(7)结束符
通常每条语句(或每个操作)都用".”作为结束符,但在能判断语句结束的位置可略去“.”。
(8)关于注释语句
注释语句有以下3种形式:
1.较短的注释语句(注释内容不超过一行)用符号“//”开头,后面是具体注释的内容。
2.较长的注释语句用符号“/*”开头,中间是具体注释的内容,用符号“*/”结尾。
3.注释语句用左小括号“("开头,中间是具体的注释或说明内容,用右小括号“)”结尾。
(9)关于赋值语句
形如a←b,其中a是变量,b是表达式或变量;
a↔b表示交换变量a和变量b的内容;
a←b←c,表示既将c的值赋给变量a,又将其值赋给变量b。
(10)关于条件语句
1.IF(或如果,或若)<逻辑表达式> THEN(或“,则”)(语句...语句m).
2.IF(或如果,或若)<逻辑表达式>
THEN(或“,则")(语句...语句m).
ELSE(或“;否则”)(语句...语句n).
其中m,n≥1。
3.CASE DO
(<逻辑表达式 1>:(语句1...语句n).
···
<逻辑表达式m>:(语句...语句nm )).
其中,n≥1,m≥1,1≤i≤m。
(11)关于循环语句
1.WHILE<逻辑表达式>DO(语句1. ..语句n).
其中,n≥1。
2.FOR<变量>=<算术表达式1> T0<算术表达式2>STEP<算术表达式3>
DO(语句1. ... 语句n).
其中,n≥1。若<算术表达式3>=1,则“STEP<算术表达式3>"可略去。
3.FOR V<变量>∈<集合> DO (语句...语句n).路
其中,n≥1。
(12)关于转移语句
GOTO<步骤名>.
(13)关于EXIT语句
可用在通常的结束条件满足之前,用来结束WHILE或FOR循环的执行。
EXIT语句使得程序转移到紧接在包含EXIT的(最内层的)WHILE或者FOR循环后面的第一个语句。
(14)关于RETURN语句
RETURN语句有两种表达形式:
RETURN
或
RETURN<表达式>
第一种表达形式表示没有返回值,直接返回;第二种表达形式表示返回表达式的值,并返回。
若算法在紧邻符号“ ▎”的操作处结束,RETURN语句通常被省略。
(15)关于圆括号
当且仅当圆括号中只有1条语句时,圆括号可以省略。
(16)关于输人、输出语句
输人语句为
READ(x)
表示读取输人值赋给变量x。
输出语句为
PRINT( <表达式>)
或
PRINT<字符串常量>