程序设计-第二章.pptVIP

  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章 程序的灵魂——算法 主讲:刘卫红 本章要点 算法概念 算法举例 算法特性 算法表示 结构化程序设计方法 2.1 算法概念 什么是算法 -为解决某一应用问题而采用的解题步骤 -主要解决“做什么”和“怎么做”的问题 什么是程序 -程序就是用某种程序设计语言描述的解题算法。 2.2 算法举例 2.2 算法举例 2.3 算法特性 2.4 算法表示 用自然语言表示算法(容易产生歧义) 用流程图表示算法 用N-S流程图表示算法 用伪代码表示算法 用计算机语言表示算法 2.4.1 用自然语言表示算法 第一步:输入x和y的值 第二步:比较x和y的值,如果x大于y,则输出x的值,否则输出y的值。 2.4.2 用流程图表示算法 常用传统流程图符号见教材P20图2.3 2.4.3 用N-S流程图表示算法 由于传统的流程图中有箭头,对于复杂的算法,箭头绕来绕去会影响算法的可读性。所以,需要对传统流程图进行改进。在此,需要介绍三种基本结构:顺序、选择、循环结构。已经证明,任何复杂的问题都可以三种基本算法结构来描述 2.4.3 用N-S流程图表示算法(续) 2.4.5 用伪代码表示算法 伪代码(pseudo code):介于自然语言与计算机语言之间的文字符号算法描述工具。主要用于设计算法的过程中使用,修改方便。 2.4.6 用计算机语言表示算法 由于书写算法的最终目的是用计算机解题,也就是用计算机实现算法,而计算机是无法识别流程图和伪代码的,只有用计算机语言书写的程序才能被计算机执行,因此,在用流程图或伪代码描述一个算法后,还要将它转换成计算机语言程序。 用计算机语言表示算法必须严格遵循所用语言的语法规则。 写出了C程序仍然只是描述了算法,并未实现算法,只有运行程序时才是实现算法。 2.4.6 用计算机语言表示算法 2.5 结构化程序设计方法 如果一个程序仅包含这三种基本结构(由这些基本结构顺序组成),则称为结构化程序。 结构化程序设计的基本原则: 采用自顶向下、逐步细化的方法进行设计; 采用模块化原则和方法进行设计。即将大型任务从上向下划分为多个功能模块,每个模块又可以划分为若干子模块,然后分别进行模块程序的编写; 每个模块都是用结构化程序实现,即都只能由三种基本结构组成,并通过计算机语言的结构化语句实现。 作业 2.4 (1)(3) 2.5 2.6 2.8(3) * * liuweihong@ahut.edu.cn C 语言程序设计 目的、要求:掌握流程图和用N-S图描述算法。掌握用C语言来描述算法 程序=算法+数据结构+程序设计方法+语言工具 算法+数据结构=程序 例1 求1×2 ×3 ×4 ×5。 S1:1→p,2→i S2:p ×i →p S3:i+1→i S4:若i>5,算法结束;否则转S2。 例2 判2000~2500间的闰年。 S1:2000→year year不能被4整除,N year能被4整除,但不能被100整除,Y year能被100整除,又能被400整除,Y 其它,N ① ② ③ ④ S2:若year不能被4整除,则输出year不是闰年,转S6 S3:year能被4整除,不能被100整除,则输出year是闰年,转S6 S4: year能被100整除,又能被400整除,则输出year是闰年;否则输出不是闰年。然后转S6 S5:输出year不是闰年 S6:year+1→year S7:若year≤2500,转S2;否则算法停止。 有穷性 算法应该在有限的步骤内完成,而不能是无限的。 确定性 算法中的每一个步骤都应当是确定的,无歧义的。 有零个或多个输入 有一个或多个输出 有效性 例如:输出两个数中的最大数 易于理解,但冗长,不够精确,难于描述复杂算法。 例如当描述“输出10个数中最大数”的算法时,会冗长、难于理解 N Y z= y z= x x y ? 开始 输入x和y 结束 输出z 起止框 输入/输出框 判断框 处理框 流程线 A B 结构化流程图 A B 1)顺序结构 2)选择结构(又称选取结构、分支结构) P A B 真 假 A B 真 P 假 结构化流程图 只能执行A或B之一,两条路径汇合在一起然后出口。 3)循环结构(又称重复结构) 分为当型循环结构和直到型循环结构。 P A 真 假 A 当P为真 A 直到P为真 P A 假 真 当型(while型)循环结构 直到(until型)型循环结构 K A1 A2 Ai An K=k1 K=k2 K=ki K=kn 由选择结构派生的多分支选择结构 用以上3种基本结构设计的程序,能处理任何复杂的问题。 输入x、y的值 xy T F

文档评论(0)

精品资源 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档