C语言第2章(谭浩强)

C语言第2章(谭浩强)

ID:40841584

大小:1.07 MB

页数:42页

时间:2019-08-08

C语言第2章(谭浩强)_第1页
C语言第2章(谭浩强)_第2页
C语言第2章(谭浩强)_第3页
C语言第2章(谭浩强)_第4页
C语言第2章(谭浩强)_第5页
资源描述:

《C语言第2章(谭浩强)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第2章程序的灵魂—算法打个比方,厨师做菜肴,需要有菜谱。菜谱上一般应包括:(1)配料(数据)(2)操作步骤(算法)面对同一些原料可以加工出不同风味的菜肴。数据是操作对象,对操作的描述既是操作步骤,操作的目的是对数据进行加工处理得到期望的结果。本课程虽然不是专门讲算法的,但不会算法就达不到我们的目的—用C语言进行程序设计。1著名计算机科学家沃思提出一个公式:数据结构+算法=程序实际上,一个程序还应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言表示。因此,可以这样表示。程序=算法+数据结构+程序设计方法+语言以上四个方面是一名程序设计员所应具备的知识

2、。在这四个方面中,算法是灵魂,是解决“做什么”和“怎么做”的问题。数据结构是加工对象,语言是工具,编程需要采用合适的方法。2§2.1算法的概念做任何事情都有一定的步骤,这些步骤都是有一定的顺序。如:起床上学,用电脑画画,弹奏乐曲。不要以为只有“计算”的问题才有算法的。什么叫做算法?广义:为解决一个问题而采用的方法和步骤就称为“算法”。例如:求1+2+3+4+……+100可先算1+2、再加3、再加4……直到加上100;也可采用100+(1+99)+(2+98)+……+(49+51)+50本书所关心的算法只限于计算机算法。3计算机算法可分两大类:(1)数值运算算法

3、(2)非数值运算算法数值运算:求数值解、如求方程根、函数定积分等。非数值运算:事物管理、图书检索、人事管理、行车调度管理等。由于数值运算有现成的模型,可以应用数值分析方法,算法比较成熟。例如有些计算机系统提供“数学程序库”,可以直接调用。而非数值运算的种类繁多,不可能罗列所有的算法,需要设计解决特定的问题。目前计算机在非数值运算方面的应用远远超过了在数值运算方面的应用。4§2.2简单算法举例例2.1求1*2*3*4*5设两个量:一个被乘数——p一个乘数—nS1:p=1/*S1是步骤一*/S2:n=2S3:p*n=>pS4:n+1=>nS5:若n不大于5,重复执

4、行S3、S4、S5(若求1*3*5*7*9*11呢?)5例2.2有50个学生,将成绩在80分以上的学号和成绩打印出来。说明:n:学号,ni:第i个学生学号,g:成绩,gi:第i个学生成绩步骤如下:S1:1=>iS2:若gi>80,则输出ni和gi,否则不输出。S3:i+1=>iS4:若i小于等于50,则返回S2继续执行;否则算法结束。6例2.3判定2000-2005年中的每一年是否闰年,将结果输出。说明:闰年的条件(1)能被4整除,但不能被100整除的都是闰年(2)能被100整除,又能被400整除的是闰年。y:年份步骤如下:S1:y=2000S2:若y不能被4

5、整除,则输出y“不是闰年”。转到s6S3:若y能被4整除,不能被100整除,则输出y“是闰年”。转到s6S4:若y能被100整除,又能被400整除,输出y“是闰年”。转到s6S5:输出y“不是闰年”。S6:y=y+1S7:当y<=2500,转s2继续执行,否则算法结束。7例2.4求1-1/2+1/3-1/4+…+1/99-1/100说明:sum:累加项;deno:分母;sign:符号;term:某一项步骤如下:S1:sign=1S2:sum=1S3:deno=2S4:sign=(-1)*signS5:term=sign*(1/deno)S6:sum=sum+t

6、ermS7:deno=deno+1S8:若deno<=100返回s4;否则算法结束。8§2.3算法的特性一个算法具有以下特性:1.有穷性包含有限的操作步骤,不能是无限的;在合理的范围之内。如:例2.4条件改为deno>02.确定性每一步骤是确定的,而不应是含糊的,模棱两 可的。3.有零个或多个输入输入是从外界取得必要的信息。4.有一个或多个输出“解”就是输出,没有输出的算法是无意义的。5.有效性每一步骤都应是有效的执行,并有确定的结果。9§2.4怎样表示一个算法表示方法:1、自然语言2、传统流程图3、N—S流程图4、结构化流程图5、伪代码、PAD图102.4.

7、1用自然语言表示算法用自然语言表示通俗易懂,但容易出现“歧异性”。2.4.2用传统流程图表示算法直观形象,易于理解。成为世界各国程序工作者普遍采用。下面给出传统流程图的说明:11起止框输入/输出框处理框,有一个入口一个出口判断框,有一个入口,两个出口12流程线注释框连接点13例2.6求5!的算法用流程图表示开始1=>t2=>it*i=>ti+1=>ii>5结束YN14例2.7将50名学生中成绩在80分以上的学号和成绩输出开始1=>ii+1=>igi>=80结束YN输出ni和gii>50YN15例2.8判断2000-2500年中的每一年是否为闰年。是闰年的条件:

8、1.能被4整除,但不能被整100除。2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。