1、算法初步,11算法与程序框图1.1.1算法的概念,1了解算法的含义及算法的思想2会根据具体问题设计合理的算法步骤,基础梳理,1算法(algorithm)一词源于算术(algorism),即算术方法,就是做某一件事的步骤或程序例如:设计计算:(12)3的算法2有穷性:一个算法的步骤序列是有限的,必须在有限步操作之后停止,不能是无限的例如:能否设计计算所有自然数的和的算法?,第一步:计算123;第二步:计算339.,不能;因为计算将无限进行,永远没有结果,3确定性:算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是模棱两可例如:能否设计一个算法计算五个整数的倒数和?4顺序性与正
2、确性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题例如:写出解不等式x22x30的一个算法,不能;因为可能不能有效地执行,解析:第一步:求出x22x30的两根是x13,x21.第二步:由x22x30可知不等式的解集为x|1x3,5不唯一性:求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法例如:写出解二元一次方程组 的算法,解析:第一步:3得10y10,第二步:解得y1;第三步:将y1代入得x0.第四步:输出0,1.,6普遍性:一个算法不一定只解决一个具体问题,
3、可以解决一类问题例如:下面设计一个求关于x的方程axb的根的算法,解析:第一步:输入a和b;第二步:判断a是否为0;第三步:若a0,判断b是否为0,若b0,解为R,若b0,则无解;第四步:若a0,则解为x .,1如何理解算法的含义?,解析:算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或看成按要求设计好的有限的确切的计算序列,并且这样的步骤或序列能够解决一类问题算法概念是本章的一个基本概念,现代意义上的算法通常是指可以用计算机来解决的某一类问题的程序或步骤. 它具有有穷性(能在有限步之内完成)、可行性(每一步操作都必须是可执行的)、确定性(每一步应是确定的)、顺序性(有若干明
4、确的步骤)等特征要注意的是求解某个问题的算法并不唯一,思考应用,2如何理解算法的确定性、有穷性、可行性等特征?,解析:算法的确定性是指:算法的每一步必须是确切定义的,且无二意性,算法只有唯一的一条执行路径,对于相同的输入只能得出相同的输出;有穷性的含义是:一个算法必须在执行有穷次运算后结束,在所规定的时间和空间内,若不能获得正确结果,其算法也是不能被采用的而可行性则是说,算法中的每一个步骤都必须能用实现算法的工具可执行指令精确表达,并在有限步骤内完成,否则这种算法也是不会被采纳的,3设计算法的要求有哪些?,解析:设计算法的要求有:写出的算法,必须解决一类问题,并且能够重复使用;要使算法尽量简单
5、、步骤尽量少; 同时,要保证算法正确,且计算机能够执行,算法一定要根据输入的初始数据或给定的初值才能正确执行它的每一步骤,并且有输出,算法一定能得到问题的解,有一个或多个结果输出,达到求解问题的目的,没有输出结果的算法是没有意义的,自测自评,1下列关于算法的说法正确的有( )个求解某一类问题的算法是唯一的;算法必须在有限步操作之后停止;算法的每一步必须是明确的,不能有歧义或模糊A1B2C3D42下列四种叙述能称为算法的是( )A在家里一般是妈妈做饭B做米饭要刷锅,淘米,添水,加热这些步骤C在野外做饭叫野炊D做饭必须要有米,B,B,3对于算法的要求应不包括( )A写出的算法,必须能解决一类问题B
6、需使算法尽量简单、步骤尽量少C所写的算法不能重复使用D要保证算法正确,且计算机能够执行4以下对算法的描述正确的有( )对一类问题都有效;算法可执行的步骤必须是有限的;计算可以一步步地进行,每一步都有确切的含义;是一种通法,只要按部就班地做,总能得到结果A1个 B 2个 C3个 D4个,C,D,算法的概念,早上从起床到出门需要洗脸刷牙(5 min)、刷水壶(2 min)、烧水(8 min)、泡面(3 min)、吃饭(10 min)、听广播(8 min)几个步骤,从下列选项中选最好的一种算法()AS1洗脸刷牙、S2刷水壶 、S3烧水、S4泡面、S5吃饭、S6听广播BS1刷水壶、S2烧水同时洗脸刷牙
7、、S3泡面、S4吃饭、S5听广播,CS1刷水壶、S2烧水同时洗脸刷牙、S3泡面、S4吃饭同时听广播DS1吃饭同时听广播、S2泡面、S3烧水同时洗脸刷牙、S4刷水壶解析:烧水与洗脸刷牙可同时进行,吃饭时可听广播答案:C,跟踪训练,1已知直角三角形两直角边长为a,b,求斜边长c的一个算法分下列三步:计算c ;输入直角三角形两直角边长a,b的值;输出斜边长c的值,其中正确的顺序是( )ABC D,D,算法的描述,写出求1357911的值的算法,解析:第一步,先求13,得到结果3;第二步,将第一步所得结果3再乘以5,得到结果15;第三步,再将15乘以7,得到结果105;第四步,再将105乘以9,得到9
8、45;第五步,再将945乘以11,得到10395,即是最后结果,跟踪训练,算法的多样性,写出求123456的值的一个算法,算法1:S1:计算12得到3;S2:将第一步中的运算结果3与3相加得到6;S3:将第二步中的运算结果6与4相加得到10;S4:将第三步中的运算结果10与5相加得到15;S5:将第四步中的运算结果15与6相加得到21.,跟踪训练,3写出求123456的算法,分析:思路一:采取逐个相乘的方法;思路二:由于重复作乘法,可以设计作重复乘法运算解析:法一:第一步,计算12得到2.第二步,将第一步的运算结果2乘3,得到6.第三步,将第二步的运算结果6乘4,得到24.第四步,将第三步的运算结果24乘5,得到120.第五步,将第四步的运算结果120乘6,得到720.,求解方程、不等式的算法,写出求关于x的不等式ax2bxc0(a0)的解的算法步骤,跟踪训练,4写出解方程x22x30的一个算法,分析:本题是求一元二次方程的解的问题,方法很多,下面分别用配方法、判别式法写出这个问题的两个算法解析:法一:第一步,移项,得x22x3.第二步,两边同加1并配方,得(x1)24.第三步,式两边开方,得x12.第四步,解,得x3或x1.,1写算法步骤要注明第几步2步骤应该具体且可操作3要求能解决问题4注意检验有穷性、确定性、顺序性与正确性.,祝,您,学业有成,