- 2.4.3 算法与程序实现的综合应用1 ppt课件(50张ppt)+教案+学习任务单+练习题_2023新人教中图版《高中信息技术》必修第一册
- 算法与程序综合应用1 (第十九课时)-任务单.docx--点击预览
- 算法与程序综合应用1 (第十九课时)-教学设计.docx--点击预览
- 算法与程序综合应用1 (第十九课时)-练习题.docx--点击预览
- 算法与程序综合应用1 (第十九课时)-课件.pptx--点击预览
文件预览区
|
|
资源描述
自主学习任务单自主学习任务单学习指南学习指南1.课题名称:课题名称:算法与程序综合应用 12.学习目标:2.学习目标:复习与巩固 Python 语言的语句内涵,强化相关的编程知识;体验使用 Python 语言编程综合解决问题的完整过程;理解通过优化算法和综合应用算法思想,以提高解决问题效率的意义。3.本节知识点思维导图:3.本节知识点思维导图:学习任务学习任务1.课前测验:1.课前测验:回顾本单元算法与程序实现前面几个课时学习的内容,回答以下问题:(1)计算机解决问题的一般过程是怎样的?请用图示表现出来。(2)你知道哪些经典的算法?请写出 1-2 个算法的名字,并举例说明其内涵。提出问题2.任务一:任务一:观看微课中“用枚举法求解问题、编写程序”的内容,理解以下案例程序代码的内涵,在 Python 语言编译器中输入相关代码,体验运行结果。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,人)3.任务二:任务二:观看微课中“用解析法求解同余问题”的内容,尝试画出解决相关问题的算法流程图。4.任务三:任务三:观看微课中“用孙子歌诀解析求解非同余的、物不知数的非同余的、物不知数的问题”的内容,在以下案例程序代码的基础上进行修改修改,得到新的程序。并将语句输入编译器,运行,观察运行结果。新程序要实现的功能如下:(1)可以输入士兵人数的范围(最小值、最大值);(2)可以输入士兵排成 3、5、7 列纵队后分别得到的余数;(3)程序运行后,输出士兵准确的人数。A=int(input(士兵约有几百人?)y1=int(input(排 3 列纵队,所余人数为:)y2=int(input(排 5 列纵队,所余人数为:)y3=int(input(排 7 列纵队,所余人数为:)for n in range(A-100)/105,(A+100)/105):X=y1*70+y2*21+y3*15-105*n if X A-100 and X A+100:print(这群士兵有:,X,人。)开始拓展阅读资料拓展阅读资料1.孙子算经及其中关于“物不知数”的简介1.孙子算经及其中关于“物不知数”的简介孙子算经作者不可考,约成书于四、五世纪(中国南北朝时期)。此书是算经十书之一,也是中国古代最重要的数学著作之一。在孙子算经中,“物不知数”是其最重要的成就之一。书中提到:“今有物,不知其数。三三数之,剩二;五五数之,剩三;七七数之,剩二。问:物几何?答曰:二十三。”书中不仅给出了题目的答案,更重要的是给出了解法。此解法也被西方称之为:中国余数定理。2.评述算法的优劣性2.评述算法的优劣性同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间时间复杂度复杂度和空间复杂度空间复杂度来考虑。时间复杂度时间复杂度:一个算法执行所耗费的时间。空间复杂度空间复杂度:运行完一个程序所需内存的大小。评测反思评测反思1.知识小测:1.知识小测:结合微课资源,可以与同学进行讨论,共同完成以下作业内容:“鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”算经(北魏张丘建)【译文】公鸡每只五文钱,母鸡每只三文钱,小鸡每只一文钱。用一百文钱买了 100只鸡,公鸡、母鸡、小鸡各买了多少只?要求:编写程序,解决此问题。注意:算法执行的效率;交互界面的友好。2.学习评价:2.学习评价:评价指标评价等级及分值得分优秀9-10 分良好5-8 分一般3-4 分自评互评老师评项目实践完成度(50%)项目自主创新与个性化设计(10%)项目学习交流合作(20%)成果展示(20%)3.学习反思:3.学习反思:(1)通过本节课的学习,你最大的收获是什么?(2)在实践操作环节,遇到了哪些困难?你是如何解决的?(3)关于本节课的学习内容,列出你最想进一步研究的内容。课程基本信息课例编号学科信息技术年级高一学期秋季课题算法与程序综合应用 1教科书书名:信息技术必修 1 数据与计算 人民教育出版社;中国地图出版社 出版日期:2019 年 6 月教学目标教学目标:教学目标:1.复习与巩固 Python 语言的语句内涵,强化相关的编程知识;2.通过编程实践,体验用计算机解决问题的一般过程,从而理解此过程中各个环节的实际内涵与意义;3.通过对枚举、解析两种算法的实践,理解通过优化算法和综合应用算法思想来提高解决问题效率的意义。教学重点:教学重点:体验用计算机解决问题的一般过程,从而理解此过程中各个环节的实际内涵与意义。教学难点:教学难点:理解综合应用各种算法的思想来提升解决问题有效性的实际意义。教学过程时间教学环节主要师生活动1课前准备1.打开“自主学习任务单”;2.打开 Python 语言编译器 Jupyter Notebook。以“韩信点兵”的习题为例,引导学生开始体验计算机解决问题的一般过程。【步骤 1】提出问题韩信是汉初著名军事家,传说他统计士兵数目有个独特的方法。例如,先令士兵排成 5 列纵队,结果余 1 人;接着,命令士兵排成 6列纵队,结果余 5 人;再命令士兵排成 7 列纵队,结果余 4 人;最后命令士兵排成 11 列纵队,结果余 10 人。这样他便知道士兵的总人数了。这种计数的方法被后人称为“韩信点兵”。试编写程序计算士兵的数目。8初步体验引导学生回顾前面课时中学习过的“计算机解决问题的一般过程”的几个步骤,带领学生对问题进行条理性的分析。【步骤 2】分析问题将问题转化为数学问题,列出不定方程组 5=1 6=5 7=4 11=d10,需要求解 X 的数值。【步骤 3】设计算法结合计算机计算能力强、运算速度快的特点,引导学生尝试用枚举法来解决问题,并呈现算法流程图。【步骤 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。问题似乎解决了?又似乎解决得不是那么完善?同时满足:X%5=1,X%6=5,X%7=4,X%11=10输出 XX:相应范围内依次取值否是提出程序的改进方案,从而引导学生认识并体验计算机解决问题并非纯粹是一个线性的过程,其间可能会反复循环、多次调整。【任务一】理解改进后的程序,输入到编译器中运行,观察运行的结果。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,人)13深入体验通过小视频播放,了解更贴近历史真实情况的“韩信点兵”,并引导学生对新问题进行分析,并尝试使用解析算法来编写程序、解决问题。采用解析算法的原因在于:算法也有优劣之分,要尽可能地提升算法解决问题的效率。新的“韩信点兵”问题又可以分为“同余”与“非同余”两大类问题,各自都有不同的解析式可以帮助求解问题的答案。【任务二】对于用解析算法解决“同余问题”的情况,画出相应的算法流程图。根据解析式和新的解析算法,再引导学生编写出新的程序代码,并运行,以观察运行的结果。A=int(input(士兵约有几百来人?)y=int(input(排好 3 列、5 列、7 列纵队后,所余人数为:)n=(A+100)/105X=105*n+yprint(这群士兵有:,X,人。)解决问题提出问题分析问题设计问题编程调试解决问题深入体验然后,带领学生了解史书中对于“非同余问题”的求解歌诀,得出新的解析式。并根据此解析式,编写新的程序,运行后观察结果,发现问题。A=int(input(士兵约有几百人?)y1=int(input(排 3 列纵队,所余人数为:)y2=int(input(排 5 列纵队,所余人数为:)y3=int(input(排 7 列纵队,所余人数为:)for n in range(A-100)/105,(A+100)/105):X=y1*70+y2*21+y3*15-105*n if X A-100 and X A+100:print(这群士兵有:,X,人。)此时,引导学生发现:此程序的运行过程,不是单纯的解析算法思想的应用,其中也用到枚举法。而且是利用解析式缩小了枚举的范围,自然也是提升了运行的效率。从而,提醒学生注意:要辩证地看待算法与编程之间的关系,要学会综合地应用算法思想来解决问题。要辩证地看待算法与编程之间的关系,要学会综合地应用算法思想来解决问题。最后,再次引导学生发现程序中的漏洞,并在进行简单的、提示性的分析后,布置第三个任务。【任务三】在已有的程序上做出修改,以完善程序,使得输出准确的结果。2课堂小结1布置课后练习“鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”算经(北魏张丘建)编写程序,解决此问题。课程基本信息课程基本信息课题算法与程序综合应用 1教科书书名:信息技术必修一:数据与计算 出版社:人民教育出版社/中国地图出版社 出版日期:2019 年 6 月学生信息姓名学校班级学号课堂任务课堂任务1.任务一:任务一:观看微课中“用枚举法求解问题、编写程序”的内容,理解以下案例程序代码的内涵,在 Python 语言编译器中输入相关代码,体验运行结果。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,人)2.任务二:任务二:观看微课中“用解析法求解同余问题”的内容,尝试画出解决相关问题的算法流程图。开始开始3.任务三:任务三:观看微课中“用孙子歌诀解析求解非同余的、物不知数的非同余的、物不知数的问题”的内容,在以下案例程序代码的基础上进行修改修改,得到新的程序。并将语句输入编译器,运行,观察运行结果。新程序要实现的功能如下:(1)可以输入士兵人数的范围(最小值、最大值);(2)可以输入士兵排成 3、5、7 列纵队后分别得到的余数;(3)程序运行后,输出士兵准确的人数。A=int(input(士兵约有几百人?)y1=int(input(排 3 列纵队,所余人数为:)y2=int(input(排 5 列纵队,所余人数为:)y3=int(input(排 7 列纵队,所余人数为:)for n in range(A-100)/105,(A+100)/105):X=y1*70+y2*21+y3*15-105*n if X A-100 and X A+100:print(这群士兵有:,X,人。)课后练习课后练习结合微课资源,可以与同学进行讨论,共同完成以下作业内容:“鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”算经(北魏张丘建)【译文】公鸡每只五文钱,母鸡每只三文钱,小鸡每只一文钱。用一百文钱买了 100 只鸡,公鸡、母鸡、小鸡各买了多少只?要求:编写程序,解决此问题。注意:算法执行的效率;交互界面的友好。算法与程序综合应用1(第十九课时)高中信息技术课前准备课前准备2-12-1n调出调出“自主学习任务单自主学习任务单”,以配合本节课的学习内容,完成相关的学习任务。以配合本节课的学习内容,完成相关的学习任务。高中信息技术n打开打开AnacondaAnaconda管理器中管理器中Jupyter NotebookJupyter Notebook,并新建一个并新建一个Python3Python3脚本;脚本;课前准备课前准备2-22-2高中信息技术“物不知数”韩韩信信是是汉汉初初著著名名军军事事家家,传传说说他他统统计计士士兵兵数数目目有个独特的方法。有个独特的方法。例例如如,先先令令士士兵兵排排成成5 5列列纵纵队队,结结果果余余1 1人人;接接着着,命命令令士士兵兵排排成成6 6列列纵纵队队,结结果果余余5 5人人;再再命命令令士士兵兵排排成成7 7列列纵纵队队,结结果果余余4 4人人;最最后后命命令令士士兵兵排排成成1111列列纵纵队队,结结果果余余1010人人。这这样样他他便便知知道道士士兵兵的的总总人人数数了了。这种计数的方法被后人称为这种计数的方法被后人称为“韩信点兵韩信点兵”。试编写程序计算士兵的数目。试编写程序计算士兵的数目。提出问题提出问题高中信息技术“物不知数”提出问题提出问题求不出来。求不出来。修改题目?修改题目?士兵的总数士兵的总数是多少?是多少?高中信息技术提提出出问问题题解解决决问问题题计算机解决问题的一般过程高中信息技术计算机解决问题的一般过程提提出出问问题题分分析析问问题题设设计计方方案案编编程程调调试试解解决决问问题题高中信息技术计算机解决问题的一般过程提提出出问问题题分分析析问问题题设设计计算算法法编编程程调调试试解解决决问问题题高中信息技术物不知数。物不知数。提出问题提出问题高中信息技术物不知数。物不知数。提出问题 假设士兵总人数为假设士兵总人数为X X 分析问题分析问题高中信息技术 分析问题 设计算法设计算法计算机的特点之一:计算能力强、运算速度快计算机的特点之一:计算能力强、运算速度快算法一:枚举法算法一:枚举法 提出问题高中信息技术 设计算法设计算法算法一:枚举法算法一:枚举法X 5 5 =a 1 1X 6 6 =b 5 5X 7 7 =c 4 4X 11 11=d 1010高中信息技术 设计算法设计算法算法一:枚举法算法一:枚举法输出输出X XX X:相应范围内:相应范围内依次取值依次取值是是否否同时满足:同时满足:X%5=1,X%6=5,X%7=4,X%11=10高中信息技术 设计算法 分析问题 编程调试编程调试 提出问题高中信息技术for X in range(4000,5000):语句语句1 1:循环结构:循环结构士兵人数的大致范围士兵人数的大致范围?编程调试编程调试四千多人四千多人高中信息技术X%5=1语句语句2-12-1:表达式:表达式 编程调试编程调试高中信息技术X%5=1 and X%6=5 and X%7=4 and X%11=10语句语句2-22-2:条件限定:条件限定print(X)if:编程调试编程调试高中信息技术for X in range(4000,5000):X%5=1 and X%6=5 and X%7=4 and X%11=10print(X)if:编程调试编程调试高中信息技术运行程序运行程序 编程调试编程调试高中信息技术4421 编程调试 分析问题 解决问题解决问题 设计算法设计算法 提出问题高中信息技术程序的改进n数据输入可否更灵活?数据输入可否更灵活?n程序界面可否更友好?程序界面可否更友好?高中信息技术计算机解决问题的一般过程提提出出问问题题分分析析问问题题设设计计算算法法编编程程调调试试解解决决问问题题高中信息技术程序的改进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,人人)高中信息技术任务一任务一(“学习任务单学习任务单”)高中信息技术历史上的“韩信点兵”高中信息技术计算机解决问题的一般过程提提出出问问题题分分析析问问题题设设计计算算法法编编程程调调试试解解决决问问题题高中信息技术 分析问题分析问题X 3 3 =a 1 1X 5 5 =b 1 1X 7 7 =c 1 1士兵人数(士兵人数(X X)的大致范围)的大致范围:600:600余人余人高中信息技术 设计算法设计算法算法一:枚举法算法一:枚举法简便简便高中信息技术 设计算法设计算法算法二:解析法算法二:解析法提升算法的效率提升算法的效率高中信息技术 设计算法设计算法X 3 3 =a 1 1X 5 5 =b 1 1X 7 7 =c 1 1算法二:解析法算法二:解析法X-1=3 3 aX-1=5 5 bX 1=7 7 c 同余问题同余问题X-1X-1同时满足被同时满足被3 3、5 5、7 7整除。整除。高中信息技术 设计算法设计算法算法二:解析法算法二:解析法X=105*n+1同余问题同余问题Xmin=357+1 =105+1 =106n=(600+100)/105高中信息技术任务二任务二(“学习任务单学习任务单”)解析式:解析式:X=105*n+X=105*n+余数余数尝试画出流程图尝试画出流程图高中信息技术A=int(input(士兵约有几百来人?士兵约有几百来人?)y=int(input(排好排好3列、列、5列、列、7列纵队后,所余人数为:列纵队后,所余人数为:)n=(A+100)/105X=105*n+yprint(这群士兵有:这群士兵有:,X,人。人。)编程调试编程调试同余问题同余问题高中信息技术 编程调试编程调试 解决问题解决问题高中信息技术新问题n如果不同余?如果不同余?X 3 3 =a y1y1X 5 5 =b y2y2X 7 7 =c y3y3高中信息技术 设计算法设计算法算法二:解析法算法二:解析法“物不知数物不知数”(孙子算经孙子算经)“孙子歌诀孙子歌诀”(明(明程大位)程大位)高中信息技术 设计算法设计算法算法二:解析法算法二:解析法孙子歌诀孙子歌诀除百零五便得知。除百零五便得知。三人同行七十稀,三人同行七十稀,五树梅花廿一支,五树梅花廿一支,七子团圆正半月,七子团圆正半月,X+y1y1 =3 3 a X+y2y2 =5 5 b X+y3y3 =7 7 c高中信息技术 设计算法设计算法算法二:解析法算法二:解析法除百零五除百零五便得知。便得知。三三人同行人同行七十七十稀,稀,五五树梅花树梅花廿一廿一支,支,七七子团圆子团圆正半月正半月,y170y221y315y170+y221+y315-105n70=2(57)21=3715=35高中信息技术A=int(input(士兵约有几百人?士兵约有几百人?)y1=int(input(排排3列纵队,所余人数为:列纵队,所余人数为:)y2=int(input(排排5列纵队,所余人数为:列纵队,所余人数为:)y3=int(input(排排7列纵队,所余人数为:列纵队,所余人数为:)for n in range(A-100)/105,(A+100)/105):X=y1*70+y2*21+y3*15-105*n if X A-100 and X A-100 and X A-100 and X A-100 and X A-100 and X A-100 and X A+100:print(这群士兵有:这群士兵有:,X,人。人。)高中信息技术任务三任务三(“学习任务单学习任务单”)提示:提示:X=y1*70+y2*21+y3*15-105*nX=y1*70+y2*21+y3*15+105*n新程序要实现的功能如下:新程序要实现的功能如下:(1 1)输入输入士兵人数的士兵人数的大约数量(整百值)大约数量(整百值);(2 2)输入输入士兵排成士兵排成3 3、5 5、7 7列纵队后分别得到的余数;列纵队后分别得到的余数;(3 3)程序运行后,)程序运行后,输出输出士兵准确的人数。士兵准确的人数。高中信息技术课堂小结课堂小结韩信点兵韩信点兵体验体验计算机解决计算机解决问题的过程问题的过程提提出出问问题题分分析析问问题题设设计计算算法法编编程程调调试试解解决决问问题题综合应用综合应用1 1数值计算数值计算高中信息技术课堂小结课堂小结实践实践算法算法枚举法枚举法解析法解析法提提出出问问题题分分析析问问题题设设计计算算法法编编程程调调试试解解决决问问题题综合应用综合应用1 1数值计算数值计算韩信点兵韩信点兵体验体验计算机解决计算机解决问题的过程问题的过程高中信息技术课后练习课后练习 “鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”算经算经(北魏(北魏张丘建)张丘建)【译文】公鸡每只五文钱,母鸡每只三文钱,小鸡每只一文钱。用一百文钱买了100只鸡,公鸡、母鸡、小鸡各买了多少只?要求:编写程序,解决此问题。要求:编写程序,解决此问题。注意:算法注意:算法执行执行的效率;的效率;交互交互界面界面的的友好。友好。
展开阅读全文
相关搜索
资源标签