算法伪代码书写规则

时间:2023-05-09 17:21:04 买帖  | 投诉/举报

篇首语:本文由小编为大家整理,主要介绍了算法伪代码书写规则相关的知识,希望对你有一定的参考价值。

博客推行版本更新,成果积累制度,已经写过的博客还会再次更新,不断地琢磨,高质量高数量都是要追求的,工匠精神是学习必不可少的精神。因此,大家有何建议欢迎在评论区踊跃发言,你们的支持是我最大的动力,你们敢投,我就敢肝

写在前面

笔者一开始在学算法的时候经常把算法和编程语言误认为是一个东西,实际上算法更多的是一种思想,只是我们用编程语言去实现它

笔者大学学的是Java,所以更习惯用Java去实现,其实算法这个东西,用C,python,Java,JavaScript都可以实现

通俗地说解决某种问题的方法都叫算法,但是笔者在攻算法题的时候经常各种苦手实现不了

其实是因为笔者之前没有写伪代码的习惯,导致了原来两步走的路合并成一步走

那步子太大了肯定容易拉胯,伪代码实际上就是生活语言和计算机语言的桥梁

掌握了伪代码的技能,做算法题就会方便很多

因此笔者的建议是将伪代码的学习放在算法学习的第一课

基本内容

伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。每一行(或几行)表示一个基本操作。它不用图形符号,因此书写方便、格式紧凑,也比较好懂,便于向程序过渡。

伪代码的7个主要部分:

(1)算法名称

(2)指令序列

(3)输入/输出

(4)分支选择

(5)赋值

(6)循环

(7)算法结束

算法名称

两种表示算法的伪代码:

过程(Procedure)

函数(Function)

过程和函数的区别是:

过程是执行一系列的操作,不需要返回操作的结果,无返回数据;

函数是执行一系列的操作后,要将操作的结果返回,有返回数据。

算法伪代码的书写规则:

Procedure <算法名> ([<参数列表>])

Function <算法名> ([<参数列表>])

如: Procedure Hanoi_ Tower(

Function Fac(x) 表示名为Fac的一一个函数。

Function Prog(n)表示 名为Prog的一一个函数。

指令序列

指令序列是算法的主体。

指令序列的书写规则:

用Begin作为开始、用End作为结束;

用“”作为开始、用“/” 作为结束。

例如:

Begin           指令序列;End

或者:

          指令序列; ./

输出/输出

输入: Input

输出: Output 或Returm

分支选择

两种分支:

If<条件> Then指令序列/If <条件>Then指令序列1/else指令序列2/

赋值

用:=或者←作为赋值操作符,表示将赋值号右边的值赋值给左边的变量。

例如: x:=x+1

或:

y←x*x

循环

两种方式:计数式循环和条件式循环。

(1)计数式循环

For变量:=初值To终值指令/循环次数: (终值-初值+1)

(2)条件式循环

While (条件) do

指令

条件为真,则循环执行指令,直到条件为假。

算法结束

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

例如:

End Hanoi _Tower

End Fac

分别表示算法Hanoi Tower和Fac的结束。

总结

(1)赋值用箭头“←”

(2)for i←0 to 10 //for、while、if 后面的条件语句都不用加括号

do XXXXX //for后面必定要紧跟缩进的do

XXXXX

(3)while time<10

do xxxxx //while后面必定要紧跟缩进的do

xxxxx

(4)if i=10

then xxxx

else xxxx //else 和 then 要在对齐

(5)if i=10

then xxxx //if 后面必定跟上then,else后面不用跟then

elseif i=9

then xxxx

yyyy

else xxxx //else 跟在elseif 的 then 对齐

(6)elseif 要合并。

(7)同一嵌套等级的语句要对齐。

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

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

(10)写完的伪代码最后必须在每行伪代码前加上序号

在黑夜里梦想着光,心中覆盖悲伤,在悲伤里忍受孤独,空守一丝温暖。我的泪水是无底深海,对你的爱已无言,相信无尽的力量,那是真爱永在。我的信仰是无底深海,澎湃着心中火焰,燃烧无尽的力量,那是忠诚永在

以上是关于算法伪代码书写规则的主要内容,如果未能解决你的问题,请参考以下文章