欢迎来到天天文库
浏览记录
ID:55827773
大小:116.00 KB
页数:26页
时间:2020-06-09
《C语言大学实用教程第2章讲稿.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章程序灵魂—算法2.1算法的概念2.2简单算法举例2.3算法的特性2.4算法的表示2.5结构化程序设计方法程序:是计算机执行的一组有限操作序列的集合(描述)。一个程序应包括两个方面的内容:对数据的描述:数据结构(datastructure)对操作的描述:算法(algorithm)著名计算机科学家沃思提出一个公式:数据结构+算法=程序完整的程序设计应该是:数据结构+算法+程序设计方法+语言工具2.1算法的概念从事各种工作和活动,都必须事先想好进行的步骤,然后按部就班地进行,才能避免产生错乱。不要认为只有“计算”的问题才有算法。广义地说,为
2、解决一个问题而采取的方法和步骤,就称为“算法”。对同一个问题,可以有不同的解题方法和步骤。方法有优劣之分。有的方法只需进行很少的步骤,而有些方法则需要较多的步骤。一般说,希望采用简单的和运算步骤少的方法。因此,为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。例1:求1×2×3×4×5。最原始的方法是:步骤1:先求1×2,得到结果2。步骤2:将步骤1得到的结果乘以3,得到结果6。步骤3:将6乘以4,得24。步骤4:将24乘以5,得120。这就是最后的结果。这样的算法虽然是正确的,但太繁琐。如果要求1×2×…×1000,
3、则要写999个步骤,显然是不可取的。而且每次都直接使用上一步骤的数值结果,也不方便。应当找到一种通用的表示方法。2.2简单算法举例可以设两个变量,一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,而直接将每一步骤的乘积放在被乘数变量中。今设p为被乘数,i为乘数。用循环算法来求结果。可以将算法改写如下:S1:使p=1S2:使i=2S3:使p×i,乘积仍放在变量p中,可表示为p×i=>pS4:使i的值加1,即i+1=>iS5:如果i不大于5,返回重新执行步骤S3以及其后的步骤S4和S5;否则,算法结束。最后得到p的值就是5!的值。上面的S
4、1,S2…代表步骤1,步骤2……S是step(步)的缩写。这是写算法的习惯用法。仔细分析这个算法,能得到预期的结果。显然这个算法比前面列出的算法简练。如果题目改为求1×3×5×7×9×11。算法只需作很少的改动即可:S1:1=>pS2:3=>iS3:p×i=>pS4:i+2=>iS5:若i≤11,返回S3;否则,结束。例2:有50个学生,要求将他们之中成绩在80分以上者打印出来。用n表示学生学号,n1代表第一个学生学号,ni代表第i个学生学号。用g代表学生成绩,gi代表第i个学生成绩,算法可表示如下。S1:1=>IS2:如果gi≥80,则打印ni
5、和gi,否则不打印S3:i+1=>IS4:如果i≤50,转S2,继续执行;否则,算法结束。本例中,变量i作为下标,用它来控制序号(第几个学生,第几个成绩)。当i超过50时,表示已对50个学生的成绩处理完毕,算法结束。例3:求1-1/2+1/3-1/4+…+1/99-1/100。算法可以表示如下:S1:1=>signS2:1=>sumS3:2=>denoS4:(-1)×sign=>signS5:sign×(1/deno)=>termS6:sum+term=>sumS7:deno+1=>denoS8:若deno≤100返回S4;否则算法结束。算法(A
6、lgorithm):是对特定问题求解方法(步骤)的一种描述。一个算法应该具有以下特点:1有穷性一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。事实上,“有穷性”往往指“在合理的范围之内”。2确定性算法中的每一个步骤都应当是确定的(有确切的含义),而不应当是含糊的、模棱两可的(没有二义性)。2.3算法的特性3可行性一个算法是能行的。即算法描述的操作都可以通过已经实现的基本运算执行有限次来实现。4输入所谓输入是指在执行算法时需要从外界取得必要的信息。一个算法有零个或多个输入,这些输入取自于某个特定的对象集合。一个算法也可以没有输入。
7、5输出一个算法有一个或多个输出,这些输出是同输入有着某些特定关系的量。算法的目的是为了求解,“解”就是输出。没有输出的算法是没有意义的。算法和程序是两个不同的概念。一个计算机程序是对一个算法使用某种程序设计语言的具体实现。算法必须可终止意味着不是所有的计算机程序都是算法。可以用不同的方法表示一个算法。常用的有自然语言、传统流程图、结构化流程图、伪代码、PAD图等。2.4.1用自然语言表示算法在2.2节中介绍的算法是用自然语言表示的。自然语言表示算法的特点:用自然语言表示通俗易懂;文字冗长,容易出现“歧义性”;描述包含分支和循环的算法,不很方便。除
8、很简单的问题外,一般不用自然语言描述算法。2.4算法的表示1基本流程图符号流程图是用一些图框表示各种操作。用图形表示算法,直观形象,易于
此文档下载收益归作者所有