资源简介 中小学教育资源及组卷应用平台浙教版(2023)信息科技六上 第10课 “韩信点兵”枚举法的实现浙教版(2023)信息科技六上 第10课 “韩信点兵”枚举法的实现学科 信息科技 年级 六年级教材分析本课以“韩信点兵”问题为例,通过抽象建模、设计算法、验证算法三个步骤,让学生亲身体验算法解决问题的全过程。学生对于枚举算法的思想并不陌生,因为在现实生活中他们可能已经接触过并有一定的了解。在前一单元的“鸡兔同笼”问题解决过程中,学生已经学习了枚举算法。在本课中,学生将面临枚举算法的难点,特别是需要运用数学相关知识,理解并应用被除数、除数、商和余数的概念来实现枚举算法中的条件和模型。 本课的练习主要是利用枚举算法来解决问题。通过改变枚举范围和条件,让学生进一步理解枚举算法的要点和实现过程。教学目标理解枚举算法的思想,掌握枚举算法解决问题的一般过程。 通过使用枚举算法解决“韩信点兵”问题,掌握枚举算法的程序实现。学情分析学生通过前阶段的学习,了解掌握了算法与算法的表示,理解算法的三种控制解构,并初步掌握运用算法解决生活中实际问题的基本步骤,为学习算法的实现做好准备。教学重点、难点重点:掌握枚举算法解决问题的一般过程。 难点:掌握枚举算法的程序实现。教学准备1.网络教室、电子教材、流程图软件、Python编程环境。 2.“韩信点兵”相关图片、视频等素材。教学实施过程情境导入教师活动 学生活动 设计意图1.用韩信点兵视频导入,引出问题,组织讨论 观看视频,(电子教材操作)抛出问题:你知道“韩信点兵”的故事吗?韩信是怎么快速算出士兵的总人数的 师问:韩信带领一队士兵,3个3个数,余2个;5个5个数,余3个;7个7个数,余2个。一共有多少人呢?生答:人数可能是23,128,233,338,443,548,653,758…… 引出主题,“韩信点兵”故事是一个有趣的猜数游戏。其求解的算法有多种,如枚举法。 学生观看视频,思考讨论韩信点兵的原理。 引用了“韩信点兵”问题。该问题是学生熟悉的,也是我国古代数学的智慧结晶。引发学生真实情境下的思考。教学活动一 问题描述教师活动 学生活动 设计意图播放视频,引导学生了解枚举法的概念。 枚举法:把所有可能的值试一遍,最终得到结果。 2.问题描述:相传有一次,韩信带领1500名士兵去打仗。战后,死伤四五百人。剩下的士兵中,他命令士兵3人一排,结果多出2人;接着命令士兵5人一排,结果多出3人;又命令士兵7人一排,结果又多出2人。韩信马上算出人数:我军还有1073名勇士! 3.抛出问题:假如由你来“点兵”,你将采用何种算法? 生:使用枚举算法。 学生观看视频,讨论思考评判标准并进行小结。 学生分小组开展讨论 引导学生通过观察分析,总结提炼出规则要素,提升信息意识。 在讨论环节,教师可适当引导学生进行发散性思考,鼓励学生探索多种“点兵”算法,为后面几节课的学习做好铺垫。教学活动二 抽象与建模教师活动 学生活动 设计意图播放视频,韩信点兵的过程可表示为数的除法运算。 2.详细讲解“韩信点兵”枚举算法的实现过程。 “□”指剩的士兵总数,用变量x来表示。根据“死伤四五百人”可知,变量x的范围为1000~1100,且同时满足“x除以3余数为2、x除以5余数为3、x除以7余数为2”这三个条件。可建立如下模型: 枚举x在1000~1100范围内的每一个值,判断条件“x除以3余数为2、x除以5余数为3、x除以7余数为2”是否同时满足,满足条件的x就是要求的解。 即: 当x=1000时,条件“x除以3余数为2、x除以5余数为3、x除以7余数为2”是否同时满足? 当x=1001时,条件“x除以3余数为2、x除以5余数为3、x除以7余数为2”是否同时满足? 当x=1100时,条件“x除以3余数为2、x除以5余数为3、x除以7余数为2”是否同时满足? 3.组织学生讨论并归纳总结: 找出1000~1100中符合条件的数,即所求的枚举变量x。可用下表来表示: 除3除5除7△余O余<余10003331200014761001333220011430观看视频,了解“韩信点兵”枚举算法的实现过程。 组织学生讨论并归纳总结 观看视频,更直观了解韩信点兵的原理 讨论学习,提升学生计算思维。聚焦枚举算法的实现过程。教学活动三 算法设计教师活动 学生活动 设计意图观看视频,我们已经知道了韩信点兵的问题求解方法,谁能来描述一遍这个算法? 生回答:从1000~1100,条件同时满足除以3,余数为2,除以5,余数为3,除以7,余数为2,满足条件的x就是要求的解。 据上述抽象与建模,解决“韩信点兵”问题可采用枚举法。x依次取1000~1100范围内的值,采用循环结构;判断条件“x除以3余数为2,x除以5余数为3,x除以7余数为2”是否同时满足,可以采用分支结构。 算法设计,学生分组讨论并设计算法流程图。 学生思考并描述 学生动手实践,完成算法流程图。 让学生用自己的语言描述枚举算法 通过实践,完成流程图的,形成良好的设计算法的习惯教学活动四 算法程序实现教师活动 学生活动 设计意图1.观看视频,学习在Python基础知识,Python中,求余数的运算符为“%”,即表达式x%y的功能是“用x除以y,取余数”,如“5%2”的结果就是1。因此,条件“x除以3余2 ”就可表示为:x%3==2。 要判断多个条件是否同时满足,需要用“and”逻辑运算符,条件“x除以3余2,且x除以5余3,且x除以7余2”就可表示为:x%3==2 and x%5==3 and x% 7==2。 2.上述算法用Python语言编写的程序如下: x=1000 while x<1101: if x%3==2 and x%5==3 and x%7==2: print("剩余的士兵数为:",x) x=x+1 学生观看视频,注意学习Python的语法知识 学生观看老师编写程序,并尝试自己编写 明确Python的语法是开始编程的第一步。 学生初试程序编写,教师要做好演示,并强调格式和语法的重要性练习假如“韩信点兵”的问题描述修改为:韩信带领1500名士兵去打仗。战后,死伤一二百人。剩下的士兵中,他命令士兵3人一排,结果多出1人;接着命令士兵5人一排,结果多出4人;又命令士兵7人一排,结果多出3人。问:剩下的士兵一共多少人? 请你利用枚举算法解决上述问题。 练习参考答案 x=1300 while x<1401: if x%3==1 and x%5==4 and x%7==3: print("剩余的士兵数为:",x) break x=x+1 评价标准: 对算法修改进行评价,主要关注学生的思维方式和代码运行调试的能力等方面,如枚举范围的确定、枚举条件的表示、程序运行结果等。教学反思教师在创设情境与任务时要考虑学生的认知状况,适当放慢进度,在学生充分理解的基础上再进入下一个环节。 对学生的评价要关注学生的思维发展,注重过程性评价。 本课中教师应引导学生建立程序语法意识,要加强指导。21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)21世纪教育网(www.21cnjy.com) 展开更多...... 收起↑ 资源预览