网站大量收购闲置独家精品文档,联系QQ:2885784924

C语言第二章(谭浩强).ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言第二章(谭浩强)

第2章 程序的灵魂—算法   著名计算机科学家沃思提出一个公式:    数据结构+算法=程序   实际上,一个程序还应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言表示。因此,可以这样表示。 程序=算法+数据结构+程序设计方法+语言   以上四个方面是一名程序设计员所应具备的知识。在这四个方面中,算法是灵魂,是解决“做什么”和“怎么做”的问题。数据结构是加工对象,语言是工具,编程需要采用合适的方法。 §2.1 算法的概念    做任何事情都有一定的步骤,这些步骤都是有一定的顺序。如:起床上学,用电脑画画,弹奏乐曲。不要以为只有“计算”的问题才有算法的。  什么叫做算法?广义:为解决一个问题而采用的方法和步骤就称为“算法”。 例如:求 1+2+3+4+……+100 可先算1+2、再加3、再加4……直到加上100;  也可采用 100+(1+99)+(2+98)+……+(49+51)+50 本书所关心的算法只限于计算机算法。 计算机算法可分两大类:(1)数值运算算法 (2)非数值运算算法 数值运算:求数值解、如求方程根、函数        定积分等。 非数值运算:事物管理、图书检索、人事       管理、行车调度管理等。    由于数值运算有现成的模型,可以应用数值分析方法,算法比较成熟。例如有些计算机系统提供“数学程序库”,可以直接调用。 而非数值运算的种类繁多,不可能罗列所有的算法,需要设计解决特定的问题。目前计算机在非数值运算方面的应用远远超过了在数值运算方面的应用。   §2.2 简单算法举例 例2.1 求1*2*3*4*5 设两个量:一个被乘数——p       一个乘数—n S1:p=1 /* S1 是步骤一*/ S2:n=2 S3:p*n=p S4:n+1=n S5:若n不大于5,重复执行S3、S4、S5 (若求1*3*5*7*9*11 呢?) 例2.2 有50个学生,将成绩在80分以上的学号和成绩打印出来。 说明:n:学号,ni:第i个学生学号,g:成绩, gi:第i个学生成绩 步骤如下: S1:1=i S2:若gi80,则输出ni和 gi ,否则不输出。 S3:i+1=i S4:若i小于等于50,则返回 S2继续执行;    否则算法结束。 例2.3判定2000-2005年中的每一年是否闰年,将结果输出。 说明:闰年的条件(1)能被4整除,但不能被100整除的都是闰年(2)能被100整除,又能被400整除的是闰年。 y:年份 步骤如下: S1:y=2000 S2:若y不能被4整除,则输出y“不是闰年”。转到s6 S3:若y能被4整除,不能被100整除,则输出y“是闰年”。转到s6 S4:若y能被100整除,又能被400整除,输出y“是闰年”。转到s6 S5:输出y“不是闰年”。 S6: y= y+1 S7:当y=2500,转s2继续执行,否则算法结束。 例2.4求1-1/2+1/3-1/4+…+1/99-1/100 说明:sum:累加项;deno:分母;sign:符号;term:某一项 步骤如下: S1:sign=1 S2:sum=1 S3:deno=2 S4:sign=(-1)*sign S5:term=sign*(1/deno) S6:sum=sum+term S7:deno=deno+1 S8:若deno=100返回s4;否则算法结束。  §2.3 算法的特性 一个算法具有以下特性: 1.有穷性   包含有限的操作步骤,不能是无限的;在合理 的范围之内。如:例2.4 条件改为deno0 2.确定性   每一步骤是确定的,而不应是含糊的,模棱两 可的。 3.有零个或多个输入   输入是从外界取得必要的信息。 4.有一个或多个输出   “解”就是输出,没有输出的算法是无意义的。 5.有效性   每一步骤都应是有效的执行,并有确定的结果。 § 2.4 怎样表示一个算法 表示方法: 1、自然语言 2、传统流程图 3、N—S流程图 4、结构化流程图 5、伪代码 、PAD图 2.4.1 用自然语言表示算法 用自然语言表示通俗易懂,但容易出现 “歧异性”。 2.4.2 用传统流程图表示算法 直观形象,易于理解。成为世界各国程序  工作者普遍采用。 下面给出传统流程图的说明: 例2.6 求5!的算法用流程图表示 例2.7 将50名学生中成绩在80分以上的学号和成绩输出 例2.8 判断2000-2500年中的每一年是否为闰年。 是闰年的条件: 1.能被4整除,但不能被整100除。 2.能被100整除又能被400整除。 例 2.9  求 1-1/2+1/3

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档