算法C语言程序设计(谭浩强第三)分析.pptVIP

算法C语言程序设计(谭浩强第三)分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 2.4 结构化程序设计方法 结构化程序设计方法强调程序设计风格和程序结构的规范化,提倡 清晰的结构。 一个复杂的问题,难以一下子写出一个层次分明、结构清晰、算法正确的程序。 结构化程序设计方法的基本思路是:把一个复杂的问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。 为保证程序满足结构化程序设计,可以采取如下方法: 自顶向下 逐步细化 模块化设计 结构化编码 * 对于一个具体问题一般有两种方法 自顶向下、逐步细化 自下而上、逐步积累 例如:写文章、建造房屋 提倡采用自顶向下、逐步细化的程序设计方法,其过程是将问题求解由抽象逐步具体化的过程。 特点:考虑周全,结构清晰,层次分明,作者容易写,读者容易看。如果发现某一部分中有一段内容不妥,需要修改,只需找出该部分修改有关段落即可,与其它部分无关。 注意:用这种方法便于验证算法的正确性,在向下一层展开之前应仔细检查本层设计是否正确,只有上一层是正确的才能向下细化。 * 模块设计的方法 是一种“分而治之”的思想,把一个大任务分为若干个子任务,每一个子任务就相对简单了。 拿到一个程序模块以后,根据程序模块的功能将它划分为若干个子模块,如果这些子模块的规模还嫌大,还再可以划分为更小的模块。这个过程采用自顶向下方法来实现。 子模块一般不超过50行。 划分子模块时应注意模块的独立性,即:使一个模块完成一项功能,耦合性愈少愈好。 结构化编码 将设计好的算法用计算机语言来实现,实现时使用的是与三种基本结构对应的语句。 * 作业 教材p15 5、6 教材p36 4(4)、5(4)、7 * 第二章 算法 算法的概念 算法的特性 算法的表示方法 结构化程序设计方法 * 引言: 一、一个程序应包括两个方面的内容: 对数据的描述:数据结构(data structure) 对操作的描述:算法(algorithm) 著名计算机科学家沃思提出一个公式:  数据结构 + 算法 = 程序 数据结构+算法+程序设计方法+语言工具 完整的程序设计应该是: 描述数据的类型、 数据的组织形式 描述对数据的操作步骤 程序设计方法:结构化程序设计方法 语言工具:c语言 * 二、简单的程序设计一般包括: 1、确定数据结构 2、确定算法 3、编码 4、调试程序 5、整理并写出文档资料 * 2.1 算法的概念 例如:描述太极拳动作的图解,就是太极拳的算法。 一首歌曲的乐谱,也可以称为该歌曲的算法。 1、算法定义:广义地说,为解决一个问题而采取的方法和步 骤,就称为“算法”。 2、对同一个问题,可以有不同的解题方法和步骤。算法决定 事情的成败、效率和代价的高低。 算法的时空效率 选择既运算快、内存开销小的算法 3、计算机算法可分为两大类别: 数值运算算法:求数值解,例如求方程的根 非数值运算算法:包括的面十分广泛,如图书检索、人事管理、行车调度管理等。 高斯算法 * 2.2 算法的特性 (1)有穷性。一个算法应包含有限的操作步骤,不能是无限的。 (2)确定性。算法中的每一个步骤都应当是确定的,而不应当是 含糊的、模棱两可的。对于相同输入必须得到相同结果。 (3)有零个或多个输入。所谓输入是指在执行算法时需要从外界取得必要的信息。 (4)有一个或多个输出。算法的目的是为了求解,“解”就是输出。 (5)有效性。算法中的每一个步骤都应当能有效地执行,并得到确定的结果。 * 2.3 算法的表示 为了表示一个算法,可以用不同的方法。归纳为两大类: (1)文字 (2) 图形(符号) 常用的方法有: 自然语言 传统流程图 N-S流程图 伪代码 PAD图等。 * 2.3.1 用带序号的自然语言直接表示算法 (例2.1-例2.5) 自然语言就是人们日常使用的语言,可以是汉语或英语或其它语言。用自然语言表示通俗易懂,但文字冗长,容易出现“歧义性”。 * [例2.1]求1×2×3×4×5 算法1: 步骤1:先求1×2,得到结果2。 步骤2:将步骤1得到的乘积2再乘以3,得到结果6。 步骤3:将6再乘以4,得24。 步骤4:将24再乘以5,得120。 如果要求1×2×…×1000,则要写999个步骤 算法2:上述算法太繁琐,我们找一种通用的表示方法。 s1:设变量p,代表被乘数,p=1; s2:设变量i, 代表乘数,i=2; s3:使p×i,乘积仍放在被乘数变量p中,可表示为:p× i

文档评论(0)

四月 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档