大家好,欢迎来到IT知识分享网。
前言
伪代码是半角式化
、不标准的语言。我们可以通过它将整个算法运行过程的结构用接近自然语言的形式描述出来(这里,你可以使用任何一种你熟悉的文字,中文,英文
等等,关键是你把你程序的意思表达出来)。 借助伪代码, 我们可以更好的表述算法,
而不用拘泥于具体的实现;同样,当我们学习别人的算法时,也不会因C、C++、C#、JAVA等语言语法的差异,而影响我们理解算法的思想。
输入
赋值语句用符号←表示,x←exp表示将exp的值赋给x,其中x是一个变量,exp是一个与x同类型的变量或表达式(该表达式的结果与x同类型);多重赋值i←j←e是将表达式e的值赋给变量i和j,这种表示与j←e和i←e等价。例:
x←20*(y+1) 相当于C语言中的 x =
20*(y+1);
x←y←30 相当于C语言中的x = y = 30;
百度百科上给出了a←3;
变量
变量不需声明,但都相当于是所在函数内部的局部变量,不能不加显示的说明就使用全局变量;
数组
A[j]指示数组A的第j个元素。符号“
…”用来指示数组中值的范围。例如:
A[1…j]表示含元素A[1], A[2], … ,
A[j]的子数组;
程序块
程序块在伪代码程序语句上中表现为一种“缩进”,表示程序中的分支程序结构,同一模块的语句有相同的缩进量,次一级模块的语句相对与其父级模块的语句缩进;
选择结构
选择语句用if-then-else来表示,例:
if (Condition1) then [ Block 1 ]
else if (Condition2) then [ Block 2 ] else [ Block 3 ]
循环结构
while循环:
while c do
s
end
for循环:
for var init to limit by incr
do
s
end
注:
var是变量,init、limit和incr都是算术表达式,而s是由一个或多个语句组成的语句串。初始时,var被赋予init的值。
limit是结束时的临界值:假若incr≥0,则只要var≤limit,就执行s并且将incr加到var上;假若incr<0,则只要var≥limit,就执行s并且将incr加到var上。
incr的符号不能由s来该改变。
例:
for
循换变量 初值 to 终值 step 步长 do
s
end
注:“step 步长”对应的是模板中的“by incr”
返回值
函数值利用 “return (函数返回值)”
语句来返回,调用方法与Pascal类似;过程用 “call 过程名”语句来调用;
例如:
1. x ← t + 10
2. y ← sin(x)
3. call CalValue(x,y)
注:参数用按值传递方式传给一个过程(待确认)
exit语句可以在通常的结束条件满足之前,被用来结束while循环或者for循环的执行。exit导致转向到紧接在包含exit的(最内层)while或者for循环后面的一个语句。
return用来指出一个算法执行的终点;如果算法在最后一条指令之后结束,它通常是被省略的;它被用得最多的场合是检测到不合需要的条件时。return的后面可以紧接被括在引号的信息。
每行指令结尾后无符号
每一条指令占一行,每一行指令后不跟任何符号(C语言中的语句要以分号结尾)
注释
因为伪代码属于类C语言,所以注释采用C语言中的 “//
”。请注意,此处与网上大多博客不同
注:我看网上很多说“符号后的内容表示注释”,但是当我在论文中用伪代码描述算法,使用表示注释时,却被导师指为错误。所以目前还是使用C
语言中的 “ // ”表示注释
大小写
变量名和保留字不区分大小写
参数赋值
参数采用按值传递方式,即在被调用过程中的赋值x←y对主调过程来说是不可见的。但是,赋值f[x] = 3却是可见的。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15110.html