怎么样编写伪代码 应该怎么做?

来源:互联网
责任编辑:王嘉善
 综合 
字体:

在本文中:理解伪代码的基本概念写好伪代码创建伪代码文档示例

本文教你如何为计算机程序创建伪代码文档。伪代码本质上是创建非编程语言,用来对代码的目的进行概述。[1]

部分 1理解伪代码的基本概念

以Write Pseudocode Step 1为标题的图片

1了解什么是伪代码。伪代码用来对代码进行逐步描述,并且可以逐渐地将其转化为编程语言。很多程序员在编写技术要求较高的代码之前,都会使用伪代码来规划算法的功能。

伪代码是一种非正式的指南,一种用来思考程序问题的工具,也是一种有助于你和其他人交流想法的方式。

以1494423 2为标题的图片

2理解伪代码为什么有用。伪代码用来展示算法应该如何工作。程序员通常使用伪代码作为编程的中间步骤,介于初始规划阶段和编写实际可执行代码阶段之间。伪代码的其他一些用途包括:

描述算法应当如何工作。伪代码可以说明程序中在哪里可以或必需使用特定架构、机制或技术。

向非技术用户解释处理流程。计算机需要非常严格的输入语法来运行程序,但是普通人(尤其是非程序员)可能会觉得更流畅、更主观的语言更容易理解,这种语言会清楚地说明每一行代码的目的。

在团队环境下设计代码。高级软件架构师通常会在设计中包含伪代码,帮助程序员解决遇到的复杂问题。如果你和其他程序员一起开发程序,你会发现伪代码有助于明确你的目的。

以Write Pseudocode Step 3为标题的图片

3记住,伪代码是主观且不标准的。伪代码未必要使用某一套语法,但是使用标准伪代码结构会让其他程序员更容易理解,这是一种常见的行业规范。[2]如果你自己编写一个项目,最重要的是伪代码可以帮助你组织思路,并制定计划。

如果你和其他人一起开发项目——无论他们是你的同事、初级程序员还是非技术合作伙伴,至少要使用一些标准结构是很重要的,这样其他人就可以很容易地理解你的目的。

如果你参加了大学、编程训练营或一家公司的编程课程,可能会接受伪代码“标准”的测试。这种标准在不同机构和老师之间经常有所不同。

伪代码的主要目标就是清晰明了,如果你遵循既定的编程规范,伪代码可能会对你有所帮助。随着你把伪代码变成实际代码时,你会需要将它转换成一种编程语言——因此伪代码有助于你构建代码纲要。

以Write Pseudocode Step 4为标题的图片

4专注于伪代码的主要目的。当你写伪代码时,很容易就写成了代码。记住伪代码的目的——解释程序的每一行应该做什么——这样才能让你在创建伪代码文档时保持清醒。

部分 2写好伪代码

以1494423 5为标题的图片

1使用纯文本编辑器。虽然你可能忍不住使用文字处理程序(如Microsoft word)或类似程序来创建富文1本文档,但是伪代码需要尽量减少格式来保持简洁。

纯文本编辑器包括记事本(Windows)和TextEdit(Mac)。

以1494423 6为标题的图片

2首先写下这个流程的目的。用一两行来解释代码的用途将有助于建立文档的其余部分,而且还可以不用向每个阅读伪代码的人解释程序的功能。

以1494423 7为标题的图片

3每行只写一条语句。伪代码中的每个语句应该只表示计算机的一个操作。在大多数情况下,如果合理编写了任务列表,那么每个任务对应一行伪代码。考虑写出任务列表,然后将这个列表转换为伪代码,再逐渐将该伪代码转变为实际的、计算机可读的代码。[3]

以1494423 8为标题的图片

4有效使用空白和缩进。在文本的“块”之间使用空格有助于隔离伪代码的不同部分,而对每个块的不同部分进行缩进表明这些伪代码属于缩进较少代码段。

例如,关于输入数字的伪代码部分应该都在同一个“块”中,而下一部分(例如,关于输出的部分)应该在不同的块中。

以1494423 9为标题的图片

5必要时大写关键指令。根据伪代码需求或发布伪代码的环境,可能需要将实际代码中保留的指令大写。

例如,你在伪代码中使用“if”和“then”指令,你最好将它们改为“IF”和“THEN”(例如,“IF输入数字THEN输出结果”)。

以1494423 10为标题的图片

6使用简单的术语。记住,你写的是项目将要做什么,而不是总结代码本身。如果你编写伪代码是为了向不懂编程的客户提供演示,或者作为面向初学者的项目,那么这一点尤其重要。 [4]

你甚至可能想完全不用任何编程指令,而是用通俗易懂的语言来定义每一行的流程。例如,“如果输入是奇数,输出‘Y’”可以写成“如果用户输入一个奇数,则显示‘Y’”。

以1494423 11为标题的图片

7保持伪代码的合理顺序。虽然用于修饰伪代码的语言应当保持简洁,但仍然需要按照代码执行的顺序来保持伪代码每个部分的顺序。

以1494423 12为标题的图片

8所有事物都要描述清楚。必须要完整地描述流程中发生的一切。伪代码语句类似于简单的英语语句。伪代码通常不使用变量,而是描述程序应该如何处理接近真实世界的对象,如帐号、名称或交易额。[5]

以1494423 13为标题的图片

9使用标准编程结构。即使伪代码没有标准,如果使用现有编程(顺序程序设计)语言的结构,其他程序员也更容易理解你的步骤。[6]使用“if”、“then”、“while”、“else”和“loop”等术语,和你用的编程语言中的使用方式相同。考虑以下结构:

if“条件”then“指令”——意思是给定的指令只有在给定的条件为真时才会执行。在本例中,“指令”是指程序将执行的步骤,而“条件”是指在执行程序之前,数据必须满足的一组特定标准。[7]

while“条件”do“指令”——意思是该指令应该一遍又一遍地重复,直到条件不再为真。[8]

do“条件”while条件——这个结构和“while“条件”do“指令””结构很相似。在第一种情况下,执行指令前会检查条件,但是在第二种情况下,指令会先执行;因此,在第二种情况下,指令将至少执行一次。

函数名(参数):指令——意思是每次在代码中使用某个名称时,它都是某个指令的缩写。“参数”是可以用来解释说明指令的变量列表。

以1494423 14为标题的图片

10整理伪代码部分。如果你有大量的伪代码,这些代码定义同一块中的其他伪代码片段,那你最好使用方括号或其他标识符来包含所有内容。

括号——标准方括号(例如,[code])和大括号(例如,{code})都可以用来包含大段伪代码。

编程时,可以通过在注释左侧输入“//”来添加注释(例如,//这是一个临时步骤)。在编写伪代码时,你也可以使用同样的方法,把那些不适合放到编码文本里的内容作为注释写下来。

以Write Pseudocode Step 15为标题的图片

11仔细检查伪代码的可读性和清晰度。读完全文后你应该可以回答下列问题:

不熟悉这个流程的人能理解这个伪代码吗?

伪代码的编写方式是否便于将其转换为计算语言?

伪代码是否描述了整个流程而没有任何遗漏?

伪代码中使用的每个对象名称都能被目标读者清楚地理解吗?

如果你发现伪代码的某个部分需要详细阐述,或者它没有明确地列出其他人可能会忘记的步骤,那么你应该返回这个部分并添加必要的信息。

部分 3创建伪代码文档示例

以1494423 16为标题的图片

1打开纯文本编辑器。如果不想安装新程序,可以使用默认程序,即“记事本” (Windows)或TextEdit(Mac)。

以1494423 17为标题的图片

2定义程序。虽然不是必须的,但是在文档顶部写一两句话可以从一开始就清楚地表明程序的目的:

这个程序将会向用户请求问候。如果问候匹配特定响应,则回复该响应;否则就会被拒绝。

以1494423 18为标题的图片

3写下开头语句。第一条命令——也就是程序运行时应当做的第一件事——同时也是第一行:

print greeting  "你好,陌生人!"

以1494423 19为标题的图片

4添加下一行。上下行之间通过按"? " Enter留出空间,然后创建下一行代码。在本例中,应当由用户发起下一行对话:

print prompt  按“回车键”继续<user presses "Enter">

以1494423 20为标题的图片

5添加操作调用。本例中,用户将会被提示输入问候。

print call-to-action  “你好吗?”

以1494423 21为标题的图片

6给用户显示响应列表。同样,在本例中,按"? " Enter后,用户将会看到可选择的响应列表。

display possible responses   "1.不错。"  "2.很好!"  "3.不太好。"

以1494423 22为标题的图片

7请求用户输入。在这里程序会要求用户输入一个响应:

print request for input   "输入最适合你的选项数字:"

以1494423 23为标题的图片

8为用户的输入创建“if”指令。由于用户有多种响应方式可选择,所以还要根据用户选择的响应来添加多种结果:

if "1"  print response    "挺好的!" if "2"  print response    "太棒了!" if "3"  print response    "放松点,弱鸡!"

以1494423 24为标题的图片

9添加错误消息。如果用户选择了错误的响应,可以准备一条错误消息:

if input isn't recognized  print response    "你不太听话啊,难道不是吗?"

10添加程序的其他组件。仔细检查文档,添加或充实任何细节,确保你自己和任何阅读文档的人都能理解它的含义。根据这个方法的例子,最终的伪代码文档应该是这样的:Image:1494423 25.jpg|center]]

这个程序将会向用户请求问候。如果问候匹配特定响应,则回复该响应;否则就会被拒绝。 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    "你不太听话啊,难道不是吗?"

以1494423 26为标题的图片

11保存文档。Ctrl+S(Windows)或"? " Command+S(Mac),输入名称,并点击“保存”。

小提示

伪代码最适合那些代码行数达到几百至几千的复杂程序。

警告

创建程序时,伪代码不能代替实际代码。伪代码只能用来给代码应该做的事情提供参考。

根据您访问的内容,您可能还对以下内容感兴趣,希望对您有帮助:

伪代码怎么编写呢

答:在伪代码中,每一条指令占一行(else if 例外,),指令后不跟任何符号(Pascal和C中语句要以分号结尾); 书写上的“缩进”表示程序中的分支程序结构。这种缩进风格也适用于if-then-else语句。用缩进取代传统Pascal中的begin和end语句来表示程序的...

求伪代码写出算法!如何编写伪代码?伪代码的意义...

答:楼主好好加油!

如何用C的代码写伪代码?

答::所谓伪代码,就是那些用来表示算法的文字段落。 你想写一个程序,不可能就直接写代码,你得先写思路,用来暂时记录你思路的文字符号一般用简单的词语来。 比如: 初始化 字符串 A; 输入字符串 A; 如果 检测字符串 A 成功 就 打开文件

编程中如何使用汉语书写伪代码?

答:伪代码独立于具体的编程语言,同样也独立于所表述的语言,用英文、汉语是一样的。只不过作为母语,使用起来简洁便利、表述清楚而已,但并不影响伪代码要表现的逻辑过程。

数据结构书中编写的是伪代码,那么应该怎样学习呢

答:数据 结构, 代码, 学习 求采纳

如何自己用PHP编写伪代码程序

答:伪代码写的代码和编程写的代码思想是一样的,只是语法上伪代码比较随意点,在编译器里不能直接编译。反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

伪代码的写法

答:类Pascal语言的伪代码的语法规则是: 在伪代码中,每一条指令占一行(else if,例外)。指令后不跟任何符号(Pascal和C中语句要以分号结尾)。 伪代码实例如下: IF 九点以前 THEN do 私人事务; ELSE 9点到18点 THEN 工作; ELSE 下班; END IF ...

用C语言描述的伪代码怎么看,怎么写?

答:伪代码主要是为了方便各种语言来实现,像你这里的用C实现就是: struct Node{ int number; struct Node *Next;};ElementType :元素类型 Element:元素名 Position :位置,定义Next指针 QQ已私信给你~

伪代码是不是只为了简单的描述一种编写编程语言的...

答:伪代码其实就是描述算法,给人看的,不是给机器看的,自己修补下就能用了

实际编程前画个流程图好还是写伪代码好

答:画图是真实业务抽象设计成程序模型的能力,这个能力培养起来,可以走架构的路。 类图,可以把复杂的业务关系梳理成业务对象之间的关系,再抽象到程序设计上。 时序图,可以把用户交互到服务端处理的完整调用链规划清楚,对于复杂的业务非常适用...


www.book1234.com true http://www.book1234.com/10/4336/108476.html report 40154 怎么样编写伪代码应该怎么做?,在本文中:理解伪代码的基本概念写好伪代码创建伪代码文档示例本文教你如何为计算机程序创建伪代码文档。伪代码本质上是创建非编程语言,用来对代码的目的进行概述。[1]步骤部分1理解伪代码的基本概念1了解什么是伪代码。伪代码用来对代码进行逐步描述,并且可以逐...
娱乐时尚
科技资讯
历史文化
真视界
旅游美食
精彩图文
我爱我车
母婴健康
关于本站 | 广告服务 | 手机版 | 商务合作 | 免责申明 | 招聘信息 | 联系我们
Copyright © 2004-2018 book1234.com All Rights Reserved. 布客网 版权所有
京ICP备10044368号-1 京公网安备11010802011102号
教育考试: 学历财经建筑 医药公考资格外语电脑作文招聘中小学留学 文档 移民 文库专栏23问答中心z资讯z资讯1资讯涨资讯涨资讯1资讯问答图书馆知识IT编程数码信息解决方案信息中心IT科技问答新闻中心软件教室设计大全网络相关英语学习开发编程考试中心参考范文管理文库营销中心站长之家IT信息中心商学院数码大全硬件DIY企业服务网吧在线百科硬件知识手机平板汽车游戏家电精彩摄影现代家居IT女人经验健康养生猎奇创业攻略教育学习历史时尚潮流最近更新涨知识