资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,第二章 算法的基本概念,2.1,算法的概念,2.2,简单算法举例,2.3,算法的特性,2.4,算法的表示,2.5,结构化程序设计方法,2.1,算法的概念,2.1,算法的概念,为解决一个问题而采取的方法和步骤,就称为算法。,l,计算机算法:计算机能够执行的算法。,l,计算机算法可分为两大类:,数值运算算法:求解数值;,非数值运算算法:事务管理领域。,一个程序应包括:,l,对数据的描述,:,程序中要指定数据的类型和数据的组织形式,即数据结构。,l,对操作的描述。,即操作步骤,也就是算法。,程序,=,算法,+,数据结构,+,程序设计方法,+,语言工具和环境,算法的概念:,为解决一个问题而采取的方法和步骤,就称为算法。,例,1,:求,12345,。,最原始方法:,步骤,1,:先求,12,,得到结果,2,。,步骤,2,:将步骤,1,得到的结果乘以,3,,得到结果,6,。,步骤,3,:将,6,再乘以,4,,得,24,。,步骤,4,:将,24,再乘以,5,,得,120,。,算法结束。,返回,2.2,简单算法举例,改进的算法:,S1:,使,t=1,S2:,使,i=2,S3:,使,ti,乘积仍然放在在变量,t,中,可表示为,tit,S4:,使,i,的值,+1,,即,i+1i,S5:,如果,i5,返回重新执行步骤,S3,以及其后的,S4,和,S5,;否则,算法结束。,如果计算,100,!只需将,S5,中的,i5,改成,i100,即可。,思考:能否将,S5,写成:若,i,5,返回,S3;,否则,结束,?,例,2,:判定,2000 2500,年中的每一年是否闰年,将结果输出。,1),能被,4,整除,但不能被,100,整除的年份;,2),能被,100,整除,又能被,400,整除的年份;,S1:2000y(,设,y,为被检测的年份,),S2:,若,y,不能被,4,整除,输出,y“,不是闰年”,然后转到,S6,S3:,若,y,能被,4,整除,不能被,100,整除,则输出,y“,是闰,年”,然后转到,S6,S4:,若,y,能被,100,整除,又能被,400,整除,输出,y“,是闰,年”否则输出,y“,不是闰年”,然后转到,S6,S5:,输出,y“,不是闰年”。,S6:y+1y,S7:,当,y2500,时,返回,S2,继续执行,否则,结束。,返回,l,有穷性:,一个算法应包含有限的操作步骤而不能是无限的。,l,确定性:,算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的。,l,有零个或多个输入。,l,有一个或多个输出。,l,有效性:,算法中每一个步骤应当能有效地执行,并得到确定的结果。,2.3,算法的特性,对于程序设计人员,必须会设计算法,并根据算法写出程序。,2.4,算法的表示,用自然语言表示算法,用流程图表示算法,用,N-S,流程图表示算法,用伪代码表示算法,用计算机语言表示算法,举例,直观、形象。,用介于自然语言和计算机语言之间的文字和符号来描述算法。,流程图元素,例,3:,将例,1,求,5!,的算用流程图表示。,例,4:,将例,2,判定闰年的算用流程图表示。,三种基本结构流程图,:,1,、,顺序结构,:,含义,:,先执行,A,、后执行,B,、脱离本结构,。,2,、,选择结构,:,若,条件,p,成立、执行,A,,否则执行,B,,脱离本结构。,当型,直到型,3,、循环结构,1,)当型,:,重复,判断条件,p,是否成立、执行,A,,一旦条件,p,不成立,立即脱离本结构;,2,)直到型,:,重复,执行,A,,判断条件,p,是否成立,,一旦条件,p,成立,立即脱离本结构。,至少执,行,0,次,执行,1,次,用,N-S,流程图表示算法,1973,年美国学者提出了一种新型流程图。,顺序结构 循环结构,选择结构,A,、,B,为下面三者之一:,空,一个语句(不引起转移),结构化程序段,三种基本结构的共同特点:,l,只有一个入口;,l,只有一个出口;,l,结构内的每一部分都有机会被执行到;,l,结构内不存在“死循环”。,用计算机语言表示算法,例,5,:,求,12345,用,C,语言表示。,void,main(),int i,t;,t=1;i=2;,while(i=5),t=t*i;i=i+1;,printf(“%d”,t);,2.5,结构化程序设计方法:,自顶向下:,逐步细化:,模块化设计:,结构化编码:,书,段,节,章,函数、专用功能,选对应的一组语句表示结构,
展开阅读全文