
伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java,etc)实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。
它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java, C++,C, Dephi 等等)它更类似自然语言。它是半角式化、不标准的语言。我们可以将整个算法运行过程的结构用接近自然语言的形式(这里,你可以使用任何一种你熟悉的文字,中文,英文 等等,关键是你把你程序的意思表达出来)描述出来 使用伪代码, 可以帮助我们更好的表述算法, 不用拘泥于具体的实现
人们在用不同的编程语言实现同一个算法时意识到,他们的实现(注意:这里是实现,不是功能)很不同。尤其是对于那些熟练于不同编程语言的程序员要理解一个(用其他编程语言编写的程序的)功能时可能很难,因为程序语言的形式限制了程序员对程序关键部分的理解。这样伪代码就应运而生了。
当考虑算法功能(而不是其语言实现)时,伪代码常常得到应用。计算机科学在教学中通常使用虚拟码,以使得所有的程序员都能理解。
例如,类Pascal语言的伪代码的语法规则是: 在伪代码中,每一条指令占一行(else if,例外)。指令后不跟任何符号(Pascal和C中语句要以分号结尾)。书写上的“缩进”表示程序中的分支程序结构。这种缩进风格也适用于if- then-else语句。用缩进取代传统Pascal中的begin和end语句来表示程序的块结构可以大大提高代码的清晰性;同一模块的语句有相同的缩进量,次一级模块的语句相对与其父级模块的语句缩进。
伪代码只是像流程图一样用在程序设计的初期,帮助写出程序流程。简单的程序一般都不用写流程、写思路,但是复杂的代码,最好还是把流程写下来,总体上去考虑整个功能如何实现。写完以后不仅可以用来作为以后测试,维护的基础,还可用来与他人交流。但是,如果把全部的东西写下来必定可能会让费很多时间,那么这个时候可以采用伪代码方式。比如:
原代码用“Do…End Do”语句表示
i←1
S←0
Do
S←S+i
i←i=1
Until i>10
EndDo
Print S
其流程图为:
画图是真实业务抽象设计成程序模型的能力,这个能力培养起来,可以走架构的路。
类图,可以把复杂的业务关系梳理成业务对象之间的关系,再抽象到程序设计上。
时序图,可以把用户交互到服务端处理的完整调用链规划清楚,对于复杂的业务非常适用,还可以用这个时序图直接生成代码(EA)
数据流,可以把业务对象之间的数据扭转关系梳理清楚,方便开发和沉淀产物。
这些图,主要面向负责的业务逻辑或者技术难点。
如果是简单的增删改,没啥复杂功能,是没有必要去画的,顶多就是画一个数据结构。
再说说伪代码
相较于画图的难度,伪代码可能更容易被入门程序员接受,因为比较具象了。每个方法级别输入输出,方法体内需要的逻辑设想好,写好就行。
伪代码也是代码规划的一种,比较适合入门。但是缺点就是没办法从宏观交付看整体结构、成员之间的关系,设计产出的内容变动会比较频繁。
关于伪代码使用
最近经常能在日报上看见一些关于后台开发过程中暴露出来的一些问题的反馈,同时表示比较关心。
有幸的是,我曾经也从事了一段时间后台逻辑代码的编写工作,对此有一些自己的理解:后台逻辑要求思路要清晰,思考要全面,编码基本上是尾声步骤。
这里我简单描述一下自己的认知:
1 拿到需求之后,迅速开始思考。
2 条条大路通罗马。能实现的方法很多,取最短的。
3 确定思路,清空思维,发散思考,撰写伪代码。
4 探讨逻辑,倒行逆施,完美回归。
5 编码。
6 测试。
关于伪代码我想多说几句。伪代码可以是一系列专业术语逻辑、一张流程图、一段描述文字,没有具体的规定,只要能程序的意思表达出来就行。我个人比较倾向“易语言”方式。
这里随便举个生活中开灯为例,用程序实现。
需求:让灯泡亮起来
思路:开关——灯亮
伪代码:
if(开关)
{
//调用检测是否有电接口,true继续,false返回
//调用检测线路是否通畅,同上
//调用检测灯泡是否正常,同上
//改变灯泡状态——亮
}
else{
//退出程序
}
例子不是很好,但是别人已经能看出来这个程序的过程,下一步的代码实现思路很清晰了,无论什么时候,我们拿到的时候随时可以编码。
我想说的是,我们在做后台逻辑编码之前,最好能以任何一种形式将自己的思路伪代码描述出来,接下来不急于去编码。或者更复杂的大家团队在一起把伪代码完成。不论怎么一种状态,总之是要把实现逻辑很清晰地描述出来,反复推敲,团队讨论,确定在没有漏洞或者是任何可发异常均以预处理的情况下,便可以按照这样的思路开始编码。
编码之前先构思,比起边写边构思,风险会小很多,当然也不会中途被暂停思考。
过程:
定义:S=0,
"For i From 1 To 9 Step 2" 循环调用,定义i从1到9,每做一次加2,即:i依次是1,3,5,7,9每一次S=2S+i例如:i=1时,S=20+1=1;i=3时,S=21+3=5;i=5时,S=25+5=15;i=7时,S=215+7=37;
"If S>20 Then S=S-10" 意思是说:如果S>20,就执行S=S-10;例如:当i=1,3,5时S均没有大于20,故直接跳过;当i=7时,S=37>20,则执行S=37-10=27,当i=9时,S=227+9=63>20,∴S=63-10=53
“End For" 结束循环!
“Print S”打印S 53
输出的结果是:53
以上就是关于c语言程序设计的算法用伪代码描述过程是怎样的全部的内容,包括:c语言程序设计的算法用伪代码描述过程是怎样的、将下列问题的算法改用伪代码中的“Do…End Do”语句表示,并画出其流程图、实际编程前画个流程图好还是写伪代码好等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)