步骤
-
了解什么是伪代码。 伪代码用来对代码进行逐步描述,并且可以逐渐地将其转化为编程语言。很多程序员在编写技术要求较高的代码之前,都会使用伪代码来规划算法的功能。
伪代码是一种非正式的指南,一种用来思考程序问题的工具,也是一种有助于你和其他人交流想法的方式。
-
理解伪代码为什么有用。 伪代码用来展示算法应该如何工作。程序员通常使用伪代码作为编程的中间步骤,介于初始规划阶段和编写实际可执行代码阶段之间。伪代码的其他一些用途包括:
- 描述算法应当如何工作。伪代码可以说明程序中在哪里可以或必需使用特定架构、机制或技术。
- 向非技术用户解释处理流程。计算机需要非常严格的输入语法来运行程序,但是普通人(尤其是非程序员)可能会觉得更流畅、更主观的语言更容易理解,这种语言会清楚地说明每一行代码的目的。
- 在团队环境下设计代码。高级软件架构师通常会在设计中包含伪代码,帮助程序员解决遇到的复杂问题。如果你和其他程序员一起开发程序,你会发现伪代码有助于明确你的目的。
-
记住,伪代码是主观且不标准的。 伪代码未必要使用某一套语法,但是使用标准伪代码结构会让其他程序员更容易理解,这是一种常见的行业规范。 [2] X 研究来源 如果你自己编写一个项目,最重要的是伪代码可以帮助你组织思路,并制定计划。
- 如果你和其他人一起开发项目——无论他们是你的同事、初级程序员还是非技术合作伙伴,至少要使用一些标准结构是很重要的,这样其他人就可以很容易地理解你的目的。
- 如果你参加了大学、编程训练营或一家公司的编程课程,可能会接受伪代码“标准”的测试。这种标准在不同机构和老师之间经常有所不同。
伪代码的主要目标就是清晰明了,如果你遵循既定的编程规范,伪代码可能会对你有所帮助。随着你把伪代码变成实际代码时,你会需要将它转换成一种编程语言——因此伪代码有助于你构建代码纲要。
-
专注于伪代码的主要目的。 当你写伪代码时,很容易就写成了代码。记住伪代码的目的——解释程序的每一行应该做什么——这样才能让你在创建伪代码文档时保持清醒。广告
-
使用纯文本编辑器。 虽然你可能忍不住使用文字处理程序(如Microsoft word)或类似程序来创建富文1本文档,但是伪代码需要尽量减少格式来保持简洁。
纯文本编辑器包括记事本(Windows)和TextEdit(Mac)。
-
首先写下这个流程的目的。 用一两行来解释代码的用途将有助于建立文档的其余部分,而且还可以不用向每个阅读伪代码的人解释程序的功能。
-
每行只写一条语句。 伪代码中的每个语句应该只表示计算机的一个操作。在大多数情况下,如果合理编写了任务列表,那么每个任务对应一行伪代码。考虑写出任务列表,然后将这个列表转换为伪代码,再逐渐将该伪代码转变为实际的、计算机可读的代码。 [3] X 研究来源
-
有效使用空白和缩进。 在文本的“块”之间使用空格有助于隔离伪代码的不同部分,而对每个块的不同部分进行缩进表明这些伪代码属于缩进较少代码段。
- 例如,关于输入数字的伪代码部分应该都在同一个“块”中,而下一部分(例如,关于输出的部分)应该在不同的块中。
-
必要时大写关键指令。 根据伪代码需求或发布伪代码的环境,可能需要将实际代码中保留的指令大写。
- 例如,你在伪代码中使用“if”和“then”指令,你最好将它们改为“IF”和“THEN”(例如,“IF输入数字THEN输出结果”)。
-
你甚至可能想完全不用任何编程指令,而是用通俗易懂的语言来定义每一行的流程。例如,“如果输入是奇数,输出‘Y’”可以写成“如果用户输入一个奇数,则显示‘Y’”。
-
保持伪代码的合理顺序。 虽然用于修饰伪代码的语言应当保持简洁,但仍然需要按照代码执行的顺序来保持伪代码每个部分的顺序。
-
所有事物都要描述清楚。 必须要完整地描述流程中发生的一切。伪代码语句类似于简单的英语语句。伪代码通常不使用变量,而是描述程序应该如何处理接近真实世界的对象,如帐号、名称或交易额。 [5] X 研究来源
-
使用标准编程结构。 即使伪代码没有标准,如果使用现有编程(顺序程序设计)语言的结构,其他程序员也更容易理解你的步骤。 [6] X 研究来源 使用“if”、“then”、“while”、“else”和“loop”等术语,和你用的编程语言中的使用方式相同。考虑以下结构:
- if“条件”then“指令” ——意思是给定的指令只有在给定的条件为真时才会执行。在本例中,“指令”是指程序将执行的步骤,而“条件”是指在执行程序之前,数据必须满足的一组特定标准。 [7] X 研究来源
- while“条件”do“指令” ——意思是该指令应该一遍又一遍地重复,直到条件不再为真。 [8] X 研究来源
- do“条件”while条件 ——这个结构和“while“条件”do“指令””结构很相似。在第一种情况下,执行指令前会检查条件,但是在第二种情况下,指令会先执行;因此,在第二种情况下,指令将至少执行一次。
- 函数名(参数):指令 ——意思是每次在代码中使用某个名称时,它都是某个指令的缩写。“参数”是可以用来解释说明指令的变量列表。
-
整理伪代码部分。 如果你有大量的伪代码,这些代码定义同一块中的其他伪代码片段,那你最好使用方括号或其他标识符来包含所有内容。
- 括号——标准方括号(例如,[code])和大括号(例如,{code})都可以用来包含大段伪代码。
- 编程时,可以通过在注释左侧输入“//”来添加注释(例如,
//这是一个临时步骤
)。在编写伪代码时,你也可以使用同样的方法,把那些不适合放到编码文本里的内容作为注释写下来。
-
仔细检查伪代码的可读性和清晰度。 读完全文后你应该可以回答下列问题:
- 不熟悉这个流程的人能理解这个伪代码吗?
- 伪代码的编写方式是否便于将其转换为计算语言?
- 伪代码是否描述了整个流程而没有任何遗漏?
- 伪代码中使用的每个对象名称都能被目标读者清楚地理解吗?
- 如果你发现伪代码的某个部分需要详细阐述,或者它没有明确地列出其他人可能会忘记的步骤,那么你应该返回这个部分并添加必要的信息。
广告
-
打开纯文本编辑器。 如果不想安装新程序,可以使用默认程序,即“记事本” (Windows)或TextEdit(Mac)。
-
定义程序。 虽然不是必须的,但是在文档顶部写一两句话可以从一开始就清楚地表明程序的目的:
这个程序将会向用户请求问候。如果问候匹配特定响应,则回复该响应;否则就会被拒绝。
-
写下开头语句。 第一条命令——也就是程序运行时应当做的第一件事——同时也是第一行:
print greeting "你好,陌生人!"
-
添加下一行。 上下行之间通过按 ↵ Enter 留出空间,然后创建下一行代码。在本例中,应当由用户发起下一行对话:
print prompt 按“回车键”继续 <user presses "Enter" >
-
添加操作调用。 本例中,用户将会被提示输入问候。
print call-to-action “你好吗?”
-
给用户显示响应列表。 同样,在本例中,按 ↵ Enter 后,用户将会看到可选择的响应列表。
display possible responses "1.不错。" "2.很好!" "3.不太好。"
-
请求用户输入。 在这里程序会要求用户输入一个响应:
print request for input "输入最适合你的选项数字:"
-
为用户的输入创建“if”指令。 由于用户有多种响应方式可选择,所以还要根据用户选择的响应来添加多种结果:
if "1" print response "挺好的!" if "2" print response "太棒了!" if "3" print response "放松点,弱鸡!"
-
添加错误消息。 如果用户选择了错误的响应,可以准备一条错误消息:
if input isn ' t recognized print response "你不太听话啊,难道不是吗?"
-
添加程序的其他组件。 仔细检查文档,添加或充实任何细节,确保你自己和任何阅读文档的人都能理解它的含义。根据这个方法的例子,最终的伪代码文档应该是这样的:
这个程序将会向用户请求问候。如果问候匹配特定响应,则回复该响应;否则就会被拒绝。 print greeting "你好,陌生人!" print prompt 按“回车键”继续 <user presses "Enter" > print call-to-action "你好吗?" display possible responses "1.不错。" "2.很好!" "3.不太好。" print request for input "输入最适合你的选项数字:" if "1" print response "挺好的!" if "2" print response "太棒了!" if "3" print response "放松点,弱鸡!" if input isn ' t recognized print response "你不太听话啊,难道不是吗?"
-
保存文档。 按 Ctrl + S (Windows)或 ⌘ Command + S (Mac),输入名称,并点击“保存”。广告
小提示
- 伪代码最适合那些代码行数达到几百至几千的复杂程序。
广告
警告
- 创建程序时,伪代码不能代替实际代码。伪代码只能用来给代码应该做的事情提供参考。
广告
参考
- ↑ https://whatis.techtarget.com/definition/pseudocode
- ↑ https://www.techopedia.com/definition/3946/pseudocode
- ↑ http://faculty.ccri.edu/mkelly/COMI1150/PseudocodeBasics.pdf
- ↑ http://www.bfoit.org/itp/Pseudocode.html
- ↑ https://www.youtube.com/watch?v=D0qfR606tVo
- ↑ https://www.geeksforgeeks.org/how-to-write-a-pseudo-code/
- ↑ https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.ikjc300/ifthen.htm
- ↑ https://users.csc.calpoly.edu/~jdalbey/SWE/pdl_std.html
广告