- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2-5 结构化程序设计方法 自顶向下的程序设计方法 结构化程序设计的总体思想是采用模块化结构,自上而下,逐步求精。即首先把一个复杂的大问题分解为若干相对独立的小问题,如果小问题仍较复杂,则可以把这些小问题继续分解。这样不断分解下去,直到最终获得的小问题可以直接使用三种基本结构表示为止。然后对每一个小问题编写出一个功能上相对独立的程序块来,这种程序块称为模块。最后将每个模块统一组装起来,获得复杂问题的解。这就是自上而下,逐步求精的程序设计方法。 C程序设计(第三版) wangbg866@163.com 山东科技大学信息学院网络工程系 * * * * * 第二章 程序的灵魂——算法 本章要点 算法的概念以及特点 算法的表示方法 结构化程序设计方法 主要内容 2.1 算法的概念 2.2 简单算法举例 2.3 怎样表示一个算法 2.4 结构化程序设计方法 2-1 算法的概念 一个程序应该包含哪些内容? 数据结构:对数据的描述,确定数据的类型以及组织形式。 算法:对操作的描述,确定对数据进行操作以获取结果的步骤。 N.Wirth:程序=数据结构+算法 算法有多重要? 2-1 算法的概念 问题:计算长方形的面积。 1.接收用户输入的长方形长度和宽度两个值; 2.判断长度和宽度的值是否大于零; 3.如果大于零,将长度和宽度两个值相乘得到面积,否则显示输入错误; 4.显示面积。 算法 算法:解决问题的具体方法和步骤。 D.E.Knuth:算法是一组有穷的规则,规定了解决一类问题的一系列运算。 什么是算法? 2-1 算法的概念 算法的分类 数值算法:求和,求方程的根,微积分,求解方程组等。 非数值算法:排序算法,查找算法,管理系统,模式匹配,定理证明等。 算法有哪些? 2-2 简单算法举例 自学中……………… 2-3 算法的特性 算法具有五个特点: 有穷性:一个算法总是在执行了有穷步之后终止。“有穷”是计算机所能接受的程度。比如:1000年,就不能说“有穷”。 确定性:算法的每一步都应当具有确定的含义,不能具有二义性。如:“手举过头顶”、“x或者y加上z”就是不确定的。 2-3 算法的特性 有0个或者多个输入。所谓输入就是在执行算法时需要从外界取得的信息。如:求m和n的最大公约数,m和n就是输入。 有1个或者多个输出。所谓输出就是算法最终得到的结果。没有输出的算法是无意义的。 可行性(有效性)。算法中的每一个步骤都应当能够有效地执行。如:a/b,如果b=0就不是可行的。 2-4 怎样表示一个算法 举例:求1*2*3*4*5。 第一步:定义两个变量t和i,并分别赋值1和2; 第二步:计算t*i,并把结果放在t中;然后将i增加1; 第三步:如果i不大于5,返回第二步;否则继续第四步; 第四步:输出t中的数,即为结果。 优点:通俗易懂; 缺点:冗长,容易出现歧义。如:“张先生对李先生说他的孩子考上了大学”。 1 自然语言 2-4 怎样表示一个算法 起止框:表示算法的开始和结束。 输入输出。 判断框:表示一个式子的判断。 处理框:表示一个特定的处理。 流程线:表示处理的流程。 连接点:将不同地方的处理连接起来。 2 流程图 2-4 怎样表示一个算法 举例: 开始 结束 1?t;2?i; t*i?t;i+1?i; i5 Y N 优缺点 优点:直观形象,表达清楚。 缺点:占用篇幅大,当算法复杂时,画图费时且不方便。 2 流程图 2-4 怎样表示一个算法 原来流程图的最大缺点:没有限制流程线的使用,容易使得流程图变得没有规律,从而难以理解。将如同乱麻一样的算法称为BS算法。如: 3 改进的流程图 2-4 怎样表示一个算法 三种基本结构(1966,Bohra和Jacopini) 顺序结构。执行完A后必须执行B。即: A B 3 改进的流程图 2-4 怎样表示一个算法 选择结构,也称为选取结构或者分支结构。 A B P Y N A P Y N 3 改进的流程图 2-4 怎样表示一个算法 循环结构,又称为重复结构。包括两类: ①当型(while) ②直到型(until) P A Y N P A Y N 它们的区别是什么? 3 改进的流程图 注意与课本上的表示方法不同,但是意义相同。 2-4 怎样表示一个算法 三种基本结构的特点 只有一个入口。 只有一个出口。 结构内每个部分都有机会被执行到。 不存在死循环,即无终止的循环。 3 改进的流程图 2-4 怎样表示一个算法 说明 已经证明,由以上3种基本结构顺序组成的算法结构,可以解决任何复杂的问题。 基本结构并不限于上述3种,只要具有上述4个特点的都可以作为基本结构,但是这些扩展的基本结构都可以使用上
原创力文档


文档评论(0)