非数值计算 一、基本说明 1.面向学生:高一年级 2.课课名称:《非数值计算》(高中信息技术教科版必修一数据与计算第四章第三节) 3.教学时间:45分钟 4.课时:1 二、教学目标 1.运用合适的算法形成解决问题的方案。 2.了解算法设计中的分治思想,灵活运用二分查找解决实际问题。 3.体验递归算法,并结合具体问题开展编程实践 三、教学重难点 (一)教学重点 理解分治算法与递归算法的原理。 (二)教学难点 能够选择合适的算法解决生活中的问题。 教学过程 【课前预习】(5min) 通过课前预习并设置前置性作业,检查学生学情并了解教学重难点。 课堂题目: 【课题引入】(3min) 运行程序“猜数字游戏”。计算机在0~100中随机产生一个数,学生尝试要多少次才能猜中。 ==》如何猜得又快又准? ==》采用二分查找法。 【新知讲授】(5min) 1.分治思想 分治的设计思想,是将个难以直接解决的大问题,分割成些较小的同类问题,各个击破,最终达到解决问题的目的。 教师以案例讲解二分查找法查找具体数据的过程。 【活动一设计】(5min) 运行“猜数字游戏”,理解二分查找法。并把任务一程序补充完整,求解二分查找中目标数据的查找次数。 x=int(input("请输入要查找的100以内的整数:")) step = 0 # 记录查找次数 flag1 = 1 # 目标区域左边界 flag2 = 100 # 目标区域右边界 while(flag1 <= flag2): mid = (flag1+flag2)//2 # 中间值 step = step+1 # 查找次数加 if mid>x: flag2 = ① # 右边界前移 ② mid < x: flag1 = mid+1 # 左边界后移 else: break #找到目标数据,退出循环 print("查找次数为:", ③) input("运行完毕,请按回车键退出...") 【新知讲授】(5min) 2.递归思想 通过一段视频引入“汉诺塔问题”,教师讲解“汉诺塔问题”的玩法。有三根柱子A、B、C。A柱上有N个盘子,大的在下,小的在上,要求把这N个盘子从A柱移到C柱,在移动过程中可以借助B柱,每次只允许移动一个盘子,并且在移动过程中三根柱子上都要保持大盘在下,小盘在上。 【活动二设计】(5min) 学生体验汉诺塔中三个或四个盘子的移动,并尝试寻找规律。 【新知讲授】(5min) 通过视频演示汉诺塔的规律,教师讲解原理。挑战把4个圆盘从A柱移到C柱的任务。 ① 将前三个圆盘从A柱移到B柱。 ② 将第四个圆盘从A柱移到C柱。 ③ 将前三个圆盘从B柱移到C柱。 【活动三设计】(5min) 学生继续挑战汉诺塔问题,移动4或5个盘子。 【新知讲授】(5min) 递归:直接或间接地调用自身的方法称为递归。可以将递归简单类比为具有自相似性重复的事物。 递归的基本思想:是把规模较大的问题层层转化为规模较小的同类问题求解。可用“分”,“治”,“合”三个字概括 递归的条件:递推关系+边界条件。 【课堂总结】(2min) 以思维导图总结概括本节课的知识点。 五、板书设计 数值计算 分治算法 递归算法 ... ...
~~ 您好,已阅读到文档的结尾了 ~~