codeye
2022/09/22阅读:52主题:默认主题
伪代码
如何编写伪代码。初学者指南 Ekaabo : 欢迎--尼日利亚约鲁巴部落的说法
第一部分:介绍
"棕色木质马鞍凳椅上的各色笔的延时照片" 作者:Mark Rabe on Unsplash 为什么使用伪代码? 原型是产品的早期样品、模型或发布,目的是为了概念测试和学习。它们帮助我们学习,而不需要完全实施我们的解决方案。在为我们的应用程序开发用户界面时,我们在最终界面之前会有几个原型。其中的一些例子是线框、图形设计和模拟图。这同样适用于编写技术代码。为复杂的目的直接写代码可能会导致时间的浪费。造成这种情况的原因从不恰当的算法到含糊不清的程序流程。为了防止这种情况的发生,我们可以使用伪代码(Pseudocode)。
什么是伪代码? 伪代码是对计算机程序或算法的一种非正式的高级描述。它是用符号代码写成的,在执行之前必须翻译成一种编程语言。
是否有替代伪代码的方法? 伪代码有一些替代品。其中一些是流程图,Drakon-charts和统一修改语言(UML)图表。它们可以达到目的,但相对而言,它们需要更多的资源。
第二部分:语句 语句被定义为指示计算机执行一个特定动作的指令。在编写伪代码时,我们将把单数指令称为语句。
在编写伪代码时,我们假设语句的执行顺序是从上到下。在使用控制结构、函数和异常处理时,这种情况会有所改变。
数学运算 数学运算是解决方案开发的组成部分。它们允许我们操作我们所存储的值。下面是常见的数学符号。
Assignment: ← or :=
Example: c ← 2πr, c := 2πr
Comparison: =, ≠, <, >, ≤, ≥
Arithmetic: +, −, ×, /, mod
Floor/ceiling: ⌊, ⌋, ⌈, ⌉
a ← ⌊b⌋ + ⌈c⌉
Logical: and, or
Sums, products: Σ Π
Example: h ← Σa∈A 1/a
赋值。←或:= 例如:c ← 2πr, c := 2πr
比较: =, ≠, <, >, ≤, ≥
运算。+, -, ×, /, mod
Floor/ceiling:: ⌊, ⌋, ⌈, ⌉
a ← ⌊b⌋ + ⌈c⌉
逻辑:和、或
求和,求积。Σ Π 例子:h ← Σa∈A 1/a
关键词
关键词是由程序保留的一个词,因为这个词有特殊的含义。关键词可以是命令或参数。每种编程语言都有自己的关键词(保留字)。关键词不能作为变量名使用。
在伪代码中,它们被用来表示常见的输入-输出和处理操作。它们都是用大写字母写的。
START:这是你的伪代码的开始。 输入(INPUT)。这是通过打字或通过输入设备从用户那里获取的数据。 READ / GET。这是在从数据文件中读取数据时使用的输入。 print, display, show: 这将把你的输出显示在屏幕上或相关的输出设备上。 COMPUTE, CALCULATE, DETERMINE: 这是用来计算一个表达式的结果。 SET, INIT: 用于初始化数值 INCREMENT, BUMP: 增加一个变量的值 降级。减少变量的值 第三部分。条件语句 在算法开发过程中,我们需要评估表达式的语句,并根据表达式是否评估为真或假来执行指令。以下是伪代码中使用的一些常见条件。
if - else if - else 这是一个条件,用于提供在满足某个条件时要执行的语句。这也适用于多个条件和不同的变量。
下面是一个带有一个条件的if语句
IF you are happy
THEN smile
ENDIF
这里是一个带有else部分的if语句。如果 "如果 "条件没有得到满足,"否则 "允许一些语句被执行。
IF you are happy THEN
smile
ELSE
frown
ENDIF
我们可以添加额外的条件来执行不同的语句,如果满足的话。
IF you are happy THEN
smile
ELSE IF you are sad
frown
ELSE
keep face plain
ENDIF
CASE
如果你很高兴 THEN
微笑
ELSE 如果你悲伤
皱眉
否则
保持面色平静
ENDIF
案例 如果我们想将一个变量与几个条件进行比较,可以使用案例结构。
INPUT color
CASE color of
red: PRINT "red"
green: PRINT "green"
blue: PRINT "blue"
OTHERS
PRINT "Please enter a value color"
ENDCASE
中文
INPUT color
CASE的颜色为
红色:PRINT "red"
绿色:PRINT "green"
蓝色:PRINT "blue"
其他
PRINT "请输入一个颜色值"
ENDCASE
OTHERS子句及其语句是可选的。条件通常是数字或字符
第四部分:迭代 迭代就是重复一组指令,以便产生一连串的结果。我们进行迭代是为了实现某个目标。
FOR every month in a year
Compute number of days
ENDFOR
中文
FOR结构
FOR循环接收一组元素,并为每个元素运行循环内的代码。
FOR一年中的每个月
计算天数
ENDFOR
WHILE结构 与FOR循环类似,while循环是一种重复代码块的方式,只要预定义的条件保持为真。与FOR循环不同的是,while循环是根据条件保持多久为真来进行评估的。
为了避免while循环无限运行的情况,我们在每个迭代中添加一个操作来处理值。这可以通过增量、减量等方式进行。
PRECONDITION: variable X is equal to 1
WHILE Population < Limit
Compute Population as Population + Births — Deaths
ENDWHILE
中文
PRECONDITION:变量X等于1
WHILE Population < Limit
前置条件:变量X等于1
当人口小于极限时
计算人口为人口+出生人数-死亡人数
ENDWHILE
第五部分:函数 当解决高级任务时,有必要在不同的地方将概念分解成语句块。当有关的语句服务于一个特定的目的时,这一点尤其正确。为了重复使用这些代码,我们创建了函数。然后我们可以在每次需要运行这些函数的时候调用它们。
Function clear monitor
Pass In: nothing
Direct the operating system to clear the monitor
Pass Out: nothing
Endfunction
中文
函数clear monitor
传入:无
指示操作系统清除监视器
传出:无
结束函数
为了在伪代码中模拟一个函数调用,我们可以使用Call关键字
调用:清除监视器 第六部分:程序包装 在我们的伪代码中写了几个函数后,我们发现需要把所有的东西都包装成一个容器。这是为了提高可读性,使执行流程更容易理解。
为了做到这一点,我们把我们的代码包装成一个程序。一个程序可以被定义为一组指令,在执行时可以完成一个特定的任务。
PROGRAM makeacupoftea
END
中文
程序 makeacupoftea
结束
第7部分:异常处理 异常是指在程序执行过程中发生的、扰乱指令正常流程的事件。这些事件是不受欢迎的。
我们需要观察这些事件,并执行代码块以应对它们。这就是所谓的异常处理。
BEGIN
statements
EXCEPTION
WHEN exception type
statements to handle exception
WHEN another exception type
statements to handle exception
END
中文
BEGIN
语句
异常事件
当异常类型
语句来处理异常
当另一个异常类型出现时
语句来处理异常
结束
第八部分:结论 伪代码没有技术规则。它的目的是使人可读,并且仍然传达意义和流程。
有不同的指南和教程更倾向于特定语言的伪代码,其中的例子有Fortran
风格的伪代码、 Pascal
风格的伪代码、C
风格的伪代码和Structured Basic
风格的伪代码。
作者介绍