伪码-伪代码的定义以及实现

伪代码的写法

伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java,etc)实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。

它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java, C++,C, Dephi 等等)它更类似自然语言。它是半角式化、不标准的语言。我们可以将整个算法运行过程的结构用接近自然语言的形式(这里,你可以使用任何一种你熟悉的文字,中文,英文 等等,关键是你把你程序的意思表达出来)描述出来. 使用伪代码, 可以帮助我们更好的表述算法, 不用拘泥于具体的实现.

人们在用不同的编程语言实现同一个算法时意识到,他们的实现(注意:这里是实现,不是功能)很不同。尤其是对于那些熟练于不同编程语言的程序员要理解一个(用其他编程语言编写的程序的)功能时可能很难,因为程序语言的形式限制了程序员对程序关键部分的理解。这样伪代码就应运而生了。

当考虑算法功能(而不是其语言实现)时,伪代码常常得到应用。计算机科学在教学中通常使用虚拟码,以使得所有的程序员都能理解。

综上,简单的说,让人便于理解的代码。不依赖于语言的,用来表示程序执行过程,而不一定能编译运行的代码。在数据结构讲算法的时候用的很多。

语法规则

例如,类Pascal语言的伪代码的语法规则是: 在伪代码中,每一条指令占一行(else if,例外)。指令后不跟任何符号(Pascal和C中语句要以分号结尾)。书写上的“缩进”表示程序中的分支程序结构。这种缩进风格也适用于if-then-else语句。用缩进取代传统Pascal中的begin和end语句来表示程序的块结构可以大大提高代码的清晰性;同一模块的语句有相同的缩进量,次一级模块的语句相对与其父级模块的语句缩进。

算法的伪代码语言在某些方面可能显得不太正规,但是给我们描述算法提供了很多方便,并且可以使我们忽略算法实现中很多麻烦的细节。通常每个算法开始时都要描述它的输入和输出,而且算法中的每一行都给编上号码,在解释算法的过程中会经常使用算法步骤中的行号来指代算法的步骤。算法的伪代码描述形式上并不是非常严格,其主要特性和通常的规定如下:

1) 算法中出现的数组、变量可以是以下类型:整数、实数、字符、位串或指针。通常这些类型可以从算法的上下文来看是清楚的,并不需要额外加以说明。

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

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

4) 赋值语句是如下形式的语句:a<-b 。

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

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

6) goto语句具有形式

goto label(goto标号)

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

7) 条件语句有以下两种形式:

if c then s或者

if c then s

else s′

这里c是逻辑表达式,s和s′是单一的语句或者是被括在do和end之间的语句串。对于上述两种形式,假若c为真,则s被执行一次。假若c为假,则在第一种形式中,if语句的执行就完成了,而在第二种形式中,执行s′。在所有的情况下,控制就进行到了下一个语句,除非在s或s′中的goto语句使控制转向到其它地方。

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

while语句的形式是

while c do

s

end

这里c是逻辑表达式,而s是由一个或更多个语句组成的语句串。当c为真时,执行s。在每一次执行s之前,c都被检查一下;假若c为假,控制就进行到紧跟在while语句后面的语句。注意,当控制第一次达到while语句时,假若c为假,则s一次也不执行。

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来该改变。

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

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

11) 算法中的注释被括在/* */之中。诸如read和output之类的各种输入或者输出也在需要时被用到。

伪代码实例

伪代码只是像流程图一样用在程序设计的初期,帮助写出程序流程。简单的程序一般都不用写流程、写思路,但是复杂的代码,最好还是把流程写下来,总体上去考虑整个功能如何实现。写完以后不仅可以用来作为以后测试,维护的基础,还可用来与他人交流。但是,如果把全部的东西写下来必定可能会让费很多时间,那么这个时候可以采用伪代码方式。比如:

IF 九点以前 THEN

do 私人事务;

ELSE 9点到18点 THEN

工作;

ELSE

下班;

END IF



作者:W3Cschool
链接:https://www.jianshu.com/p/814771a96ff5
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

### 回答1: 伪码是一种用于描述算法的伪程序语言,类似于一种高级伪代码。下面是一个伪码示例,用于测量距离的Matlab代码。 ``` 输入:测量单元A位置(x1,y1),测量单元B位置(x2,y2) 输出:测量单元A到B的距离 函数 calculateDistance(Ax, Ay, Bx, By) dx = Bx - Ax // 计算x轴上的距离差 dy = By - Ay // 计算y轴上的距离差 distance = sqrt(dx^2 + dy^2) // 计算直线距离 返回 distance // 返回计算结果 结束函数 主程序: // 输入测量单元位置 输入 Ax, Ay 输入 Bx, By // 调用函数进行距离计算 result = calculateDistance(Ax, Ay, Bx, By) // 输出距离结果 输出 "测量单元A到B的距离是:" + result 结束主程序 ``` 这个伪码描述了一个测量单元A和测量单元B之间的距离计算过程。主程序先输入测量单元A和B的位置信息,然后调用名为calculateDistance的函数进行距离计算。该函数接受测量单元A和B的坐标作为参数,然后计算两个坐标点之间的直线距离。最后,主程序输出计算结果,显示测量单元A到B之间的距离。 ### 回答2: 伪码测距是一种只描述算法逻辑的计算机语言,常用于算法设计和分析。伪码不是一种特定的编程语言,而是一种更接近自然语言的语法,方便开发者描述算法的流程和逻辑。 下面是一个用伪码描述的测距算法的示例,该算法可以在Matlab中实现: ``` 输入:物体在图像中的像素坐标(x,y) 输出:物体到摄像机的距离(d) 1. 设置摄像机的内参矩阵K和物体的真实尺寸 2. 计算图像中物体的像素边长L(可以通过计算物体在图像中的边界框的宽度和高度得到) 3. 使用内参矩阵K和像素边长L计算物体到摄像机的距离d 伪码中的第1步是设置相机的内参矩阵K和物体的真实尺寸。内参矩阵K包括相机的焦距、图像中心坐标和像素尺寸等信息。物体的真实尺寸是我们已知的或通过其他方式测量得到的。 第2步计算物体的像素边长L,可以通过计算物体在图像中的边界框的宽度和高度来得到。 第3步使用内参矩阵K和像素边长L计算物体到摄像机的距离d。这一步是根据相机成像原理和几何关系来计算的。 在Matlab中实现该算法时,可以根据伪码逐步编写相应的函数或脚本。例如,可以编写一个函数来计算像素边长,然后调用这个函数来计算物体到摄像机的距离。另外,还需要根据实际情况初始化相机的内参矩阵K和物体的真实尺寸。 ``` 请注意,以上仅是一个示例,实际的测距算法可能会更加复杂,具体的实现需要根据具体情况进行调整。 ### 回答3: 伪码是一种描述计算机程序的简化形式,它并不是真正的编程语言,而是一种指导思想。下面是一个用伪码描述测距的MATLAB代码示例: ``` 1. 定义输入参数:传感器测量值measured_value,标定参数calibration。 2. 定义函数calculate_distance,输入参数为measured_value和calibration。 3. 根据传感器测量值和标定参数,计算真实距离real_distance。 4. 返回真实距离real_distance。 5. 定义主程序。 6. 提示用户输入传感器测量值。 7. 读取用户输入的传感器测量值并存入变量measured_value。 8. 提示用户输入标定参数。 9. 读取用户输入的标定参数并存入变量calibration。 10. 调用函数calculate_distance,输入参数为measured_value和calibration。 11. 将返回的真实距离存入变量distance。 12. 显示真实距离distance给用户。 13. 结束主程序。 ``` 以上是一个基本的测距伪码,根据实际需求,可以根据实际情况进行更改和调整。伪码的目的是概述程序的基本流程,具体的实现细节需要在编程语言中进行。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值