`
sunqing0316
  • 浏览: 37545 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

软考进行时——伪代码中的约定

 
阅读更多

在伪代码的使用中有以下一些约定:

1)书写上的“缩进”表示程序中的分程序(程序块)结构;

2)while、for、repeat等循环结构和if、then、else条件结构与Pascal相同。然而,对for循环来说有一点小小的不同:在Pascal中,循环计数器变量在退出循环时是未定义的, 但在这里,在循环退出后,循环计数器的值仍然保持。于是,紧接着一个for循环之后,循环计数器的值就是第一个超出for循环终值的那个数字;

3)符号“#”表示后面部分是注释;

4)多重赋值i=j=e是将表达式e的值赋给变量i和j;

5)变量(如i,j和key等)是局部于给定过程的。在没有显示说明的情况下,我们不使用全局变量;

6)数组元素是通过“数组名[下标]”这样的形式来进行访问的。A[i]表示数组A的第i个元素,符号“..”用来表示数组中的一个取值范围;

7)复合数据一般组织成对象,它们是由属性(attribute)或域(field)所组成的。域的访问是由域名跟由方括号的对象名形式来表示。在表示数组元素和对象属性时,都要用到方括,一般来说,通过上下文就可以看出其含义;

用于表示一个数组或对象的变量被看作是指向表示数组或对象的数据的一个指针。对于某个对象x的所有域f,赋值y=x就使得f[y] = f[x]。更进一步,如果有f[x] = 3,则不仅有f[x] = 3,同时f[y] = 3。换言之,在赋值 y = x 后,x 和 y 指向同一个对象;

有时,一个指针不指向任何对象。这使,我们赋给它NULL;

8)参数采用按值传递方式:被调用的过程会收到参数的的一份副本。如果它对某个参数赋值的话,主调过程是看不见这一变动的。当对象被传递使,实际传递的是一个指向对象数据的指针,而对象的各个域则不被拷贝;

9)布尔运算符“and”和“or”都具有短路能力。亦即,当我们求表达式“x and y”的值时,首先计算x的值。如果x的值为FALSE,那么整个表达式的值就不可能为TRUE了,因而就无需再对y求值了。但是,如果x的值为TRUE的话,就必须进一步计算出y的值,才能确定整个表达式的值。类似地,在计算表达式“x or y”的值时,仅当x的值为FALSE时,才需要计算子表达式y的值。短路运算符允许我们写出如“x=/(不等于)NIL and f[x] = y“这样的布尔表达式,而不用担心当我们试图在x为NIL时计算f[x],会发生怎样的情况。


转自:http://blog.csdn.net/hmsiwtv/article/details/7633781


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics