- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第02章 程序的灵魂——算法
第二章 程序的灵魂——算法 2.1算法的概念 2.2简单算法举例 2.3算法的特性 2.4怎样表示一个算法 2.5、结构化程序设计方法 一个程序应包括以下两方面的内容: (1)对数据的描述。在程序中要指定的类型和数据的组织形式,即数据结构。 (2)对操作的描述。即操作步骤,也称算法。 数据是操作对象,操作的目的是对数据进行加工,以获得期望的结果。 著名计算机科学家沃思提出公式 程序=数据结构+算法 但在一个程序员在设计程序时,还应用一定的设计方法和计算机语言。因此: 程序=数据结构+算法+程序设计方法+语言工具和环境。 这四要素的关系:算法是灵魂、数据结构是加工对象、语言是工具、程序设计方法是程序设计的步骤。 2.1算法的概念 算法:广义地说,为解决一个问题而采取的方法和步骤,就称为算法。 例如:太极拳的动作的图解、歌曲的乐谱等 本书所关心的是计算机的算法,即能让计算机执行的算法。 计算机算法分两大类: 数值运算算法:目的是求数值的解。(有比较成熟的算法程序) 非数值运算算法:主要用于事物处理方面。(该算法较复杂,一般无固定算法,典型的事物处理有程序,其它需具体问题具体分析) 2.2简单算法举例 例2.5 :对于一个大于3的正整数n,判断它是不是一个素数。(n被2,3,4……n-1除,若都不能整除,则n是素数) 算法: S1: 输入n的值 S2:m=2 S3:n被m除,得余数r S4:如果r=0,表示n能被m整除,则打印“n不是素数”,算法结束;否则执行s5 S5:m=m+1 S6:如果m=n-1,返回s3;否则打印“n不是素数”然后结束。 P15 例2.1、P17例2.3 2.3算法的特性 1、? 有穷性:一个算法应包含有限的操作步骤,而不能无限。 2、? 确定性:算法的含义应当是唯一的,而不应当产生歧义性。 3、? 有零个或多个输入:输入是指在执行算法时需从外界取得必要信息。 4、? 有一个或多个输出:算法的目的是为了求解,“解”就是输出。没有输出的算法是没意义的。 5、? 有效性:算法的每一步都能有效执行,并得到确定的结果。 对不熟悉计算机程序设计的人来说,可用别人设计好的算法,把算法当成一个“黑箱子”。对一个程序设计人员来说,必须会设计算法,并根据算法编程序。 2.4怎样表示一个算法 常用的有:自然语言、传统流程图、结构化流程图、伪代码、PAD图等。 1、? 用自然语言表示算法:编程者日常使用的语言。 优点:通俗易懂。 缺点:文字冗长,易出现“歧义性”。对分支和循环的算法的描述不方便。 2、? 用流程图表示算法:是用一些图框表示各种操作。 美国国家标准化协会ANSI规定了一些常用的流程图符号。见P20 图2.3 起止框、输入输出框、判断框、处理框、流程线、连接点、注释框 流程图的组成:①表示相应操作的框;②带箭头的流程线;③框内外必要的文字说明 优点:直观形象,易于理解。 缺点:对流程线的使用没有严格限制,使流程图变得毫无规律。 算法的表示 图2.3 三种基本结构和改进的流程图: 为了解决流程图可随意转向的弊端,人们规定几种基本结构,使流程图可用这几种结构顺序地表示算法。 1966年,Bohra和Jacopini提出了以下三种基本结构,已得到人们的认可。 (1)顺序结构。P25 图2.14 (2)选择结构,亦称分支结构。 P25 图2.15和图2.16 (3)循环结构,亦称重复结构。有两类循环结构。 ? 当型(while):先判断,后执行 P25 图2.17(a) 直到型(until):先执行,后判断。P25 图2.17(b) 三种基本结构的共同特点: (1)只有一个入口 (2)只有一个出口 (3)结构内的每一部分都有机会被执行。 (4)结构内不存在死循环。 符合上述4个特点的结构都可作为基本结构。由基本结构组成的算法属于“结构化”算法,它不存在无规律转向,只在基本结构内才允许存在分支和向前或向后转向。由基本结构可组成结构化程序。 3、用N-S流程图表示算法 1973年由美国学者I.Nassi和B.Shneiderman提出的一种结构化的流程图。全部写在一个矩形框内,框内还可包含从属于它的框,取消了流程框。亦称盒图或N-S图。 N-S图的基本流程图符号: (1)顺序结构 P27 图2.24 (2)选择结构 P27 图2.25 (3)循环结构 P27 图2.26(当型)和P27 图2.27(直到型)。 4、用伪代码表示:伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。 优点:克服了流程图画起来费事,不易修改的缺点。便于书写,易于修改。 5、用计算机语言表示算法:用计算机语言编写程序 完成一项工作,包括设计(描述)算法和实现算
文档评论(0)