1、【课题研究】 1、1、1 算法的概念【讲师】 讲义编写者:数学教师孟老师一、 【学习目标】1、正确理解算法的概念,掌握算法的基本特点;2、会写出解二元一次方程组、判断一个数为质数和二分法求近似解的算法;3、把自然语言转化为算法语言.二、 【自学内容和要求及自学过程】1、阅读教材第 2 页内容,回答问题(解二元一次方程组的步骤)我们知道解二元一次方程组的方法有代入消元法和加减消元法,请你结合教材的例子 总结用加减消元法和代入消元法解二元一12yx次方程组的步骤.请同学们总结解一般二元一次方程组 的步骤.1212cybxa结论:加减消元法解二元一次方程组:回顾二元一次方程组的求解过程,我们可以归纳
2、出以下步骤:第一步,12yx+2,得 5x=1.第二步,解,得:x=1/5,第三步,-2 得 5y=3.第四步,解,得 y=3/5.第五步:得到方程组的解为代入消元法解二元一次方程组 我们可以归纳出以下步5/13xy 12yx骤:第一步,由得 x=2y-1.第二步,把代入,得 2(2y-1)+y=1.第三步,解得 y=3/5.第四步,把代入,得x=23/5-1=1/5.第五步,得到方程组的解为: 对于一般的一元5/13xy二次方程组 ,其中 ,可以写出类似的求解步1212cybxa 0121ba骤:第一步, -2 ,得 .第二步,212)(cb解,得 .第三步, - ,/)(1a2得 .第四步
3、,解,得2121)(cy.第五步,得到方程组的解为/bacay2121)/()(bbcxa上述步骤构成了解二元一次方程组的一个算法,我们可以根据这一算法编制计算机程序,让计算机来解二元一次方程组.2、根据第一块内容,结合算法的定义,回答问题(算法)根据上述实例,说说你对算法的理解.请同学们总结算法的特征.结论:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等.在数学中,算法通常是指按照一定规则解决某一类问题的明确和有限点的步骤.现在算法通常可以编成计算机程序,让计算机执行并解决问题.确定性:算法的每一部都应当做到准确无误、不重复、
4、不遗漏.不重复是指不是可有可无的,甚至无用的步骤,不遗漏是指缺少哪一步都无法完成任务.逻辑性:算法从开始的第一步直到最后一步之间做到环环相扣,分工明确,前一步是后一步的前提,后一步是前一步的继续.有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题有明确的结果,也就是说必须在有限步骤内完成任务,不能无限制的持续进行.思考:我们为什么要学习算法?结论:在解决某些问题时,需要设计出一系列可操作或可计算的步骤来解决问题,这些步骤称为解决这些问题的算法.也就是说算法实际上就是解决问题的一种程序性方法.算法一般是机械的,它的优点是一种通法,只要按部就班的去做,总能得到结果.因此算法是计算科学
5、的基础.三、 【综合练习与思考探索】练习一:教材例 1:设计一个算法,判断 7 是否为质数.设计一个算法,判断 35 是否为质数.结论:根据质数的定义,可以这样判断:依次用 26 除 7,如果它们中有一个能整除 7,则 7 不是质数,否则 7 是质数.根据以上分析,可写出如下的算法:第一步:用 2 除 7,得到余数 1,因为余数不为 0,所以 2 不能整除 7.第二步:用 3 除 7,得到余数 1,因为余数不为 0,所以 3 不能整除 7.第三步:用 4 除 7,得到余数 3,因为余数不为 0,所以 4 不能整除 7.第四步:用 5 除 7,得到余数 2,因为余数不为 0,所以 5 不能整除
6、7.第五步:用 6 除 7,得到余数 1,因为余数不为 0,所以 6 不能整除 7.因此,7 是质数.类似地,可写出“判断 35 是否为质数”的算法:第一步:用 2 除 35,得到余数 1,因为余数不为 0,所以 2 不能整除35.第二步:用 3 除 35,得到余数 2,因为余数不为 0,所以 3 不能整除35.第三步:用 4 除 35,得到余数 3,因为余数不为 0,所以 4 不能整除35.第四步:用 5 除 35,得到余数 0,因为余数为 0,所以 5 能整除 35.因此,35 不是质数.引申:教材 P4 探究:请写出判断整数 n(n2)是否为质数的算法.对于任意的整数 n(n2),若用
7、i 表示 2(n-1)中的任意整数,则判断整数 n(n2)是否为质数的算法包含下面的重复操作.用 i 除 n,得到余数 r,判断余数 r 是否为 0,若是,则 n 不是质数;否则,将 i 的值增加 1.再执行同样的操作.这个操作一直要进行到 i 的值等于(n-1)为止.因此,判断整数n(n2)是否为质数的算法可以写成:第一步,给定大于 2 的整数 n.第二步,令 i=2.第三步,用 i 除 n,得到余数 r.第四步,判断“r=0”是否成立.若是,则 n 不是质数,结束算法;否则,将 i 的值增加 1,仍用 i 表示.第五步,判断“i(n-1) ”是否成立.若是,则 n 是质数,结束算法;否则,
8、返回第三步.练习二:教材例 2:写出用“二分法”求方程 x2-2=0(x0)的近似解的算法.结论:算法分析:令 f(x)= x2-2=0(x0),则方程 x2-2=0 的解就是函数 f(x)的零点.二分法的基本思想是:把函数 f(x)的零点所在的区间a,b(满足f(a)f(b)max, 则 max=b.S3 如果 Cmax, 则 max=c.S4 max 就是 a,b,c 中的最大值练习四:写出求 1+2+3+4+5+6 的一个算法.可以按逐一相加的程序进行,也可以利用公式 1+2+n=进行,也可以根据加法运算律简化运算过程.2)1(n算法 1:S1:计算 1+2 得到 3;S2:将第一步中的
9、运算结果 3 与 3 相加得到 6;S3:将第二步中的运算结果 6 与 4 相加得到 10;S4:将第三步中的运算结果 10 与 5 相加得到 15;S5:将第四步中的运算结果 15 与 6 相加得到 21.算法 2:S1:取 n=6;S2:计算 ;2)1(nS3:输出运算结果.算法 3:S1:将原式变形为(1+6)+(2+5)+(3+4)=37;S2:计算 37;S3:输出运算结果.小结:算法 1 是最原始的方法,最为繁琐,步骤较多,当加数较大时,比如 1+2+3+10000,再用这种方法是行不通的;算法 2 与算法 3 都是比较简单的算法,但比较而言,算法 2 最为简单,且易于在计算机上执
10、行操作.引申:求 1357911 的值,写出其算法.算法 1;第一步,先求 13,得到结果 3;第二步,将第一步所得结果 3 再乘以 5,得到结果 15;第三步,再将 15 乘以 7,得到结果 105;第四步,再将 105 乘以 9,得到 945;第五步,再将 945 乘以 11,得到 10395,即是最后结果.算法 2:用 P 表示被乘数,i 表示乘数.S1 使 P=1.S2 使 i=3S3 使 P=PiS4 使 i=i+2S5 若 i11,则返回到 S3 继续执行;否则算法结束.小结 由于计算机动是高速计算的自动机器,实现循环的语句.因此,上述算法 2 不仅是正确的,而且是在计算机上能够实
11、现的较好的算法.在上面的算法中,S3,S4,S5 构成一个完整的循环,这里需要说明的是,每经过一次循环之后,变量 P、i 的值都发生了变化,并且生循环一次之后都要在步骤 S5 对 i 的值进行检验,一旦发现 i 的值大于 11 时,立即停止循环,同时输出最后一个 P 的值,对于循环结构的详细情况,我们将在以后的学习中介绍.四、 【作业】1、必做题:教材第 5 页练习 1、2;2、选做题:写出通过尺规作图确定线段 AB 一个五等分点的算法.七、 【课后练习】1、同学要在下午到体育馆参加比赛,比赛下午 2 时开始,请写出该同学从家里发到比赛地的算法.2、写出解一元二次方程 ax2+bx+c=0(a
12、0)的一个算法.3、写出求 1 至 1000 的正数中的 3 倍数的一个算法(打印结果)4、写出解不等式 x2-2x-30 的不等式的解的步骤(为方便,我们设 a0)如下:第一步:计算= ;cb42第二步:若0,示出方程两根 (设 x1x2) ,acbx242,1则不等式解集为 x | xx1或 xx2;第三步:若= 0,则不等式解集为 x | xR 且 x ;第四步:若0,则不等式的解集为 R.5、求过 P(a1,b1)、Q( a2,b2)两点的直线斜率有如下的算法:第一步:取 x1= a1, y1= b1, x2= a2, y1= b2;第二步:若 x1= x2;第三步:输出斜率不存在;第四步:若 x1 x2;第五步:计算 ;12yk第六步:输出结果.6、写出求过两点 M(-2,-1)、N(2,3)的直线与坐标轴围成面积的一个算法.第一步:取 x1=-2, y1=-1, x2=2, y2=3;第二步:计算 ;1212第三步:在第二步结果中令 x=0 得到 y 的值 m,得直线与 y 轴交点(0,m);第四步:在第二步结果中令 y=0 得到 x 的值 n,得直线与 x 轴交点(n,0);第五步:计算 S= ;|21nm第六步:输出运算结果