中小学教育资源及组卷应用平台
第21课 鸡兔同笼巧计算 教学设计
课题 鸡兔同笼巧计算 单元 第六单元 学科 信息科技 年级 五年级
教材分析 【学情分析】通过枚举遍历所有数据是一种简单直接的数据查找方法。本单元的遍历主要指将问题所有可能的数据都通过枚举法查找出来。在枚举过程中,检查每个结果是否是当前问题的正确答案。如果是,则问题解决完成;如果不是,则继续枚举,直到所有可能的数据都被访问和检查完成。在进行归纳推理时,如果逐个考查了某类事件的所有可能情况后得出一般性结论,那么该结论通常是可靠和稳定的。遍历是一种访问数据、处理数据的方法,在算法实现中,可以用于搜索、排序、过滤等操作。实际上,在前面的学习中,已经多次用到通过枚举法遍历数据的方法。例如,找出 1 到n之间所有能被 5 整除的自然数,通过逐个检查 1 到n之间的所有自然数,判断其是否能被 5 整除,如果能被整除就输出显示。又如,破解密码锁的问题,也是通过逐个检查相应范围内的所有字符组合,从而找到满足条件的答案。在现实生活中,人们也常用这种方法思考问题、解决问题。例如,鸡兔同笼问题,起初会用“凑数”的方法来寻找答案,这个“凑数”过程其实就是通过枚举法遍历所有可能数据的过程。但人思考、解决这个问题时,通常仅限于数据量较小的情况,如果数据量较大,这个“凑数”过程就会很耗费时间。如果编程让计算机通过遍历所有数据来求解,因为计算机运算速度非常快,数据处理能力很强,只需非常短的时间就能完成任务。因此,用计算机解决问题时,通过枚举法遍历所有数据是一种常用而且有效的问题求解方法。本单元通过几个典型例子,让学生认识通过遍历数据解决问题的基本过程和方法,提升分析问题与解决问题的能力,培养适应数字时代的思维能力、创新能力。【内容结构】
学习目标 1. 信息意识:在问题求解过程中,有意识地寻求恰当的算法解决问题,尝试利用算法解决现实生活中的问题。2. 计算思维:对于给定的任务,能将其分解为一系列的实施步骤,使用顺序、分支、循环三种基本控制结构简单描述实施过程,通过编程验证该过程。3. 数字化学习与创新:根据学习任务,合理选择数字设备、平台和资源,通过任务分解的方式提高学习效率。4. 信息社会责任:知道实际应用中的算法一般都存在某些局限,增强在信息社会中的责任担当和正确应对能力。
重点 通过表格列出鸡和兔的数量变化,发现其中的规律;鸡兔同笼问题的算法流程图描述。
难点 鸡兔同笼问题的算法流程图描述。
教学过程
教学环节 教师活动 学生活动 设计意图
激趣导入 【“鸡兔同笼”问题】我国古代典籍《孙子算经》中记载了许多有趣的问题,其中就有“鸡兔同笼”问题。书中是这样描述的:今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?这段话的意思是:有若干只鸡和兔关在同一个笼子里。从上面数,有35 个头。从下面数,有 94 只脚。这个笼子里的鸡和兔各有多少只?【提问】同学们,你们能用数学方法求解吗? 思考、注意 吸引学生的注意力,激发学生的学习兴趣,引发学生思考。
学习活动 【学习活动1】一、用数学算式求解鸡兔同笼问题为了便于理解,先把原问题的数量减少为:今有鸡兔同笼,上有6头,下有18足,问鸡兔各几何?这里的 6 个头,表明是 6 只鸡或兔。方法 1 :假设 6 只全部是兔。如果全部是兔,那么 6 只兔一共有 24 只脚,实际上只有 18 只脚,于是需要减少 6 只脚,即 24-18 = 6。这样,自然就是 3 只兔和 3 只鸡。方法 2 :假设 6 只全部是鸡。如果全部是鸡,那么一共有 6×2 = 12 只脚,实际上有 18 只脚,于是少了 6 只脚,即 18-12 = 6。需要把 6 只脚添加上,自然就是 3 只兔和 3 只鸡。还原问题的求解:今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?方法 1 :假设 35 只全部是兔。 鸡:(35×4 - 94)÷2 = 23(只) 兔: 35 - 23 = 12(只)方法总结:鸡的数量 =(总头数 ×4 - 总脚数)÷2方法 2 :假设 35 只全部是鸡。兔:(94 - 35×2)÷2 = 12(只) 鸡:35 - 12 = 23(只)方法总结:兔的数量 =(总脚数 - 总头数 ×2)÷2【想一想】除了用上面的算式求解,还可以用什么方法求解?引导学生回答:枚举法。【学习活动2】二、用枚举法求解鸡兔同笼问题1. 列表显示数据变化过程先假设35 只都是鸡,计算出脚的数量;如果数量不符合,则减一只鸡,增加一只兔,再计算脚的数量;如此循环遍历,直到找到正确的鸡和兔数量:23 只鸡和 12 只兔。2. 算法描述根据以上分析,用自然语言描述求解的算法。第 1 步:初始化鸡的数量“a = 35”和兔的数量“b = 0”。第 2 步:计算脚的数量“c = a×2 + b×4”。第 3 步:把脚的数量与 94 进行比较。如果不相等,将鸡的数量减 1,将兔的数量加 1,并回到第 2 步继续循环;如果相等,则输出当前鸡的数量和兔的数量,结束循环。算法的流程图【进一步思考】如果先假设 35 只都是兔,用枚举法遍历相应数求解时,应该对算法进行哪些调整?【教师总结】第1步:初始化,鸡的数量“a = 0”,兔的数量“b = 35”。第2步:计算脚的数量“c = a×2 + b×4”。【学习活动3】三、编程验证鸡兔同笼问题可以用循环结构实现,通过不断增加兔的数量和减少鸡的数量,逐步接近正确答案。下面是一个参考程序。在 Python 中,通常可以用 while True 语句创建一个无限循环,表示循环体内的指令会不断地重复执行,直到循环体内出现某种能够终止循环的指令,如 break 语句。该程序利用 if……else……语句作为判断脚数量是否等于 94 的条件,并在获得鸡和兔的正确数量后,通过 break 语句退出循环。【小提示】程序编写是算法转化为代码的过程,需要依据语法使用规则,准确输入名称、符号、对齐方式等。 听讲、思考、讨论 教师通过讲授课程内容,向学生传授知识。学生通过听讲和观察,学习基础知识。另外,通过提问等方式引发学生思考,培养其思考和分析问题的能力。
课堂小结 知识回顾 对课堂知识进行总结和梳理,帮助学生更好地理解和掌握所学内容。
拓展-提升 1. 韩信是我国历史上很有领兵能力的一名将领。在民间流传着这样的一个故事。有一次,汉军统帅韩信带 1 500 名勇士与楚军交战,战死四五百人。为了再战,韩信快速地清点了人数,他要求 3 人一排站队,结果多出 2 人;5人一排站队,多出 4 人;7 人一排站队,又多出 6 人。韩信马上宣布,我军有 1 049 名勇士。汉军本来就信服韩信,这一来更相信他有神机妙算。于是士气大振,一鼓作气,击败楚军。那么,在知道了这三次布阵的结果后,韩信是如何算出到底有多少名士兵呢?如何设计算法让计算机来找出这个数? 巩固、拓展 通过拓展,帮助学生巩固、延伸所学内容,强化对所学知识的掌握。
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
HYPERLINK "http://www.21cnjy.com/" 21世纪教育网(www.21cnjy.com)