高一【信息技术(人教中图版)】算法与程序综合应用1 (第十九课时)-教学设计.docxVIP

  • 124
  • 0
  • 约2.52千字
  • 约 6页
  • 2020-11-05 发布于江苏
  • 举报

高一【信息技术(人教中图版)】算法与程序综合应用1 (第十九课时)-教学设计.docx

课程基本信息 课例编号 学科 信息技术 年级 高一 学期 秋季 课题 算法与程序综合应用1 教科书 书名: 信息技术必修1 《数据与计算》 人民教育出版社;中国地图出版社 出版日期:2019 年 6 月 教学人员 姓名 单位 授课教师 指导教师 教学目标 教学目标: 复习与巩固Python语言的语句内涵,强化相关的编程知识; 通过编程实践,体验用计算机解决问题的一般过程,从而理解此过程中各个环节的实际内涵与意义; 通过对枚举、解析两种算法的实践,理解通过优化算法和综合应用算法思想来提高解决问题效率的意义。 教学重点:体验用计算机解决问题的一般过程,从而理解此过程中各个环节的实际内涵与意义。 教学难点:理解综合应用各种算法的思想来提升解决问题有效性的实际意义。 教学过程 时间 教学环节 主要师生活动 1’ 课前准备 打开“自主学习任务单”; 打开Python语言编译器Jupyter Notebook。 8’ 初步体验 初步体验 以“韩信点兵”的习题为例,引导学生开始体验计算机解决问题的一般过程。 【步骤1】提出问题 韩信是汉初著名军事家,传说他统计士兵数目有个独特的方法。例如,先令士兵排成5列纵队,结果余1人;接着,命令士兵排成6列纵队,结果余5人;再命令士兵排成7列纵队,结果余4人;最后命令士兵排成11列纵队,结果余10人。这样他便知道士兵的总人数了。这种计数的方法被后人称为“韩信点兵”。 试编写程序计算士兵的数目。 引导学生回顾前面课时中学习过的“计算机解决问题的一般过程”的几个步骤,带领学生对问题进行条理性的分析。 【步骤2】分析问题 将问题转化为数学问题,列出不定方程组X÷5=a?1X÷6 【步骤3】设计算法 结合计算机计算能力强、运算速度快的特点,引导学生尝试用枚举法来解决问题,并呈现算法流程图。 同时满足: 同时满足: X%5==1,X%6==5, X%7==4,X%11==10 输出X X:相应范围内依次取值 否 是 【步骤4】编程调试 在枚举法的基本编程思想的引导下,以for循环结构语句、if条件语句和具体表达式的写法为基本内容,带领学生一步一步完成程序代码的输入,并在编译器中运行。 for X in range (4000,5000): if X%5==1 and X%6==5 and X%7==4 and X%11==10: print(X) 【步骤5】解决问题 运行,得出在“4000多人”的情况下,满足条件的数值为4421。 问题似乎解决了?又似乎解决得不是那么完善? 13’ 深入体验 深入体验 提出程序的改进方案,从而引导学生认识并体验计算机解决问题并非纯粹是一个线性的过程,其间可能会反复循环、多次调整。 提出问题分析问题 提出问题 分析问题 设计问题 编程调试 解决问题 解决问题 解决问题 【任务一】理解改进后的程序,输入到编译器中运行,观察运行的结果。 y5=int(input(排成5列纵队,余下的人数:)) y6=int(input(排成6列纵队,余下的人数:)) y7=int(input(排成7列纵队,余下的人数:)) y11=int(input(排成11列纵队,余下的人数:)) A=int(input(部队总人数有几千人左右?)) for X in range (A-1000, A+1000): if y5==X%5 and y6==X%6 and y7==X%7 and y11==X%11: print(部队士兵总数应该是:, X , 人) 通过小视频播放,了解更贴近历史真实情况的“韩信点兵”,并引导学生对新问题进行分析,并尝试使用解析算法来编写程序、解决问题。 采用解析算法的原因在于:算法也有优劣之分,要尽可能地提升算法解决问题的效率。 新的“韩信点兵”问题又可以分为“同余”与“非同余”两大类问题,各自都有不同的解析式可以帮助求解问题的答案。 【任务二】对于用解析算法解决“同余问题”的情况,画出相应的算法流程图。 根据解析式和新的解析算法,再引导学生编写出新的程序代码,并运行,以观察运行的结果。 A = int(input(士兵约有几百来人?)) y = int(input(排好3列、5列、7列纵队后,所余人数为:)) n = (A+100) // 105 X = 105*n + y print(这群士兵有:, X , 人。) 然后,带领学生了解史书中对于“非同余问题”的求解歌诀,得出新的解析式。并根据此解析式,编写新的程序,运行后观察结果,发现问题。 A = int(input(士兵约有几百人?)) y1 = int(input(排3列纵队,所余人数为:)) y2 = int(inpu

文档评论(0)

1亿VIP精品文档

相关文档