资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,“,”,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,“,”,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,用法:,for,变量,in,范围,:,例如:,for i in range(1,100),:,复习:,1,、,for in,循环结构,2,、,if,选择结构,用法:,if,条件,1 or(and),条件,2,:,例如:,if,7,in str(i)or i%7=0,:,用法:for 变量 in 范围:例如:for i,用枚举算法寻找问题多解,信息技术,用枚举算法寻找问题多解信息技术,学习目标:,1,、掌握什么是枚举法;,2,、掌握用枚举算法设计程序的基本思路;,3,、学会使用枚举算法分析、解决,拍“,7,”小游戏问题和百钱买百鸡问题,。,学习目标:1、掌握什么是枚举法;,小游戏:“拍,7,”小游戏,游戏规则:,把从,1,开始的自然数中含“,7,”的数称作“明,7,”;把不含“,7,”且是“,7,”的倍数的数称作“暗,7,”。从,1,开始轮流报数,轮到报“明,7,”或“暗,7,”的人,不能出声,只拍一下手。,激趣导入,感受新知,小游戏:“拍7”小游戏游戏规则:把从1开始的自然数中含“7”,什么是枚举算法,把问题所有可能的解都一一列举出来,并按照问题要求的条件逐个判断每个答案是否是正确的解,做到不遗漏不重复,这就是枚举算法。,例如:搜索公交车路线、挑烂苹果、自行车轮胎修理,什么是枚举算法 把问题所有可能的解都一一列举出来,任务一:打开“明,7.py,”程序,修改程序并测试,找到,1-100,内的明,7,(,参考微视频,),#!/usr/bin/python3,n=100,for i in range(_),if _,print(,找到的明,7,数有:,i),任务驱动,探索新知,任务一:打开“明7.py”程序,修改程序并测试,找到1-1,任务一:打开“暗,7.py,”程序,修改程序并测试,找到,1-100,内的暗,7,(,参考微视频,),#!/usr/bin/python3,n=100,for i in range(_):,if _ and _:,print(,找到的暗,7,数有:,i),任务驱动,探索新知,任务一:打开“暗7.py”程序,修改程序并测试,找到1-1,枚举算法的解题思路,1,、确定,枚举对象,、,枚举范围,和,判定条件,,枚举对象是解决问题所需要逐一列举的研究对象,枚举范围是枚举对象所有可能情况所构成的集合,判定条件用于检验确定真正的解。,2,、逐一枚举可能的解,并验证每个解是否是问题的解。,枚举算法的解题思路1、确定枚举对象、枚举范围和判定条件,枚举,“拍,7,”小游戏代码:,枚举范围,:,100,以内,#!/usr/bin/python3,n=100,for i in range(1,n+1),:,if 7 in str(i)or i%7=0,:,print(i),枚举对象:,i,枚举条件,:含有,7,或者能被,7,整除,“拍7”小游戏代码:枚举范围:100以内#!/usr/bi,任务二:百钱买百鸡问题,公鸡每只,5,钱,母鸡每只,3,钱、小鸡,3,只,1,钱,用,100,钱买,100,只鸡,问:公鸡、母鸡、小鸡各多少只?,枚举范围,?,1100,或,3100,枚举对象,?,x,y,z,枚举条件,?,5,*,x+3*y+z/3=100,x+y+z=100,拓展延伸,巩固新知,任务二:百钱买百鸡问题公鸡每只5钱,母鸡每只3钱、小鸡3只1,任务二:打开“百钱买百鸡,.py,”程序,修改代码,并测试。(,小组合作,),#!/usr/bin/python3,for x in range(_):,for y in range(_):,for z in range(_):,if _:,print,(,公鸡、母鸡、小鸡的数量分别是:,x,y,z),任务二:打开“百钱买百鸡.py”程序,修改代码,并测试。(小,#!/usr/bin/python3,for x in range(_):,for y in range(_):,_,if _:,print(x,y,z),“百钱买百鸡改进,.py,”程序,改进代码,:,枚举范围,?,枚举对象,?,枚举条件,?,枚举对象可以减少循环嵌套的层数,枚举范围可以减少循环次数。,#!/usr/bin/python3“百钱买百鸡改进.py”,有趣的数学问题:,水仙花数,问题:,153=1,3,+5,3,+3,3,回文数,问题:,12321,鸡兔同笼,问题,密码箱,问题:,1,?,8,或,?,18,有趣的数学问题:水仙花数问题:153=13+53+33回文数,枚举法完成实现最简单,用于解决答案是多解的情况。,枚举算法的优劣:,优势:,劣势:,枚举算法要满足一定的条件,而且速度可能很慢,效率低,还有一些问题解决不了。,枚举法完成实现最简单,用于解决答案是多解的情况。枚举算法的优,跳绳:,甲同学每天跳绳的次数(用,a,表示),a1=100,第一天,a2=a1+5,第二天,a3=a2+5,第三天,乙同学每天跳绳的次数(用,b,表示),b1=100,第一天,b2=b1,第二天,b3=b2+10,第三天,跳绳:甲同学每天跳绳的次数(用a表示)a1=100,这节课你的收获,总结归纳,梳理新知,这节课你的收获总结归纳,梳理新知,当堂检测,当堂检测,乔布斯说过:每个孩子都应该学习编程,因为它教会你思考。希望同学们勤于动脑,大胆实践,争取也做一名编程高手!,乔布斯说过:每个孩子都应该学习编程,因为它教会,
展开阅读全文