程序的灵魂——算法

程序的灵魂——算法

ID:42276131

大小:363.06 KB

页数:41页

时间:2019-09-11

程序的灵魂——算法_第1页
程序的灵魂——算法_第2页
程序的灵魂——算法_第3页
程序的灵魂——算法_第4页
程序的灵魂——算法_第5页
资源描述:

《程序的灵魂——算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章程序的灵魂——算法2.1算法的概念2.2简单算法举例(并入2.4讲)2.3算法的特性2.4怎样表示一个算法2.5结构化程序设计方法C语言程序设计第二章程序的灵魂——算法本章要点算法的概念算法的表示结构化程序设计方法C语言程序设计第二章程序的灵魂——算法著名计算机科学家沃思(NikiklausWirth)提出:数据结构+算法=程序一个程序应包括两个方面的内容:对数据的描述:数据结构(datastructure)对操作的描述:算法(algorithm)描述对数据的操作步骤描述数据的类型、组织形式C语

2、言程序设计第二章程序的灵魂——算法说明:一个程序除以上两个主要因素外,还包括程序设计方法和语言工具两个方面。数据是加工的对象,算法是灵魂,语言是工具,编程需采用适当的方法。2.1算法的概念做事——方法、步骤(顺序)——决定事情成败C语言程序设计第二章程序的灵魂——算法1、算法的概念例:把大象关冰箱分几步?求1+2+3+…+100=?算法:计算机求解某一问题而采用的具体方法和步骤生活经验思维逻辑说明:针对某一问题可能采取许多不同的方法,因此,为了有效解题,不仅需要保证算法正确,还要考虑算法质量,采用简单、步

3、骤少又能准确完成任务的算法C语言程序设计第二章程序的灵魂——算法2、计算机算法分为两大类:①数值运算算法:求数值解计算机最初设计的目的,最初级功能比较成熟,扩展性不强②非数值运算算法:常用于事务管理日益广泛,远超过数值运算的应用设计难度相对较大3、算法的描述方法:主要为两大类:①文字②图形(符号)C语言程序设计第二章程序的灵魂——算法1、有穷性:一个算法应该包含有限的操作步骤,不能是无限的,不能有死循环2、确定性:每一个步骤都应该是确定的,不能模棱两可,不可以产生“歧义性”3、有零个或多个输入:在执行时从

4、外界获得必要的信息,也可以由系统直接获得4、有一个或多个输出:每一个算法必须有至少一个结果,但不一定需要打印输出5、有效性:每一个步骤都应该有意义,能有效地执行并得到确定的结果当然还有可靠性、易维护性等特性2.3算法的特性例如:若b=0,则执行a/b是不能有效执行的intx=1,y=1;while(x>0){y++;}printf("%d",y);例1.2求两数之和#include voidmain(){inta,b,sum; a=123;b=456; sum=a+b;printf("s

5、umis%d",sum); }一个算法得到的结果就是算法的输出scanf("%d%d",&a,&b);2、流程图灵活,自由,形象,直观,可表示任何算法占用篇幅较长,对于复杂的算法,画流程图费时、不方便,难于阅读和修改,看起来混乱2.4怎样表示一个算法常用的算法描述方法:1、带序号的自然语言描述易懂,但文字冗长,易产生歧义性,描述分支、循环算法不方便C语言程序设计第二章程序的灵魂——算法重点!算法的描述方法:主要为两大类:①文字②图形(符号)除很简单的问题外,不用这种方法起止框输入输出框判断框处理框流程

6、线连接点注释框3、N-S图(盒图)特点:完全去掉了带箭头的流程线,算法的所有处理步骤都写在一个大矩形框里(算法简单,符合结构化思想)处理框判断框循环框形象、直观、易于理解、结构图紧凑易画、废除了流程线,整个算法结构是由各个基本结构按顺序组成的当然在大的矩形框中还可以包含其它从属于它的框AC语言程序设计第二章程序的灵魂——算法4、伪代码(软件专业人员经常采用的方法)用介于自然语言和计算机语言之间的文字及符号来描述算法方便,易懂,书写格式自由,便于修改,易于向计算机语言过渡,不如流程图直观,可能会出现逻辑上的

7、错误以上四种都是算法设计5、计算机语言(算法的实现)必须严格遵循所用语言的语法规则C语言程序设计第二章程序的灵魂——算法C语言程序设计第二章程序的灵魂——算法要求:掌握N-S图、伪代码描述算法的方法,尤其是N-S图,现在结构化程序设计都用N-S图描述算法,传统流程图要求能够读懂、看明白、知道含义,对于简单程序经常用伪代码描述算法。课程目标就是能够用计算机语言实现算法。自然语言描述步骤1:先求1×2,得到结果2步骤2:将步骤1得到的乘积2再乘以3,得到结果6步骤3:将6再乘以4,得24步骤4:将24再乘以5

8、,得120例1求1×2×3×4×5,写出其算法C语言程序设计第二章程序的灵魂——算法太繁琐了!自然语言描述例1求1×2×3×4×5,写出其算法C语言程序设计第二章程序的灵魂——算法1*2=>pp*3=>qq*4=>rr*5=>t结果存在t中1*2=>tt*3=>tt*4=>tt*5=>t结果存在最后一个t中=>=>S1:使t=1S2:使i=2S3:t*i=>tS4:i+1=>iS5:如果i≤5,返回S3;否则,算法结束分析:用

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

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

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