伪代码

伪代码是一种近似于编程语言的书写方式,用于描述算法或程序的逻辑结构,以人类可读的方式展示代码的思路和步骤,而不关注具体的语法细节。伪代码本身没有统一的、确切的语法规范,它更像是一种约定俗成的写法,用于描述算法和程序的逻辑流程。不同的人和不同的场景可能会使用稍微不同的伪代码风格和约定。一般来说,伪代码会尽量简洁明了地描述算法的步骤和逻辑,使用类似于常见编程语言的语法元素,如条件语句、循环语句、变量赋值等,以便更容易理解和转换为实际的编程代码。但是,具体的伪代码语法规则可能因人而异,没有一个统一标准的规范。

算法名称

两种表示算法的伪代码

  1. 过程(Procedure):过程是执行一系列操作,不需要返回操作的结果,无返回数据。

语法格式:Procedure <算法名>([<参数列表>])

  1. 函数(Function):函数是执行一系列的操作后,要将操作的结果返回,有返回数据。

语法格式:Function <算法名>([<参数列表>])

指令序列

指令序列是算法的主体

书写规则:用Begin作为开始,用End作为结束;或者用“{”作为开始,用“}”作为结束

Begin
指令序列;
End
//或者
{
指令序列;
}

输入/输出

输入:Input

输出:Output 或 Return

分支选择

总体有两种分支,类似于C中的if语句 和if else语句用法是一样的,可以嵌套。

//第一种
If<条件> Then
{
指令序列;
}
//第二种
If<条件> Then
{
指令序列1;
}
Else
{
指令序列2;
}

声明与赋值

  1. 声明

书写规则:var 变量名 : 数据类型

  1. 赋值

有两种 可以用 := 或者 <- 作为赋值操作符,相当于C语言中的 =

var x:integer
x:=x+1;
x<-x+1;

循环

两种方式:计数式循环(for循环)和条件式循环(while循环)。

  1. 计数式循环
For 变量:=初值 To 终值
{
指令序列;
}
  1. 条件式循环
While (条件) do
{
指令序列;
}

算法结束

关键字End的后面加上算法名称,表示算法结束,是算法的最后一句。

End DFS

举例

冒泡排序

procedure Bubble(n:integer);
var temp,i,j:integer;
change:boolean;
begin
for i:=1 to n-1 do
begin
change:=false;
for j:=n-1 downto i do
if a[j]>a[j+1] then
begin
change:=true;
temp:=a[j]; a[j]:=a[j+1]; a[j+1]:=temp;
end;
if not(change) then exit;
end;
end;

鸣谢

教你写一手漂亮的伪代码(详细规则&简单实例)-CSDN博客