C程序设计(第3版)谭浩强ppt2 最新版.pptVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序设计(第3版)谭浩强ppt2 最新版

第2章 程序的灵魂—算法 程序 = 数据结构 + 算法。 算法:简而言之,就是解决问题的方法与步骤。算法是程序设计的灵魂,是问题求解过程中的精确描述,一个算法由有限条可以完全机械地执行的、有确定结果的指令组成。 程序设计语言:是程序开发工具,即是将算法转化为程序的开发工具。 程序:算法的具体实现。 学习C语言,不仅要熟练掌握其语言本身的特点、语法规则等以外,更重要的就是掌握分析问题、解决问题的方法,就是锻炼分析、分解,最终归纳整理出算法的能力。 2. 1 算法的概念 算法应具有下面五个特性: 1)有穷性:算法中的每个步骤由计算机执行的次数及时间是有限的。 2)确定性:算法中的每个步骤含义明确,无二义性。 3)可行性:算法中描述的操作都可通过有限次的基本运算来实现。 4)输入:一个算法应具有零个或多个输入。 5)输出:一个算法应具有一个或多个输出。 2. 2 算法的特性 2.3 算法举例 【例1】输入三个数,然后输出其中最大的数 。 总体思路: 首先,得先有个地方装这三个数,我们定义三个变量A、B、C,将三个数依次输入到A、B、C中,另外,再准备一个MAX装最大数。 由于计算机一次只能比较两个数,我们首先把A与B比,大的数放入MAX中,再把MAX与C比,又把大的数放入MAX中。 最后,把MAX输出,此时MAX中装的就是A、B、C三数中最大的一个数。 具体步骤: (1) 输入A、B、C。 (2) A与B中大的一个放入MAX中。 (3) 把C与MAX中大的一个放入MAX中。 (4) 输出MAX,MAX即为最大数。 其中的(2)、(3)两步仍不明确,无法直接转化为程序语句,可以继续细化: (2) 把A与B中大的一个放入MAX中,若A B,则MAX ← A;否则MAX ← B。 (3) 把C与MAX中大的一个放入MAX中,若C MAX,则MAX ← C。 算法最后可以写成: (1) 输入A,B,C。 (2) 若A B,则MAX ← A;否则MAX←B。 (3) 若C MAX,则MAX ← C。 (4) 输出MAX,MAX即为最大数 【例2】猴子吃桃问题:有一堆桃子不知数目,猴子第一天吃掉一半,觉得不过瘾,又多吃了一只,第二天照此办理,吃掉剩下桃子的一半另加一个,天天如此,到第十天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个? 总体思路: 假设第一天开始时有a1只桃子,第二天有a2只,……,第9天有a9只,第10天是a10只,在a1,a2,……,a10中,只有a10 = 1是知道的,现要求a1,而我们可以看出,a1,a2,……,a10之间存在一个简单的关系: a9 = 2 * ( a10 + 1 ) a8 = 2 * ( a9 + 1 ) ┇ a1 = 2 * ( a2 + 1 ) 也就是:ai = 2 * ( ai+1 + 1) i = 9,8,7,6,…,1 这就是此题的数学模型。 再考察上面从a9,a8直至a1的计算过程,这其实是一个递推过程,这种递推的方法在计算机解题中经常用到。另一方面,这九步运算从形式上完全一样,不同的只是ai的下标而已。由此,我们引入循环的处理方法,并统一用a0表示前一天的桃子数,a1表示后一天的桃子数。 算法最后可以写成: (1) a1 = 1 {第10天的桃子数,a1的初值} i = 9 {计数器初值为9} (2) a0 = 2 * ( a1+ 1 ) {计算当天的桃子数} (3) a1 = a0 {将当天的桃子数作为下一次计算的初值} (4) i = i - 1 (5) 若i = 1,转(2) (6) 输出a0的值 其中(2) ~(5)步为循环 算法的描述方法常用的有自然语言、流程图、N-S图、伪代码等。 1)自然语言 例: 编程求1+2+3+┄+100。 算法为: S1:设置一个累和变量sum和一个计数变量n; 并设它们的初值都为0; S2:判断n=100,若成立转S3,否则转S5; S3:sum+n==sum,n+1==n; S4:转S2; S5:输出sum.。 2.4 算法的表示方法 起止框 判断框

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档