- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
大学计算机基础(第6版);第6章算法与程序设计基础;6.1算法;6.1算法;6.1.3算法的表示;1.自然语言;传统流程图包括:
①指明实际处理操作的处理符号,它包括根据逻辑条件确定要执行的路径的符号;
②指明控制流的流线符号;
③便于读、写程序流程图的特殊符号。
表5-1是用传统流程图描述算法时常用的符号。
通常在各种图符中加上简要的文字说明,以进一步表明该步骤所要完成的操作。;用流程图描述算法时,流程图的描述可粗可细,总的原则是:根据实际问题的复杂性,流程图达到的最终效果应该是,依据此图就能用某种程序设计语言实现相应的算法(即完成编程)。
①起止框:表示流程开始中结束。表示流程开始或结束。
②输入/输出框:表示输入或输出。
③处理框:表示对基本处理功能的描述。
④判断框:根据条件是否满足,在几个可以选择的路径中,选择某一路径。
⑤流向线:表示流程的路径和方向。
⑥连接点:用于将画在不同地方的流程连接起来。
【例6-2】求一元二次方程的根。
算法分析:首先,定义三个变量a、b、c,将三个数依次输入到a、b、c中,另外,再准备一个delta表示要求出的差别式,r和s分别表示-b/2a和sqrt(abs(delta))/2a的大小。算法分析的流程图,如图6-1所示。
(1)开始,并输入系数a的值。
(2)判断系数a的值是否为0,是则重新输入。
(3)并输入系数b和c的值。
(4)求判别式
(5)判断delta是否大于或等于0。如果delta≥0,则执行步骤6,否则执行步骤7。;(6)如果delta≥0,求出r=-b/2a,s=sqrt(delta)/2a,输出r+s和r-s。
(7)如果delta<0,求出r=-b/2a,s=sqrt(-delta)/2a,输出r+si和r-si。
(8)结束。;3.N-S图;【例6-3】输入三个数,然后输出其中最大的数。
首先,定义三个变量a、b、c,将三个数依次输入到a、b、c中,另外,再准备一个max表示要求出的最大数。
由于计算机一次只能比较两个数,我们首先把a与b比,大的数放入max中,再把max与c比,又把大的数放入max中。最后,把max输出,此时max中装的就是a、b、c三数中最大的一个数。算法可以表示如下:
①输入a、b、c。
②若ab,则max←a;否则max←b。
③若cmax,则max←c。
④输出max,max即为最大数。
求解三个数中最大数的N-S图,如图6-3所示。
;4.PAD图;PAD图的图形元素,如表5-2所示。;【例6-5】某序列的第一项为0,第二项为1,以后的奇数项为其前两项之和;偶数项为其前两项之差。画出求解该序列的前50项的PAD图。
分析:设序列的第一项用S1表示,且S1=0;第二项用S2表示,且S2=1。然后生成序列的第三项S3、第四项S4等,生成一项输出一项。在生成序列一项时要考虑该项是偶数项还是奇数项。该序列项(用W表示)生成的规律如下:;伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言实现,如Pascal、C、Java等。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。介于自然语言与编程语言之间。
用伪代码写出的算法很容易修改。但是用伪代码写的算法不如流程图直观,可能会出现逻辑上的错误。
在伪代码中,每一条指令占一行(elseif,例外)。指令后不跟任何符号(Pascal和C中语句要以分号结尾)。
伪代码只是像流程图一样用在程序设计的初期,帮助写出程序流程。比如:
ElseIf9点到17点then
工作;
Else
下班;
Endif
这样不但可以达到文档的效果,同时可以节约时间。更重要的是,使结构比较清晰,表达方式更加直观。用伪代码写算法并无固定的、严
文档评论(0)