1、教材章节:1.1.1课题:算法的概念教学目标:1知识与能力:(1)体会算法思想,感悟算法含义(2)了解算法的主要特点:有限性、确定性、程序性、普适性(3)能用自然语言写出简单问题的算法(4)培养学生严密的逻辑思维能力,建立数学与算法思想的联系,提升学生的数学素养和算法意识2过程与方法:本节课突出重点突破难点的关键是重在对案例的算法的分析,案例的选择也主要从算法的典型性、与已往知识的连续性和可接受性的角度出发,使学生能够通过案例的学习理解算法的本质根据本课时内容特点,教学中采用:小组讨论,合作探究的方式,促进知识的“动态生成”3情态与价值:培养学生独立思考、合作交流的意识;增强学生算法意识重点:
2、体会算法思想,感悟算法含义,把握算法的主要特点 难点:用自然语言写出算法过程教学过程:一、本意引言算法是数学及其应用的重要组成部分,是计算科学的重要基础算法在科学技术、社会发展中发挥着越来越大的作用,并日益融入社会生活的许多方面,算法思想也正在成为普通公民的常识,成为现代人应具备的一种基本数学素养中国古代数学在世界数学史上一度居于领先地位它注重实际问题的解决,以算法为中心,寓理于算,其中蕴涵了丰富的算法思想计算机是20世纪最伟大的发明,它把人类社会带进了信息技术时代,而算法是计算机科学的重要基础,有算法计算机才能正常工作要想了解计算机的工作原理,算法的学习是一个开始二、导入新课同学们一定都会使
3、用计算机吧?会会用计算机干什么?上网、玩游戏、查资料、听音乐、看电影这些只是计算机的使用那么计算机是根据什么工作的?我们是怎样和计算机交流的?根据计算机程序运行的真正会用计算机是要会编写计算机程序来控制、指挥计算机工作如设计游戏软件如何编写计算机程序?算法正是编程的初步和基础从今天开始我们就来学习第一章算法初步通过这一章的学习我们将学会用自然语言描述算法、画出程序框图、进一步编写出计算机程序三、算法的概念实际问题:一个大人和两个小孩一起渡河,渡口只有一条小船,每次只能渡1个大人或两个小孩,他们三人都会划船,但都不会游泳试问他们怎样渡过河去?请你分步写出一个渡河方案第一步,两个小孩同船过河去;第
4、二步,一个小孩划船回来;第三步,一个大人划船过河去;第四步,对岸的小孩划船回来;第五步,两个小孩同船渡过河去 1算法概念的探究一:探究1:解下面的二元一次方程组需要什么样的步骤? 解:第一步,+2,得 ;第二步,解得;第三步,-2,得 ;第四步,解,得第五步,得到方程组的解为学生也可能使用加减消元法、代入消元法,也有可能先用加减消元法后用代入消元法不管使用那一种方法,只需强调按照一定规则解决问题的这些步骤就构成了解二元一次方程组的一个“算法”思考:写出解一般的二元一次方程组的具体步骤这五个步骤就构成了解一般的二元一次方程组的一个“算法”我们再根据这一算法编制计算机程序,就可以让计算机来解所有满
5、足条件的二元一次方程组(只需改变其中的值)了这样的算法就具有了一定得普遍适用性,不是为解决一个问题而设计算法,而是为了解决一类问题,这才是算法的真正价值小结:在数学中,按照一定规则解决某一类问题的明确和有限的步骤称为算法现代意义上的算法是可以用计算机来解决的某一类问题的程序或步骤 教师:你能举一个用算法解决问题的例子吗?对于好的例子可以作为后续学习、研究的课题 教师:其实算法并不神秘,就在我们的身边,生活中处处体现算法的思想,算法使我们的生活更高效、更有条理2算法概念的探究二:探究2:设计一个算法,判断7是否为质数第一步,用2除7,得到余数1,所以2不能整除7;第二步,用3除7,得到余数1,所
6、以3不能整除7;第三步,用4除7,得到余数3,所以4不能整除7;第四步,用5除7,得到余数2,所以5不能整除7;第五步,用6除7,得到余数1,所以6不能整除7;因此,7是质数变式一:设计一个算法,判断1997是否为质数分析:用21996逐一去除1997求余数,需要1995个步骤,这些步骤基本是重复操作,我们可以按下面的思路优化这个算法,减少算法的步骤(1)用i表示21996中的任意一个整数,并从2开始取数;(2)用i除1997,得到余数r若r=0,则1997不是质数;若r0,将i的值增加1,再执行同样的操作;(3)这个操作一直进行到i取1996为止教师可以在学生相互补充的基础上做点睛的指导优化
7、算法,着重解决如下难点:(1)重复的操作应该怎样处理?(2)给一个什么样的条件结束算法?变式二:判断一个大于2的整数是否为质数的算法步骤如何设计?第一步,给定一个;第二步,令i=2 大于2的整数n 第三步,用i除n,得到余数r第四步,判断“”是否成立若是,则不是质数,结束算法;否则,将增加1,仍用表示;第五步,判断“”是否成立若是,则是质数,结束算法;否则返回第三步教师:对于反复操作的问题只需给一个循环操作的条件,不管多么复杂都可以交给计算机去完成,这样的一类问题都得到了解决,意义是不可估量的如:数列求和问题、筛选问题、排序问题等等算法的普适性,数学的强大工具性得到了完美体现小结:算法最重要的
8、特征是什么?普适性:能解决一类问题,具有普遍适用的特点明确性:算法中的每一个步骤必须是有明确的定义的,不允许有模棱两可的解析,也不允许有多义性有限性:算法必须能在有限步完成程序性:算法是有一定逻辑次序的步骤序列,编制成计算机程序后是可以执行的3应用举例例1(见教材P3例1(2)例2(见教材P4例2)写出用“二分法”求方程的近似解的算法解:详见教材例3写出一个求有限整数列中的最大值的算法。解:算法如下: S1 先假定序列中的第一个整数为“最大值”。 S2 将序列中的下一个整数值与“最大值”比较,如果它大于此“最大值”,这时你就假定“最大值”是这个整数。 S3 如果序列中还有其他整数,重复S2。
9、S4 在序列中一直到没有可比的数为止,这时假定的“最大值”就是这个序列中的最大值。学生做一做 写出对任意3个整数a,b,c求出最大值的算法。老师评一评 在例2中我们是用自然语言来描述算法的,下面我们用数学语言来描述本题的算法。S1 max=aS2 如果bmax, 则max=b.S3 如果Cmax, 则max=c.S4 max就是a,b,c中的最大值。例4写出求1+2+3+4+5+6的一个算法。分析:可以按逐一相加的程序进行,也可以利用公式1+2+n=进行,也可以根据加法运算律简化运算过程。解:算法1:S1:计算1+2得到3;S2:将第一步中的运算结果3与3相加得到6;S3:将第二步中的运算结果
10、6与4相加得到10;S4:将第三步中的运算结果10与5相加得到15;S5:将第四步中的运算结果15与6相加得到21。算法2:S1:取n=6;S2:计算;S3:输出运算结果。算法3:S1:将原式变形为(1+6)+(2+5)+(3+4)=37;S2:计算37;S3:输出运算结果。小结:算法1是最原始的方法,最为繁琐,步骤较多,当加数较大时,比如1+2+3+10000,再用这种方法是行不通的;算法2与算法3都是比较简单的算法,但比较而言,算法2最为简单,且易于在计算机上执行操作。练习:求1357911的值,写出其算法。算法1:第一步,先求13,得到结果3;第二步,将第一步所得结果3再乘以5,得到结果
11、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不仅是正确的,而且是在计算机上能够实现的较好的算法。在上面的算法中,S3,S4,S5构成一个完整的循环,这里需要说明的是,每经过一次循环之后,变量P、i的值都发生了变化,并且生循环一次之后都要在步骤S5对i的值进行检验,一旦发现i的值
12、大于11时,立即停止循环,同时输出最后一个P的值,对于循环结构的详细情况,我们将在以后的学习中介绍。四、当堂训练五、课堂收获与感受:知识方面:在数学中,按照一定规则解决某一类问题的明确和有限的步骤称为算法算法特点:明确性;有限性;程序性、(顺序性、步骤性);普适性思维方法:体会从特殊到一般,从具体到抽象的研究问题的思维方法,体会算法思想、增强算法意识六、课后作业1写出解一元二次方程的一个算法。2写出求1至1000的正数中的3倍数的一个算法(打印结果)。1解:算法如下:S1 计算=b2-4acS2 如果0,则方程无解;否则x1=S3 输出计算结果x1,x2或无解信息。2解:算法如下:S1 使i=
13、1S2 i被3除,得余数rS3 如果r=0,则打印i,否则不打印S4 使i=i+1S5 若i1000,则返回到S2继续执行,否则算法结束。3写出解不等式的步骤。解:算法如下:第一步:计算= ;第二步:若0,示出方程两根(设x1x2),则不等式解集为x | xx1或xx2;第三步:若= 0,则不等式解集为x | xR且x;第四步:若0,则不等式的解集为R。4求过P(a1,b1)、Q(a2,b2)两点的直线斜率有如下的算法:第一步:取x1= a1,y1= b1,x2= a2,y1= b2;第二步:若x1= x2;第三步:输出斜率不存在;第四步:若x1x2;第五步:计算;第六步:输出结果。5写出求过两点M(-2,-1)、N(2,3)的直线与坐标轴围成面积的一个算法。解:算法:第一步:取x1=-2,y1=-1,x2=2,y2=3;第二步:计算;第三步:在第二步结果中令x=0得到y的值m,得直线与y轴交点(0,m);第四步:在第二步结果中令y=0得到x的值n,得直线与x轴交点(n,0);第五步:计算S=;第六步:输出运算结果