用穷举法设计程序说课教案.ppt
用穷举法设计程序说课教案,说课人:xxx,一、教材分析,本节内容是教育科学出版社出版的普通高中信息技术算法与程序设计教材第四章第节用穷举法设计程序的教学内容,包括用穷举法求解问题的基本过程、穷举法的基本思路,穷举法中变量的安排,穷举法中穷举方案的选择等。本节建议使用两个课时来完成。第一课时:穷举法求解问题的基本过程、穷举法的基本思路,穷举法中变量的安排,第二课时:穷举法中穷举方案的选择。而本节课是穷举法的第一课时。,二、学情分析,本节内容的教学对象是高二年级学生,他们已经具备了一定的逻辑思维、分析问题、表达思想等能力。同时,通过前几个章节的学习与实践,学生已具备了一定的编程和程序调试经历,为本节内容的学习提供了良好的基础,但是他们也是刚刚开始接触编程,所以要从读程序开始,首先要求他们能读懂程序,能够根据题意把程序填写完整,之后慢慢引导他们自己动手编写简单的程序。,三、教学目标,课程标准中的相关内容:1、了解穷举法的基本概念及用穷举法设计算法的基本过程。2、能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问题。根据课程标准,确定本节课(用穷举法解决问题的基本过程)的教学目标如下:,三、教学目标,1、知识与技能了解穷举法的基本概念及特点能归纳穷举法穷举的关键。(设置穷举变量、变量变化范围、书写验证条件)了解穷举法设计程序的基本过程。能够根据具体问题的要求,使用穷举法思想分析问题,设计算法,编写程序求解问题。能够根据具体问题的条件,进行算法优化。,三、教学目标,2、过程与方法经历用穷举法求解问题的基本过程。能通过实际问题的分析、求解过程,尝试归纳出利用穷举法解决问题的思路和方法。,三、教学目标,3、情感态度与价值观在解决问题的过程中进一步培养和提升学生的逻辑思维能力培养学生算法优化的思想。了解穷举法在破解密码方面的现实应用,自觉养成保护密码的良好习惯。,四、教学重点,1、用穷举法解题的基本思路和过程2、代码的编写,对于初学编程的学生关键是循序渐进的为学生展示是怎么利用穷举法来编写程序解决问题的。,五、教学难点,1、分析问题2、建立数学关系3、构造算法4、确定穷举的范围,六、教的方法,1、案例教学引入百钱买百鸡的案例,让学生用数学的方式解决问题,给总结用方程来解决的步骤,分析问题,列出方程,根据方程进行穷举,看是否满足条件,如果满足就是方程的解,反之则不是。2、讲授法提炼出穷举法的概念,结合例子为学生讲解穷举法的概念,让学生易于理解,引起学生讯息的兴趣。3、任务驱动分小组完成任务,根据穷举法的概念破解丹姆斯顿惨案,以及完成破解邮箱密码的小组活动,七、学的方法,1、小组协作给出丹姆斯顿惨案后,小组成员互相讨论,结合老师所讲的内容,破解丹姆斯顿惨案,找出真凶,培养学生的合作意识和竞争意识。2、自主探究让学生自己上网搜一些有关用穷举法解决问题的案例,或者是用穷举法可以解决的现实生活中的例子,自己动脑筋想想,下节课的时候花几分钟的时间大家分享各自的答案。或者是我所给的例子“古希腊数学丢番图的墓志铭上有如下记载:下面的数字可以告诉你他的一生有多长:他生命的六分之一是愉快的童年,再过了生命的十二分之一,面颊上长了细细的胡须;又过了生命的七分之一他结婚了。婚后5年,他有了第一个孩子,感到很幸福,但命运给这个孩子的光辉灿烂的生命只有他父亲的一半。儿子死后,他在深切的悲痛中活了四年就告别了尘世。请设计用穷举法求出丢番图的年龄。“二者选一来完成。,八、教学过程,一、复习for循环通过提问让学生回忆for循环的基本结构及其用法,再通过让学生填空用for循环实现求100以内的偶数和的程序中,然后再把题目改为求100以内的奇数和,提问学生把已有的程序怎么改就可以实现。dim n as integer for n=0 to 100 step 2 sum=sum+n next n print sum求奇数和只要把n的出事变量值改为1,或者只要把print sum 改为print sum-50设计意图:提问的方式为了检查学生对之前所学内容的掌握情况,巩固之前所学,有利于集中学生的注意力,同时为学习穷举法设计程序打好基础。,八、教学过程,二、案例引入 百钱百鸡问题:相传我国南北朝时期,京城有个卖的张姓老汉,他有一个儿子非常聪明,尤其擅长算术,到十二三岁时已是远近闻名的“小神童”了。当朝宰相听说后想试探个究竟,于是派仆人到张老汉的店里打听鸡的价钱,张老汉告知:“公鸡五文钱一只,母鸡三文钱一只,小鸡一文钱三只”。于是,仆人给他一百文钱,要求公鸡、母鸡、小鸡都要,数量不多不少正好一百只,命他次日送到府上。这可难为了张老汉,他怎么凑也凑不够这个数,只好问儿子。“小神童”不慌不忙,掐指一算就给出了答案,第二天照数送到宰相府。宰相见难不倒“小神童”,又让仆人给张老汉一百文钱,要求再买一百只鸡,搭配方法不能和上次一样。结果“小神童”又很快给出了答案,宰相暗暗称奇,想最后再试一次,谁知还是没有难倒“小神童”。,八、教学过程,给出案例后先让学生试着用数学的方式求解,提问学生怎么解决,不同的学生会有不同的回答。给出总结:这道题相当于数学中的三元一次方程,要解决这个问题需要设三个未知数x、y、z,然后要列三个方程。但是根据题目我们只能列出两个方程,即x+y+z=100 5x+3y+z/3=100还能知道x、y、z的取值范围是098且都是整数。这种情况就只有把可能的数值一个个列出来求解,看是否符合这两个条件,如果符合,那么就是这个方程的解,如果不符合,就不是。设计意图:通过讲故事的形式引出案例,吸引学生的注意力的同时,也有助于教学内容的引入,让学生带着强烈的求知欲进行接下来色学习,有利于教学的展开和实现教学目的。,八、教学过程,三、穷举法的概念 总结穷举法的概念,并结合例子讲解1、概念:有点像数学上说的“完全归纳法”,即遍历出所有可能的情况,逐个判断哪些是符合问题所要求的条件,从而得到问题的解答,穷举法实际上是一种效率不是很高搜索,八、教学过程,2、案例:12月13日凌晨3:13,丹姆斯顿大街上的卡尔一家发生了命案,卡尔先生一家人无一幸免。警局接到报案后立即派人赶往现场,经过现场勘察、取样,确定为有人蓄意谋杀经过多方取证,最后嫌疑犯锁定在卡尔先生的四名同事身上,经审讯得来的口供,警方确定四人中有一名嫌疑犯在说谎,而说谎的这个人就是杀害卡尔一家的凶手。四名嫌疑人(用甲、乙、丙、丁表示)的口供如下,请你判断找出,谁在说谎?警官问:“12月13日下午15:00至16:00谁离开过办公室?”甲说:“不是我”,乙说:“是丙”,丙说:“是丁”,丁说:“不是我”。小组讨论,说出到底谁在说谎。并说明你是怎么判断的。设计意图:教师总结便于学生对概念进行准确定位,通过举例子,分配小组任务,以便学生更易理解概念,积极参与到课堂活动中,同时培养学生的合作意识和竞争意识。,八、教学过程,四、用穷举法解决问题 了解穷举法的概念以后,让学生试着用穷举法解决“百钱买百鸡“的问题给出程序的一部分让学生填空,再提问能否对程序进行优化(为了提高程序执行效率,可以对循环次数进行优化,即减少循环次数),八、教学过程,Dim x,y,z as integerPrint“公鸡”,“母鸡”,“小鸡”For x=1 to(1)for y=1 to 98 z=(2)if(3)=100 then print x,y,z end ifnext ynext x优化程序:for x=1 to 19 for y 1 to 32,八、教学过程,设计意图:让学生学以致用,让他们知道所学习的科学知识是有用武之地的,更易激起学生的学习热情,填空是为了让学生慢慢了解编程,不会有编程很难这种先入为主的思想,让他们循序渐进的了解编程。利于今后的编程学习。,八、教学过程,五、总结利用穷举法求解的关键(1)确定范围:问题所涉及的情况有哪些,情况的种数可不可以确定,一般要使用多重循环。(2)验证条件:分析出来的这些情况,需要满足什么条件,才成为问题的答案。(3)最优化设计:尽可能减少循环次数,在考虑效率的同时,也要考虑程序的易读性。设计意图:归纳总结穷举法解决问题的关键,让学生全面了解穷举法解决问题的一般步骤,以便学生用穷举法编写程序。,八、教学过程,六、小组活动,解密,先给学生分析一下,让学生小组讨论,给出本组的解决方案,最后给予评价总结,给出部分代码,让学生填空 张怡有一个EMAIL邮箱的密码是一个5位数。但因为有一段比较长的日子没有打开这个邮箱了,小张把这个密码给忘了。不过张怡自己是8月1日出生,而她妈妈的生日则是9月1日,她特别喜欢把同时是81和91的倍数用作密码。张怡还记得这个密码的中间一位(百位数)是l。你能设计一个程序帮她找回这个密码吗?,八、教学过程,总结:方案一:5位数:a1a21a4a5定义变量:dim a1,a2,a4,a5 as integer dim d as long五位数表示:d=a110000+a2 1000+1 100+a4 10+a5满足条件:if(d mod 81=0)and(d mod 91=0)then print dDim a1,a2,a4,a5 as integerDim d As(1)For a1=(2)To 9 For a2=0 To 9 For a4=0 To 9 For a5=0 To 9 d=a1*10000+a2*1000+1*100+a4*10+a5 If(3)And(d Mod 91=0)Then Print dNext a5,a4,a2,a1,八、教学过程,方案二:把算法一的方法反其道而行之。5位数字的范围是1000099999,在此范围内穷举,满足以(1)每这个5位数分解出它的百位数字检验它是否为1;(2)再判断此5位数是否同时被81和91整除就Dim a as long For a=10000 To 99999 b=a 100 Mod 10 If(1)And(2)=0 Then Print“密码是”;a Next a,八、教学过程,方案三:受算法二的启发,有解的范围只限于同时是81和91的倍数。8l和91的最小公倍数是7371,所以我们只在5位数中就7371的倍数进行穷举,然后分离出它的百位数字判断是否是1就能得到答案。我们知道5位数中最小的7371的倍数为:7371214742 For a=(1)To(2)Step 7371 b=a 100 Mod 10 If b=1 Then Print 密码是:;a Next a,八、教学过程,设计意图:以学生熟悉的贴近生活的案例,更易引起学生的兴趣和探究的热情。分小组讨论培养学生的合作意识、竞争意识和集体荣誉感。,八、教学过程,八、课堂小结 1、穷举法的概念 2、利用穷举解题的关键 3、穷举方案的选择(优化程序)让学生回忆穷举法的概念,并举出生活中可以用穷举法解决的例子(银行卡解密,密码箱,丢番图墓志铭等等)让学生结合百钱百鸡问题,总结穷举法解决问题的关键,八、教学过程,九、课后作业1、思考:我们使用银行卡在ATM机上取钱时,为什么系统要限制输入密码的次数?联系本节课学习的内容思考,如果不限制输入密码次数会有什么后果?为什么?2、算24(2001年省小学组竞赛题四)。给出4个1-1000之间的整数,用这四个整数,通过+、-、*的运算而得到24,运算规则如下:(1)每个数必须使用一次,只能使用一次。(2)运算符无优先级之分,自左向右计算。例如:输入4个数为2,9,3,1则计算方法为3+9*2*1=24,八、教学过程,3、自己上网搜一些有关用穷举法解决问题的案例,或者是用穷举法可以解决的现实生活中的例子,或者是我所给的例子“古希腊数学丢番图的墓志铭上有如下记载:下面的数字可以告诉你他的一生有多长:他生命的六分之一是愉快的童年,再过了生命的十二分之一,面颊上长了细细的胡须;又过了生命的七分之一他结婚了。婚后5年,他有了第一个孩子,感到很幸福,但命运给这个孩子的光辉灿烂的生命只有他父亲的一半。儿子死后,他在深切的悲痛中活了四年就告别了尘世。请设计用穷举法求出丢番图的年龄。“自己动脑筋想想,下节课的时候花几分钟的时间大家分享各自的答案。二者选一来完成。,九、教学反思,1、亮点在于所用的案例贴近生活,去问性强,易于吸引学生的兴趣,调动课堂的氛围,集中学生的注意力。2、小组协作的学习方法让学生积极的参与到课堂教学活动中来,利于教学的展开和教学目标的实现。3、不足在于课堂练习较少,不利于检查学生对所学内容的掌握情况。,谢谢观赏!,