- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第章 程序的灵魂——算法;一个程序应包括以下两方面内容:
() 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。
() 对操作的描述。即操作步骤,也就是算法。
数据是操作的对象,操作的目的是对数据进行处理,以得到期望的结果。
所以我们可以提出这样一个公式:;程序 数据结构算法; 算法:是指解决一个具体问题的意义明确的步骤的集合。是有限的。
概括地说,算法是指解题方案的准确而完整的描述。从程序来说,也可以说算法是一个有限条指令的集合,这些指令确定了解决某一特定类型问题的运算序列。
对于同一个问题可以有不同的解题方法和步骤,也就是有不同的算法。算法有优劣,一般而言,应当选择简单的、运算步骤少的,即运算快、内存开销小的算法(算法的时空效率)。;买电视机的步骤:;对于计算机算法可以分为两类:数值运算算法
和非数值运算算法。
其中:数值运算的目的是求数值解。例如求解
方程的根、求一个函数的定积分等都属于数值运算的范围。
非数值运算包括的面十分广,常见的是用于事物管理领域,比如图书检索、人事管理等。;例:求****。
算法:
步骤:先求*,得到结果。
步骤:将步骤得到的乘积再乘以,得到结
果。
步骤:将再乘以,得。
步骤:将再乘以,得,这就是最后的
结果。;注意:
例:求!。 采用的是顺序结构,显然这种结构对于求!是非常不现实的。
应该采用什么结构?;例 判定年中的每一年是否闰年,将结果输出
判断闰年的条件是:
()能被整除,但不能被整除的年份,如年,年是闰年;
()能被整除,又能被整除的年份是闰年,如年、年是闰年。
不符合这两个条件的年份不是闰年。;算法可以表示如下:
设为被检测的年份。可以采取以下的步骤:
:?
:若不能被整除,则输出“不是闰年”。然后转到
:若能被整除,不能被整除,则输出 “是闰年”。然后转到
:若能被整除,又能被整除,则输出”是闰年”;否则输出”不是闰年”。然后转到
:输出”不是闰年”
: ?
:当时,转到;否则,算法结束。;
注意:在考虑算法时,应当仔细所需判断的条件,如何一步一步缩小被判断的范围。另外判断条件的先后次序也应当注意。在有的算法里,条件的次序颠倒是没有关系的,但是有的也是不能任意颠倒的,可以根据具体问题决定其逻辑。;例 对一个大于或者等于的正整数, 判断它是不是一个素数;;算法的特点; 所谓“歧义性”是指可以理解为多种可能含义。或者更确切地说,算法中的每一个步骤是十分明确无误的,而不应当被理解成不同的含义。
.有零个或多个输入
所谓输入是指在执行算法时需要从外界获取必要的信息。所谓零个输入就是没有输入,比如,求!就不需要任何输入。所谓多个输入就是需要输入多个数据。比如:求两个整数和的最大公约数,则需要输入和的值。;.有一个或多个输出
算法的目的就是为了求解,“解”就是输出。
一个算法得到的结果就是算法的输出。没有输出的算法是没有意义的。
.有效性
算法中的每一个步骤都应能有效地执行,并得到确定的结果。比如若 ,则执行
是不能有效执行的。; 怎样表示一个算法;:将分别装有醋和酱油的两个杯子里面的内容
交换。
分析:借用第三个杯子
(空杯); 用流程图表示算法; 例:例求!算法流程图可以如下表示; 通过上面的例子以及书上的例子,可以看出流程图是表示算法的较好工具。; ;模块A;:键盘输入任意数并输出算术平方根。;()循环结构,它又称重复结构,即反复执行某一部分的操作。
有两类循环结构:
①当型(型)循环结构 (图())
②直到型(型)循环(图())
可以看到,对同一个问题既可以用当型循环来处理,也可以用直到型循环来处理。;结束;:求表达式…的值并输出。;; 用流程图表示算法;()循环结构:
当型循环结构用图.形式表示。
直到型循环结构用图.形式表示。
用以上种流程图中的基本框,可以组成复杂的流程图,以表示算法。;例 画出求!的图; 通过上面的学习,可以看出用图表示算法的优点。它比文字描述直观、形象、易于理解;比传统流程图紧凑易画,尤其是它废除了流程线,整个算法结构是由各个基本结构按顺序组成的。流程图中的
文档评论(0)