CC语言第2章算法

CC语言第2章算法

ID:40837181

大小:846.00 KB

页数:41页

时间:2019-08-08

CC语言第2章算法_第1页
CC语言第2章算法_第2页
CC语言第2章算法_第3页
CC语言第2章算法_第4页
CC语言第2章算法_第5页
资源描述:

《CC语言第2章算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章程序的灵魂--算法主要内容2.1算法的概念2.2简单算法举例2.3算法的特性2.4怎样表示一个算法2.5结构化程序设计方法本章要点算法的概念算法的表示结构化程序设计方法一个程序应包括两个方面的内容:对数据的描述:数据结构(datastructure)对操作的描述:算法(algorithm)著名计算机科学家沃思提出一个公式:数据结构+算法=程序数据结构+算法+程序设计方法+语言工具完整的程序设计应该是:算法是灵魂,数据结构是加工对象,语言是工具。不了解算法就无法进行程序设计。1.算法广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。对同一个问题,可有不同的解

2、题方法和步骤。算法是由一套明确的规则组成的一些步骤,它指定了操作顺序并通过有限个步骤将问题解决、得出结果。一个算法应具有以下特性:有穷性:一个算法必须总是在执行有限个操作步骤和可以接受的时间内完成其执行过程。确定性:算法中的每一步都必须有明确的含义,不允许存在二义性。1.算法有效性:算法中描述的每一步操作都应该能有效地执行,并最终得到确定的结果。输入:一个算法应零个或多个输入数据。输出:一个算法应有1个或多个输出数据。没有输出的算法是无意义的。2.算法的分类计算机算法可分为两大类别:数值运算算法:求数值解,例如求方程的根、求函数的定积分等。非数值运算:包括的面十分广泛,最常见的

3、是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。希望方法简单,运算步骤少。简单算法举例例2.1求1×2×3×4×5人计算使用的方法:步骤1:先求1×2,得到结果2步骤2:将步骤1得到的乘积2再乘以3,得到结果6步骤3:将6再乘以4,得24步骤4:将24再乘以5,得120如果要求1×2×…×1000,则要写999个步骤,太繁琐。可以设两个变量:一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,而直接将每一步骤的乘积放在被乘数变量中。设p为被乘数,i为乘数。用循环算法来求结果,

4、算法可改写:S1:使p=1。S2:使i=2。S3:使p×i,乘积仍放在变量p中,可表示为:p×ipS4:使i的值加1,即i+1i。S5:如果i不大于5,返回重新执行步骤S3以及其后的步骤S4和S5;否则,算法结束。最后得到p的值就是5!的值。如果题目改为:求1×3×5×……×11算法只需作很少的改动:S1:1→pS2:3→iS3:p×i→pS4:i+2→pS5:若i≤11,返回S3。否则,结束。用这种方法表示的算法具有通用性、灵活性。S3到S5组成一个循环,在实现算法时要反复多次执行S3,S4,S5等步骤,直到某一时刻,执行S5步骤时经过判断,乘数i已超过规定的数值

5、而不返回S3步骤为止。此时算法结束,变量p的值就是所求结果。例2.3判定2000~2500年中的每一年是否闰年,将结果输出。分析:闰年的条件是:(1)能被4整除,但不能被100整除的年份都是闰年,如1996,2004年是闰年;(2)能被100整除,又能被400整除的年份是闰年。如1600,2000年是闰年。不符合这两个条件的年份不是闰年。设y为被检测的年份,算法可表示如下:S1:2000→yS2:若y不能被4整除,则输出y“不是闰年”。然后转到S6。S3:若y能被4整除,不能被100整除,则输出y“是闰年”。然后转到S6。S4:若y能被100整除,又能被400整除,输出y

6、“是闰年”,否则输出“不是闰年”。然后转到S6。S5:输出y“不是闰年”。S6:y+1→yS7:当y≤2500时,转S2继续执行,如y>2500,算法停止。以上算法中每做一步都分别分离出一些范围(巳能判定为闰年或非闰年),逐步缩小范围,直至执行S5时,只可能是非闰年。算法的表示方法自然语言:用自然语言表示的算法通俗易懂,但易引起“歧义性”。传统流程图:传统流程图是用规定的一组图形符号、流程线和文字说明来表示各种操作的算法表示方法。算法的表示方法N-S结构图:N-S结构图取消了流程线,不允许有随意的控制流,全部算法写在一个矩形框内,该矩形框以三种基本结构描述符号为基础复合而成

7、。伪代码:伪代码是用一种介于自然语言和计算机语言之间的文字和符号来描述算法,表现形式比较灵活自由,没有严谨的语法格式。一、用自然语言表示算法自然语言就是人们日常使用的语言,可以是汉语或英语或其它语言。用自然语言表示通俗易懂,但文字冗长,容易出现“歧义性”。自然语言表示的含义往往不大严格,要根据上下文才能判断其正确含义,描述包含分支和循环的算法时也不很方便。因此,除了那些很简单的问题外,一般不用自然语言描述算法。二、用流程图表示算法美国国家标准化协会ANSI(AmericanNationalS

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

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

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