4.3非数值计算教学设计-2024-2025学年教科版(2019)高中信息技术必修一第四单元

2025-01-08
| 4页
| 898人阅读
| 1人下载
特供

资源信息

学段 高中
学科 信息技术
教材版本 高中信息技术教科版必修1 数据与计算
年级 高一
章节 4.3 非数值计算
类型 教案-教学设计
知识点 -
使用场景 同步教学-新授课
学年 2025-2026
地区(省份) 江苏省
地区(市) 苏州市
地区(区县) -
文件格式 DOCX
文件大小 426 KB
发布时间 2025-01-08
更新时间 2025-01-09
作者 魄狱芒
品牌系列 -
审核时间 2025-01-07
下载链接 https://m.zxxk.com/soft/49841789.html
价格 1.00储值(1储值=1元)
来源 学科网

内容正文:

教学设计 太仓市明德高级中学 赵 斌 课题 非数值计算 教学目标 1. 运用合适的算法形成解决问题的方案 2. 了解算法中的分治思想,运用二分法查找来解决实际问题 3. 体验递归算法,结合具体问题进行编程实践。 教学内容 教学重点: 1. 在实际问题解决过程中理解分治思想 2. 掌握二分法和递归法的原理 教学难点: 1. 理解二分法和递归法并尝试解决实际问题 2. 正确分析问题并形成与之匹配的问题解决的方案 教学过程 一、课堂导入:展示流程图如下: 引导学生分析,描述该流程图实现的功能是:(猜数字)。 从读流程图的过程中了解学生对计算机解决问题的过程的认知情况,为后续课堂开展做好铺垫。 语句1:cai==num 语句2:cai<num (请学生上台将判断语句拖放在正确的目标区域,完善流程图后能正确实现所需的功能) 二、二分法学习 1.执行“while循环猜数字.py”程序,尝试猜数字游戏,观察游戏过程,进一步理解导入中的流程图所描述的问题解决过程,根据学生的运行情况,引导应用二分法来完成数字游戏。 (程序代码如下) ''' 猜数字游戏,随机生成1到10之间的数字(含1和10000),每次输入一个数字, 如果与随机生成的数字相同,则退出,否则重新输入,输入-1表示退出游戏。 ''' import random jznum = random.randint(1, 10000) normal = True#设置条件的初始值 count = 0 while normal: number = int(input("请输入你要猜的数字[1,10000],退出程序请输入-1 ")) if number == -1: normal = False#设置条件的值,使得退出循环 print("程序已退出,游戏结束") if number == jznum: count += 1 print("你猜中了,本次数字为:", number, "猜了:", count, "次", "本次游戏结束,程序将退出") print("游戏结束") normal = False else: if number > jznum: count += 1 print("你猜了:",count, "次", "大了,请继续猜") else: count += 1 print("你猜了:",count, "次", "小了,请继续猜") input("回车可退出程序") 2.执行“循环猜数字提示过程.py”,理解并描述二分法的运行思路。(程序如下) 在“while循环猜数字.py程序中,”,将提示语句修改为加粗部分语句。 if number > jznum: count += 1 maxnum = number print("你猜了:",count, "次", "大了,请继续,建议猜", math.ceil((minnum + maxnum)/2)) # 表示向上取整 else: minnum = number count += 1 print("你猜了:",count, "次", "小了,请继续,建议猜", math.ceil((minnum + maxnum)/2)) 引导学生思考二分法的设计四步骤: 1.确定查找区间的左侧边界和右侧边界 minnum=1 maxnum=10000 2.寻找中间数 number = math.ceil((minnum+maxnum)/2) 在这个实现过程中使用了math数学库中向上取整函数ceil,使得求得的中间数有一个规律性的处理。 3.中间数和目标数进行比较,以确定下一步的查找区域 if number > jznum: # jznum是随机产生的让用户去猜测的数 maxnum = number # 右边界左移 else: minnum = number # 左边界右移 4.重复上述的2、3步骤,直到找到目标数 以上四个步骤归纳后就是二分法的运行思路和设计技巧,在实际应用的过程中,我们还要做临界点的处理。 课堂练习:在网站中完成“翻页游戏”程序调试,观察学生表现。 三、递归法学习 (请学生上台在课件中尝试选择游戏步骤,完成将木块从A搬到C,且最底层最大) 具体实施过程如下图所示 A B C A B C A B C A B C A B C A B C A B C A B C 当要解决的问题具有一定的关系,我们可以用递归的形式来解决问题。 思路描述:从整体上来看问题,找出关系,找出最小的解决方案。运用Python自定义函数的形式,进行递归法的设计。 在网站中完成“爬楼梯”程序调试,观察学生表现。 情境描述:(日常爬楼梯) 每天来机房上课,学生需要走很多楼梯,有的学生一步一个台阶,有的学生一步两个台阶,以此生活情境为案例,写出爬楼梯的递归程序,看在一定楼梯数量的前提下,如果获取实施方案的数量。 def plt(n): if n==1: return 1 elif n==2: return 2 else: return plt(n-1)+plt(n-2) n=int(input("请输入楼梯阶数:")) print("方案数:",plt(n)) 四、策略依据 孙子兵法有云:“凡治众如治寡,分数是也。”我们看一个问题,如果一时难以解决,不妨分割这个问题,形成较小的同类问题,逐渐击破,最终达成解决问题的目的。在程序设计中,我们称之为分治策略。 五、总结反思 分治就是将复杂问题进行分割,形成同类的子问题后,达成较易解决问题的目的,本节课主要以二分法、递归法为学习案例,明确其实现原理,形成问题解决的初步能力。 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

4.3非数值计算教学设计-2024-2025学年教科版(2019)高中信息技术必修一第四单元
1
4.3非数值计算教学设计-2024-2025学年教科版(2019)高中信息技术必修一第四单元
2
相关资源
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。