- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2A程序的灵魂——算 法zym
第2-A章 程序的灵魂 ——算法 教学目的 1、掌握算法的概念和算法的特性。 2、掌握算法的表示方法。 3、掌握结构化程序设计。 ?? 利用计算机解决问题的过程 一个程序应包括两个方面内容: 对数据的描述:即对程序中指定加工(运算)的各种类数据在计算机中的存储与组织形式的描述。高级语言中将这一复杂问题转换为简单、易为人们所接受的形式,即数据类型描述。 对操作的描述:即解决问题(加工数据)的方法、步骤的描述,即算法描述。 算法是设计程序进行问题求解的关键 数据:加工(运算)的对象; 算法(操作):对数据进行加工处理,以得到期望的结果的方法。 程序设计:“数据结构”和“操作步骤(即算法)”转化为程序描述—设计程序的关键。 数据结构与算法相互影响:同一问题所设计的数据结构不同,可能会导致不同的算法,将对程序的执行效率产生深远影响。因此,著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式: 数据结构+算法=程序 程序包括: 数据描述——数据结构 操作描述——算法 (厨师做菜过程中,配料与菜谱的关系) 2.1算法的概念 作任何事情都需要步骤 广义地说,算法是为解决一个问题而采取的方法和步骤。 本书中的算法——计算机算法。 “由计算机执行” 分类: 数值算法 求方程的根 求函数的定积分 非数值算法 图书检索 人事管理 行车调度管理 2.2 简单算法举例 例2.1-I 求1×2×3×4 ×5 人工解题(自然语言) 用计算机解题(自然语言) 设两个变量,p代表被乘数,i代表乘数,将每一步的乘积放在被乘数变量中。 例2.1-II 求1×3×5×7×9×11 算法只需要做很少的改动。 (自然语言) 例2.2判定2000~2500 年中的每一年是否为闰年,将结果输出。 闰年的条件(满足如下两个条件之一) 能被4整除,但不能被100整除.如:1996,2004 能被100整除, 又能被400整除.如:1600,2000 自然语言描述算法 例2.3 对一个大于或等于3的正整数,判断它是不是一个素数。 素数:除了1和本身之外,不能被其他任何整数整除的数。 判断规则:将n作为被除数,将2到(n-1)各个整数轮流作为除数,如果都不能被整除,则n是素数。 算法描述 2.3 算法的特性 1.有穷性 是指:有限的操作步骤内完成。 有穷性是算法的重要特性,任何一个问题的解决不论其采取什么样的算法,其终归是要把问题解决好。如果一种算法的执行时间是无限的,或在期望的时间内没有完成,那么这种算法就是无用和徒劳的,我们不能称其为算法。 2.3 算法的特性 2.确定性 包括:每个步骤确定 包括:步骤的结果确定 算法中的每一个步骤的目的应该是明确的,对问题的解决是有贡献的。如果采取了一系列步骤而问题没有得到彻底的解决,也就达不到目的,则该步骤是无意义的。 2.3 算法的特性 3.有零个或多个输入 与生活算法一致,程序设计中的算法应该有输入。当然,有些算法可以没有输入。 4.有一个或多个输出 程序算法的目的是为了解决问题,解决问题应该有结果,结果就是输出,没有结果的算法是没有意义的。 2.3 算法的特性 5.有效性 程序算法的每一步都应该能有效地执行。 例:若b=0,则a/b是无法执行的 2.4 怎样表示一个算法 自然语言表示算法 传统流程图表示算法 结构化流程图(N-S)表示算法 计算机语言表示算法 2.4.1 自然语言表示法 自然语言表示法是用自然语言叙述一个问题的求解过程。 汉语、英语等。 优点:自然语言描述的算法明确、详细,是人们常用的描述解决问题的步骤的一般方法。 缺点:冗长,歧义。 2.4.2 流程图表示法 用矩形框、菱形、有向线等表示各种操作及流程的走向 定义 顺序结构:按照书写顺序依次执行语句。 选择结构:按照条件判断选择执行语句。 循环结构:通过条件控制循环执行语句。 2.4.4结构化流程图(N-S)表示算法 顺序、选择、循环结构 2.4.6 计算机语言表示算法 严格遵守所用语言的语法规则 例2.20: 用C语言表示5! 2.5 结构化程序设计方法 如果一个程序仅包含三种基本结构(由这些基本结构顺序组成),则称为结构化程序。 结构化程序设计方法的基本思路:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。 结构化程序设计的基本原则: 自顶向下、逐步细化 模块化设计:分而治之 结构化编码:用高级语言实现三种基本结构 优点:便于编写、阅读、修改和维护 N-S结构化流程图是对传统流程图的改进。 在N-S结构化流程图中取消了流程线,规定算法只能自上而下执行,算法的
文档评论(0)