文章目录

  • 伪代码
    • 优点:
    • 语法规则
      • 变量声明
      • 指令的表示
      • 表达式
      • 赋值语句
      • goto语句
      • 分支结构
      • 循环结构
      • 程序的结束
      • 注释风格
      • 函数的编写
  • 实例

伪代码

定义: 伪代码介于自然语言和编程语言之间,是一种描述算法的语言

优点:

  • 提高了代码的可读性
  • 充当了程序与算法或流程图之间的桥梁,也可当作粗略的文档
  • 可以让程序员更好的构建代码

语法规则

  • 每条指令占一行(esle if除外),指令后不跟任何符号
  • 缩进表示程序中的分支程序结构

变量声明

  • 定义变量的语句不用写出来,但必须在注释中给出

    a <- 5   //这里的a表示整形变量
    

指令的表示

  • 在算法中的某些指令或子任务可以用文字来叙述,例如,”设x是A中的最大项”,这里A是一个数组;或者”将x插入L中”,这里L是一个链表。这样做的目的是为了避免因那些与主要问题无关的细节使算法本身杂乱无章。

表达式

  • 算术表达式可以使用通常的算术运算符(+,-,*,/,以及表示幂的^)。逻辑表达式可以使用关系运算符 = 、≠、<、>、≤ 和 ≥,以及逻辑运算符与(and)、或(or)、非(not)

赋值语句

  • 赋值语句是如下形式的语句:a←b
    这里a是变量、数组项,b是算术表达式、逻辑表达式或指针表达式。语句的含义是将b的值赋给a。

    变量交换:若a和b都是变量、数组项,那么记号a<->b 表示a和b的内容进行交换。

goto语句

goto语句具有形式:

goto label(goto标号)

它将导致转向具有指定标号的语句。

分支结构

if i=10
    then xxxx
    else xxxx //else 和 then 要对齐
       
//或者
if i=10
    then xxxx //if 后面必定跟上then,else后面不用跟then
    elseif i=9 //elseif 要连在一起写
        then xxxx
        yyyy
    else  xxxx //else 跟在 elseif 的 then 对齐

循环结构

有两种循环指令:while和for。

while语句的形式是:

while time<10
    do  xxxxx //while后面必定要紧跟缩进的do
    xxxxx
    end

for语句的形式是:

for var init to limit by incr 
	do s
end

这里var是变量,init、limit和incr都是算术表达式,而s是由一个或多个语句组成的语句串。初始时,var被赋予init的值。假若incr≥0,则只要var≤limit,就执行s并且将incr加到var上。(假若incr<0,则只要var≥limit,就执行s并且将incr加到var上)。incr的符号不能由s来该改变。

程序的结束

  • exit语句可以在通常的结束条件满足之前,被用来结束while循环或者for循环的执行。exit导致转向到紧接在包含exit的(最内层)while或者for循环后面的一个语句。

  • return用来指出一个算法执行的终点;如果算法在最后一条指令之后结束,它通常是被省略的;它被用得最多的场合是检测到不合需要的条件时。return的后面可以紧接被括在引号的信息。

注释风格

  • 算法的注释在/**/之中

函数的编写

  • 函数的伪代码格式例子为:search(A,name), 参数类型可以不给出,但必须在注释中说明。

实例

  • 使用欧几里得算法,求出两个不全为0的负整数的最大公约数的伪代码
Euclid(m,n)
//使用欧几里得算法计算gcd(m,n),也就是最大公约数
//输入: 两个不全为0的非负整数m,n
//输出:m,n的最大公约数
//多写一句,前三句读起来的感觉有点像算法的定义
while n ≠ 0  
	do	
	r <- m mod n
	m <- n
	n <- r
	end
return m
//注意使用缩进

c

int Euclid(m,n){
int r;
while(n != 0){
r = m%n;
m = n;
n = r
}
return m;
}
  • 比较伪代码和编程语言的代码的差异

更多推荐

伪代码介绍