教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.3 初识非数值计算教学设计0
数据的计算+课件++2023—2024学年教科版(2019)高中信息技术必修1
◆1—10之间能被3整除的数有多少? ◆1—100之间能被3整除的数有多少? ◆1—10000之间能被3整除的数有多少?
第1单元 初识数据与计算
拓展活动2
问题再分析
◆鸡兔同笼问题 ◆韩信点兵问题 ◆百鸡百钱问题
1.2 数据的计算(第2课时 如何选择)
韩信点兵问题:
问题描述:
韩信有一对士兵,他想知道有多少人,他就让士兵报数, 如果按照1到5报数,最末一个士兵报的数为1;按照1到6 报数,最末一个士兵报的数为5;按照1到7报数,最末一 个士兵报的数为4;最后再按1到11报数,最末一个士兵报 的数为10,请问韩信这队士兵最少有多少人?
第1单元 初识数据与计算
项目实施
1.2 数据的计算(第2课时 如何选择)
选择电子表格
第1单元 初识数据与计算
项目实施
讨论
1.2 数据的计算(第2课时 如何选择)
如何根据问题需求,灵活选择 合适的计算方式?
对不同问题需求做出自己的选择, 把体会写下来,在实践中总结知识。
第1单元 初识数据与计算
总结评价
数据的计算方式
人工计算
电子表格 计算
编程计算
第1单元 初识数据与计算
项目实施
1.2 数据的计算(第2课时 如何选择)
任务二:解决“鸡兔同笼”问题的计算方式比较
计算方式 使用成本
人工计算
考察的方面 使用方便性 计算速度 其他元 初识数据与计算
拓展活动1
计算小达人
1.2 数据的计算(第2课时 如何选择)
1.2 数据的计算(第2课时 如何选择)
1. 梳理本节课所学
2. UMU网络课程中完成课程评价, 你有哪些收获呢?
谢谢,再见
教科版(2019)高中信息技术必修一 4.3 非数值计算 课件(20张ppt)
解决实际问题。
• 本项目主要包含“巧翻字典”和“玩转‘汉诺塔’游戏”两个任务。
※活动统计查字典次数
•
查汉字、查单词、查成语等查字典的活动,早已成为我们学习生活
的一部分。假设一本字典一千页,目标页数在328页。在下表填写翻页
过程。
•
有的同学翻得特别快,他们用了什,是算法思想的体现。
•
有了翻字典的实际操作经验,我们来尝试完善下面的二分查
找程序。
• x=int(input("请输入要查找的1000以内的整 数:"))
• step=0
记录查找次数
• flag1=1
目标区域左边界
• flag2=1000
目标区域右边界
• while(flag1<=flag2): 小于1则结束循环
区间数据范围
次数: 18446744073709551615。 婆罗门以1秒移动1次的速度,不眠不休要花 5849万万年生活中的递归
要使移动次数尽可能少,必须排除无效移动。现在有8个木盘,不妨先以3个 木盘为例,观察一下移动的过程。请在图4.3.2中记录木盘移动的过程。
每层汉诺塔至少需要多少步
• 1层:1次 • 2层:3次 • 3层:7次 • 4层:15次 • 5层:31次 • 6层:63次 • 7层:127次 • 8层:255次
使用计数器结束循环。
•
迭代程序可以转换成等价的递归程序。以上一节中计算斐波那契数列第n项
的值为例,程序间的转换如表4.3.2所示。
4.3 非数值计算
4.3 非数值计算
•
在数值计算中,我们更多考虑的是“数”,但计算应该是一个更广泛
的领域。计算的对象可以是自然界和人类社会的一切事物。更确切地说,
4.3 非数值计算(二分查找)课件 -2023—2024学年高中信息技术教科版(2019)必修1
elif mid < x:
#区域中间值大于目标数
flag1 = mid + 1 #范围往右侧区域找 = 左边界后移
else:
break
print('查找次数为:',step)
任务:巧翻字典
x = int(input('请输入要查找的数据:'))
上机实践1
step = 0
#查找次数
flag1 = 1
知识探究:二分查找/折半查找
二分思想:将数列有序排列,采用跳跃的方式 查找数据。
在有n个元素的有序序列中,利用二分查找大
约需要log2n次。
n = 1000 需要10次
任务:巧翻字典 程序编写——补充程序
x = int(input('请输入要查找的数据:'))
step = 0
#查找次数
flag1 = 1
项目内容
本节我们将围绕“生活中的算法”项目,尝试用“算法的 眼睛”看待生活,用“算法的思维”去解决实际问题。
项目任务
本节任务
➢ 任务一:巧翻字典
➢ 任务二:玩转“汉诺塔”游戏
任务:巧翻字典 活动:统计查字典次数
➢ 查汉字、查单词、查成语等查字典的活动,早已成为我们学习生活的部分。假设一本 字典大约1000页,目标信息在第328页。请记录你翻页过程,和同学们比比,看谁翻 的次数最少。
二分查找的应用:找出1-1000之间的某个数
import random x = random.randint(1,1000)
while 0<x<1000: y = int(input("请输入这个数:")) if x<y: print("大了") elif x>y: print("小了") else: print("就是",x) break
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.1 算法及其特征教学设计
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.1 算法及其特征教学设计【教材分析】程序设计是给出解决特定问题程序的过程。
程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。
算法是程序设计中的核心,算法依赖程序设计语言来实现。
程序设计语言有较大的局限性,不能用来解决所有类型的问题,人们要根据所需解决的问题不同而选择不同的语言,而语言本身也在不断变化和更新。
因此,语言具有不稳定和变化更新快的特征;算法则比较稳定,它与描述算法的语言无关,可以在更长的时间内发挥作用。
程序设计语言只要多实践多使用就能熟能生巧,算法则需要比较深入的理论基础知识,必须经过严格的科学训练。
基于以上认识,程序设计语言知识可以作为一种技能来培养,程序设计方法可以作为一个规则来遵循,算法可以作为科学方法来传授,这样才能适应时代的需要,跟上技术的飞速发展。
通过前面单元的学习,我们可以认为学生具备初步编写程序的简单技能,如基本的输入输出语句、选择结构和循环结构的语句实现、列表及文件的初步操作等。
本项目既要唤醒学生已有的技能,又要让学生初识算法,因此在项目及活动设计时,抛开晦涩难懂的概念和语法,不做内容上的堆积和罗列,采用了生动有趣的活动形式,每个活动中会涉及到一个或几个知识点。
代码不是最终目的,而是作为载体,让学生初步了解程序设计的基本方法,在面对实际问题的时候,可以换一种思维,找到有效的算法。
本节的项目“软件开发社招新”主要包含“探讨面试题的解决方案”和“求解‘谁是冠军’”两个任务,包含4个活动。
任务一的重点在已有知识和技能的唤醒,任务二的重点是最基本算法思想的介绍。
【教学建议】通过本项目的教学应让学生了解程序设计的基本方法和基本流程,利用学生感兴趣的实例,让学生感觉程序设计并不是遥不可及的,而是人机对话的一种方式,让学生带着轻松的心情,在游戏中学习,在学习中游戏。
以活动为中心,增加拓展类知识,兼顾到不同层次学生的需求。
4.3非数值计算优秀教学案例教科版高中信息技术必修1
(三)学生小组讨论
1.分组讨论:将学生分成若干小组,针对提出的问题,进行小组讨论,共同设计算法解决方案。
2.分工协作:在小组内部分工,每个学生负责一部分算法的设计和实现,培养学生的团队合作意识。
3.互动交流:鼓励小组间的交流与合作,分享算法设计经验,提高学生之间的学习互动性。
3.教师评价:教师对学生的算法设计进行评价,关注学生的学习过程和成果,给予鼓励和指导,提高学生的学习积极性。
4.总结反思:在本章节内容结束时,组织学生进行总结反思,让学生回顾学习过程,加深对非数值计算算法的理解。
四、教学内容与过程
(一)导入新课
1.生活实例引入:以网络购物为例,展示购物推荐系统的非数值计算过程,引发学生对非数值计算的好奇心。
1.布置作业:布置与本节课相关的问题,让学生课后巩固所学知识,提高实际应用能力。
2.作业反馈:要求学生提交作业,教师对作业进行批改,给予反馈,帮助学生提高。
3.作业评价:对学生的作业进行评价,关注学生的知识掌握程度和实际应用能力,为下一步教学提供参考。
五、案例亮点
1.生活实例引入:通过网络购物的实际案例引入非数值计算的概念,使学生能够更加直观地理解非数值计算在现实生活中的应用,提高学生的学习兴趣和积极性。
2.创设问题情境:提出问题:“为什么购物推荐系统能给我们推荐合适的商品?”引导学生思考非数值计算在实际应用中的作用。
3.展示本节课目标:告知学生本节课将学习非数值计算的相关知识,帮助学生建立学习目标。
(二)讲授新知
1.非数值计算概念:讲解非数值计算的定义,让学生理解非数值计算的基本概念。
2.算法基本概念:介绍算法的基本概念,如输入、输出、有穷性、确定性等,帮助学生建立算法思维。
4.3非数值计算(神奇的递归)教学设计-2023—2024学年高中信息技术教科版(2019)必修1
板书设计
1.递归的概念与原理
①递归定义:一种自己调用自己的函数。
②递归结构:递归函数的调用过程。
③递归终止条件:确定递归何时停止。
2.递归的编程实现
①递归函数的实现:如何编写递归函数。
return fibonacci(n-1) + fibonacci(n-2)
```
3.例题三:递归求解汉诺塔问题
题目:编写一个递归函数,解决汉诺塔问题,将n个盘子从源柱子移动到目标柱子。
答案:
```python
def hanoi(n, source, target, auxiliary):
if n == 1:
2.鼓励学生探索递归算法的优化方法,如何减少递归调用栈的大小,避免栈溢出问题。可以让学生尝试研究一些经典的递归算法优化技巧。
3.让学生了解递归算法在实际软件开发中的应用,例如在编译器的设计中,递归用于解析语法树;在图形引擎中,递归用于计算视锥体内的物体数量等。可以提供一些实际的案例,让学生了解递归在实际项目中的应用。
4.3非数值计算(神奇的递归)教学设计-2023—2024学年高中信息技术教科版(2019)必修1
授课内容
授课时数
授课班级
授课人数
授课地点
授课时间
教材分析
本节课的主题是“4.3非数值计算(神奇的递归)教学设计-2023—2024学年高中信息技术教科版(2019)必修1”。本节课的内容主要包括递归的概念、递归的实现以及递归的应用。通过本节课的学习,学生能够理解递归的原理,掌握递归的编程实现,并能够运用递归解决实际问题。
4.3非数值计算(第一课时)优秀教学案例教科版高中信息技术必修1
3.实践操作:让学生亲身体验智能家居设备的工作原理,如语音识别技术,提高学生的动手操作能力。
4.总结提升:引导学生关注科技进步,为未来的智能化生活做好准备,培养学生的社会责任感和使命感。
(三)情感态度与价值观
2.小组讨论活动:将学生分成若干小组,让他们就某一智能家居设备的非数值计算实现方法进行讨论。这样的教学方式既能够培养学生的团队协作能力,又能够激发学生的创新思维和探究欲望。
3.实践操作与案例分析相结合:在讲解非数值计算的原理和应用时,不仅以理论讲解为主,还结合了实践操作和案例分析。这样能够让学生更好地理解和掌握所学知识,提高学生的知识运用能力。
四、教学内容与过程
(一)导入新课
1.生活实例:以智能家居设备为例,如智能音响、智能照明等,引导学生关注非数值计算在现实生活中的应用。
2.问题提出:提出问题,如“智能音响是如何识别语音指令的?”“智能照明系统是如何实现场景切换的?”激发学生的好奇心和求知欲。
3.情景创设:通过展示智能家居设备的实际操作视频,让学生身临其境地感受非数值计算的实际应用,为后续学习做好铺垫。
在讲解非数值计算的原理和应用时,我以智能音响为例,引导学生了解其工作原理。首先,我让学生了解智能音响的硬件构成,如麦克风、扬声器、处理器等。然后,通过实际操作,让学生观察和分析智能音响如何识别语音指令并做出相应响应。在这个过程中,学生可以深刻体会到非数值计算在智能音响中的应用。
为了让学生更好地掌握非数值计算的方法,我设计了一个小组讨论活动。学生分组探讨其他智能家居设备是如何实现非数值计算的,并presentation进行分享。通过这个活动,学生不仅可以巩固所学知识,还能提高团队合作能力和口头表达能力。
《4.3 非数值计算》作业设计方案-高中信息技术教科版19必修1
《非数值计算》作业设计方案(第一课时)一、作业目标本作业旨在帮助学生理解非数值计算的基本概念,掌握常用计算工具和方法,以及如何使用这些工具和方法解决实际问题。
二、作业内容1. 实践操作:选择一种常用的计算工具(如Excel、Python 等),模拟一个简单的非数值计算任务,如统计一组数据、绘制图表等。
任务难度可根据学生掌握程度进行调整。
2. 阅读理解:阅读一篇关于非数值计算的科普文章,回答其中涉及的问题。
这些问题可以是文章中提出的疑惑,也可以是对文章内容的进一步解释和思考。
3. 案例分析:针对一个具体的非数值计算问题(如数据分析、人工智能应用等),分析问题背景、涉及的计算方法和工具,并给出解决方案。
解决方案可以是文字描述或简单的代码实现。
三、作业要求1. 作业应在规定时间内完成,并提交电子版作业文档。
2. 实践操作部分需展示所选工具的使用过程和结果,并附上相关说明和注释。
3. 阅读理解部分需回答正确率不低于80%。
4. 案例分析部分需详细描述问题背景、计算方法和工具选择,并给出合理解决方案。
解决方案应包括必要的代码实现和注释。
四、作业评价1. 作业评价将根据完成质量、正确率、创新性等方面进行评分。
2. 学生可参考教师提供的参考答案自行检查作业完成情况,如有疑问可与教师沟通解决。
3. 评价结果将作为学生平时成绩的参考之一。
五、作业反馈1. 学生提交作业后,教师将对作业进行批改,并及时将反馈结果通知学生。
2. 对于作业中存在的问题,教师将提供指导和建议,帮助学生更好地理解和掌握相关知识。
3. 学生可针对作业反馈提出疑问,与教师进行交流和讨论,共同提高教学质量。
在实践操作部分,学生需要选择一种常用的计算工具并展示其使用过程和结果。
教师可以通过观察学生的操作过程和结果来评估学生对该工具的理解和掌握程度。
在阅读理解部分,教师需要评估学生对非数值计算的基本概念和常用计算工具的理解程度。
在案例分析部分,教师需要评估学生是否能够针对实际问题选择合适的计算方法和工具,并给出合理的解决方案。
4.3非数值计算(第一课时)教学设计教科版高中信息技术必修1
3.导入新课:在学生思考的基础上,引出本节课的主题——非数值计算,并简要介绍非数值计算的概念和作用。
(二)讲授新知
在讲授新知环节,我将按照以下步骤进行:
4.演示编程实例:结合实际案例,演示如何运用编程语言实现非数值计算,让学生感受编程的魅力。
(三)学生小组讨论
在学生小组讨论环节,我将组织学生进行以下活动:
1.分组:将学生分成若干小组,每组4-6人。
2.讨论主题:针对本节课的非数值计算知识点,提出讨论主题,如:“非数值计算在实际生活中的应用”、“如何运用编程语言实现非数值计算”等。
1.讲解非数值计算的概念:通过对比数值计算,详细讲解非数值计算的定义、类型和应用场景。
2.分析非数值计算与数值计算的区别与联系:通过实例分析,使学生明确两者的区别和联系,加深对非数值计算的理解。
3.介绍编程语言中的非数值计算:以Python语言为例,讲解非数值计算的基本语法和算法,如条件语句、循环语句等。
(二)教学难点
1.对非数值计算概念的理解:非数值计算涉及多种类型,学生需要理解其本质,并将其与数值计算进行有效区分。
2.编程实现:非数值计算编程具有一定的复杂性,学生需要掌握相关语法和算法,并能将其运用到实际问题中。
3.问题解决能力的培养:如何引导学生运用非数值计算解决实际问题,提高他们的计算思维和创新能力。
2.鼓励学生在完成作业过程中,积极思考,遇到问题主动寻求解决办法,如查阅资料、请教同学等。
3.小组合作题要求每个成员积极参与,共同完成任务。在合作过程中,培养学生的团队协作能力和沟通能力。
第四单元复习 高中信息技术同步备课系列(教科版2019 必修1 )
D. 终止条件和迭代部分
Python不支持的数据类型有(
A. char
A
B. int
C. float
D. list
)。
算法分析的前提是( ). A.算法必须简单 B B. 算法必须正确 C.算法结构性强 D.算法必须通用
算法分析的目的是__C___,算法分析的两个主要方面是_E___
A. 找出数据结构的合理性
主要是为符号运算而设计的算法。
pygame模块
Hale Waihona Puke 下列关于算法说法不正确的是( A ) A.算法独立于任何具体的语言,Python算法只能用Python语言来实现 B.解决问题的过程就是实现算法的过程 C.算法是程序设计的“灵魂” D.算法可以通过编程来实现
高级语言更接近自然语言,并不特指某种语言,也不依赖于特定的计算机系统, 因而更容易掌握和使用,通用性也更好。以下不属于高级语言的是(C ) A.Java语言 B.Python语言 C.汇编语言 D.VB语言
树结构
(1)树形数据结构是一类重要的非线性数据结构。在计算机科学中,树(tree)是一种抽象数据 类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。 它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一 棵倒挂的树,也就是说它是根朝上,而叶朝下的。
(2)树形数据结构可以表示数据表素之间一对多的关系。
树结构
(3)特点: ✓ 每个节点有零个或多个子节点; ✓ 没有父节点的节点称为根节点; ✓ 每一个非根节点有且只有一个父节点; ✓ 除了根节点外,每个子节点可以分为多个不相交的子树;
图结构
图是最为复杂的数据结构。如果数据元素之间存在一对多或者多对多的关系
《4.3 非数值计算》作业设计方案-高中信息技术教科版19必修1
《非数值计算》作业设计方案(第一课时)一、作业目标本作业旨在帮助学生理解非数值计算的基本概念,了解计算机在处理非数值数据方面的应用,并掌握一些基本的编程技巧和方法。
二、作业内容1. 编程任务:编写一个简单的程序,用于模拟计算机中的二进制数到十进制数的转换。
要求使用编程语言(如Python)编写程序,并输入一组二进制数,输出对应的十进制数。
2. 查阅资料:在互联网上搜索并阅读关于计算机非数值计算的相关文章或书籍,了解计算机在处理非数值数据方面的应用,并记录自己的心得体会。
3. 小组讨论:与同学组成小组,讨论计算机在非数值计算方面的优势和局限,以及如何更好地应用计算机处理非数值数据。
三、作业要求1. 按时提交程序代码和相关资料,确保内容真实有效。
2. 程序代码应符合编程规范,逻辑清晰,易于理解。
3. 查阅资料和小组讨论中,应积极参与,认真思考,提出有建设性的观点和建议。
4. 作业字数不少于500字,包括心得体会和小组讨论的总结。
四、作业评价1. 程序代码的评价:根据编程规范和逻辑清晰度,对提交的程序代码进行评价,指出优点和不足之处。
2. 查阅资料的评价:根据阅读的文章或书籍的质量和心得体会的深度,对查阅的资料进行评价。
3. 小组讨论的评价:根据小组讨论的参与度、观点的提出和总结的质量,对小组的表现进行评价。
五、作业反馈1. 在作业提交后,将及时对学生的作业进行批改和反馈,指出存在的问题和改进的建议。
2. 对于普遍存在的问题,将在课堂上进行讲解和讨论,加深学生对非数值计算的理解。
3. 鼓励学生在课堂上分享自己的作业心得和体会,促进师生之间的交流和互动。
通过本次作业,学生将能够了解计算机在非数值数据方面的应用,掌握一些基本的编程技巧和方法,同时培养自主学习和团队合作的能力。
此外,通过小组讨论和心得体会的撰写,学生将能够更好地理解和应用所学知识,为后续学习打下坚实的基础。
作业设计方案(第二课时)一、作业目标本次作业旨在帮助学生进一步理解非数值计算的基本概念,掌握基本的数据处理方法,并能够应用这些方法解决实际问题。
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.4 综合问题的解决教学设计0
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.4 综合问题的解决教学设计教材分析基于核心素养的教学,要符合课标的规定要求,又要在此基础上有所建构与创新;要充分体现学科思维,又能促进学生核心素养的全面、均衡发展;既保证知识技能的系统性,又注重项目与活动对学生创新意识与核心素养的驱动。
从知识、技能和综合素质方面锻炼自己,培养综合能力和创新意识是中学生职业规划中很重要的内容。
以项目为情景,以任务为目标,以活动为载体,使学生具有分析算法、设计算法和实现算法的初步能力,让学生通过实践将书本知识转化为解决实际问题的能力。
针对一个实际需求,将一个复杂的问题分解成若干较为简单的问题,从而提高开发简单实用系统的初步能力。
把基础知识、基本概念和应用程序开发有机地结合起来,通过对具体案例或任务的分析,引出了Python模块中pygame模块的应用,介绍了应用软件的程序设计方法。
任务驱动型教学能激发学生学习兴趣,提高学生的动手能力和解决问题的能力,达到事半功倍的效果。
本节我们围绕项目“接福游戏”展开学习,体验软件开发的流程,感受综合问题的处理方法,本项目主要包含“基于需求,分解任务”和“组装程序,测试运行”两个任务。
教学建议在关注生活趣味的同时,更关注学生的实际认知发展水平。
高中生的形式逻辑思维比较发达,但辩证逻辑思维能力有待加强。
考虑学生已有的知识和经验(包括生活经验与社会经验),也应注意其经验对课程知识及思维发展的支持程度和水平。
开发流程按顺序可以划分为:需求分析;软件的总体结构设计和模块设计;程序开发和调试;运行维护等。
在教学过程中,让学生了解面向需求的常用的软件设计方法,培养学生分析问题,整体把握、关注细节的能力,训练学生的综合问题解决能力;在解决复杂问题时,要学会将复杂问题分解成难度较小的小问题,一一突破,小问题解决了,大问题就迎刃而解了。
本节的游戏项目是一个较大的工程,我们将它分解为:显示窗体,窗体上显示物体,物体怎样运动,怎样使物体连续运动等多个易于解决的小问题,便于学生理解和掌握,提高学生战胜复杂问题的信心。
必修1 4.3 非数值计算 (第2课时)
else: return 2*f(n-1)+1
x=int(input("请输入塔的个数:")) print("需要移动",f(x),"次") input("运行完毕,请按回车键退出...")
汉诺塔移动次数源代码和运行界面截图:
拓展知识
迭代与递妆算法都需要重复执行某些代码,两者既有区另又有密切的 联系。迭代是重复反馈过程的活动,其目的通常是逼迫所需目标或结果。 递归是重复调用函数自身。递归满足终止条件的情况时逐层返回。迭代则 通常使用计数器结束循环。
教科版 信息技术 (2019版)
(高中)
必修1 数据与计算
第4单元 计算与问题解决
4.3 非数值计算(第2课时)
课堂导入
“汉诺塔”游戏源于一个古老的印度传说。如下图所示, 在木板上有A、B、C三根杆,A杆上有若干木盘,规定每次 移动一个木盘。且小的木盘只能叠在大的木盘上面。请设计 算法,用尽可能少的次数把所有的木盘从A杆全部移到C杆 上。
F(n)=
1(n=1或n=2) F(n-1)+F(n-2)(n>2)
递归的基本思想:
递归的基本思想是把规模较大的问题层层转化为规模较小的同类问题求解。 对递归而言,递推与回归,二者缺一不可。
递归可用“分”,“治”,“合”三个字概括:
1)分:将原有问题分解成K个子问题。 2)治:对这K个子问题分别求解。如果子问题的规模仍然不够小,则将其再分解为K个
子问题,如此进 行下去,直到问题足够小时,就很容易求出子问题的解。 3)合:将求出的小规模问题的解合并为一个更大规模问题的解,自下而上逐步求出原
问题的解。
必修1 4.3 非数值计算 (第1课时)
(高中)
必修1 数据与计算
第4单元 计算与问题解决
4.3 ቤተ መጻሕፍቲ ባይዱ数值计算(第1课时)
课堂导入
运行利用python编写的“猜数字”游戏,计算机在1-1000 中随机产生一个数,试试看你要猜多少次才能猜中。
猜数字
程序代码和运行结果截图:
如何猜得又快又准?
二分查找又叫折半查找,将数列有序排列,采用跳跃 式查找数据;以递增数列为例,先以中点位置的元素作为 比较对象,如果要找的元素值小于该中点元素,则将待查 序列缩小为左半部分,否则为右半部分;每一次比较后都 可以将查找区间缩小一半。
3、当while循环中执行break语句时,循环会马上终止。
4、python中的sort( )可以用于数据排序。 例如,以下语句: x=[4,6,2,1,5,9] x.sort( )
可以将列表x按从小到大的顺序排列。
“ THANKS ”
1、尝试用二分法求 x3- x2 + x - 1 = 0在[-5,5]区间的解。
参考答案: def f(x):
#定义方程 return x**3-x**2+x-1 a=float(input("请输入解区间的左边界:")) b=float(input("请输入解区间的右边界:")) while abs(b-a)>1e-6: x0=(a+b)/2 if f(a)*f(x0)<0:
二分查找法是一种高效的查找方法。它可以明显减少 比较次数,提高查找效率。在一个有n个元素的有序序列中, 利用二分查找大约需要log2n次。
如何实现? 请学生思考:利用自然语言如何描述?利用程序如何实现?
4.3 初识非数值计算第1课时-【新教材】教科版(2019)高中信息技术必修一教案
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.3 初识非数值计算教学设计教材分析强调“项目—任务—活动”结构与核心素养达成的一体化设计思想,强调在项目的真实情境下,通过任务的达成,展开一系列活动,在活动过程中通过搭建思维支架,不断建构知识,发展思维,使得生活、学习、知识技能、思维发展浑然一体,最终促进学生核心素养的全面、均衡发展。
“项目—任务—活动”式结构不是一个静态的结构,它反映了学生知识建构与思维生成的动态过程。
知识建构、思维发展乃至核心素养的形成都是在特定情境中围绕活动而自然生成的。
如果说本单元4.1为模仿阶段,4.2为形象思维阶段,4.3就是抽象思维阶段。
本项目的重点应是基本思想和方法的教学,要能够恰当地引导,就能够使学生准确地领悟思想,从而较好地掌握基本方法。
分治是最常用的算法设计思想,查找是算法中最常见的操作,递归是算法在实现时的常用手段。
本节我们将围绕项目“生活中的算法”展开学习,尝试用计算机的视角去解决实际问题。
本项目主要包含“巧翻字典”和“玩转‘汉诺塔’游戏”两个任务。
任务一主要介绍分治中最经典的二分思想;任务二借助汉诺塔游戏重在介绍递归思想及算法实现。
教学建议针对学生的认知水平及认知习惯,通过引导、启发、设问等方式,为学生设置真实项目或问题情境,在活动中为学生知识建构关键点和思维生发关键点搭建思维支架,使学生在自主探究或解决问题的过程中产生较强的学习动机,在不断发现中习得知识、发展思维、提升能力。
在该课程的教学方法上,应以程序设计的实例带动语言知识的学习,把程序设计当作科学方法的训练,把语言知识的应用作为技能的培养,全面推行“模仿——形象思维——抽象思维”三个由浅入深的阶段的教学。
学生的主要活动是积极思考、广泛交流、主动探究。
他们学到的不仅仅是新知识,更重要的是学会了解决问题的方法,知道了什么时候、在什么地方去应用所学的知识。
任务一通过巧翻字典的情境引出二分查找的思想,分治的思想学生很容易理解,理解二分查找也不是难点,算法的实现需要给学生充足和时间和必要的帮助。
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.2 数值计算教学设计
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.2 数值计算教学设计【教材分析】采用“提出问题—分析问题—引入新知识—解决问题—总结提高”的编写模式,通过每一个典型的、针对性强的、贴近现实的案例,把相关的基本概念、解题的基本方法和思路传授给学生,从而使学生形成深刻、形象、牢固的记忆,对启发思维、激励热情、提高学习效率起到重要作用。
程序设计不仅仅是让学生掌握一两门计算机语言,而是要让学生学习程序设计的基本概念和方法、掌握编程的技术,更重要的是培养学生逻辑思维和逻辑推理能力、自学能力、动手能力、分析问题和解决问题的能力、创新意识和创新能力。
数值计算作为计算数学的主要部分和关键环节,研究求解数学模型的理论及其算法和软件实现。
算法针对实际问题求得符合精度的近似解,并对算法的收敛性、稳定性和误差进行分析、计算。
数值计算方法的内容十分丰富,它在科学技术中正发挥着越来越多的作用,许多计算领域的问题,如计算物理、计算化学、计算经济学等都可归结为数值计算问题。
本节我们将围绕项目“与数学公式面对面”展开,探讨在中学数学领域中常见的数学公式与程序设计的有趣结合。
本项目主要包含“绘制数学函数曲线”和“求解‘裴波那契’数列”两个任务。
用学生熟悉的数学问题作为活动的主线,任务一重在实现学科知识的融通,将数学函数与计算机模拟相融合,突出计算机在问题解决过程中的地位和作用。
任务二重在介绍数值计算中最常用的计算方法——迭代。
【教学建议】在本项目的教学过程中,对于基本概念、基本理论不应过度强调,可通过案例演示,激发学生学习的积极性和求知欲;同时要向学生介绍该项目的学习方法,强调学习程序设计是培养耐心、毅力、务实、严谨的学习方法的有效途径。
建议教师选取一些可激发学生思考的问题,在共同讨论、探究的过程中体验基本概念和基本理论。
在教学过程中,引导学生学习数值计算方法内容的同时,训练和提升自己的计算思维能力,重视并积极探索如何通过程序来解决实际问题,并将其引入到教学内容中,推荐采用理论求解与计算机模拟相融合的教学模式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.3 初识非数值计算教学设计教材分析强调“项目—任务—活动”结构与核心素养达成的一体化设计思想,强调在项目的真实情境下,通过任务的达成,展开一系列活动,在活动过程中通过搭建思维支架,不断建构知识,发展思维,使得生活、学习、知识技能、思维发展浑然一体,最终促进学生核心素养的全面、均衡发展。
“项目—任务—活动”式结构不是一个静态的结构,它反映了学生知识建构与思维生成的动态过程。
知识建构、思维发展乃至核心素养的形成都是在特定情境中围绕活动而自然生成的。
如果说本单元4.1为模仿阶段,4.2为形象思维阶段,4.3就是抽象思维阶段。
本项目的重点应是基本思想和方法的教学,要能够恰当地引导,就能够使学生准确地领悟思想,从而较好地掌握基本方法。
分治是最常用的算法设计思想,查找是算法中最常见的操作,递归是算法在实现时的常用手段。
本节我们将围绕项目“生活中的算法”展开学习,尝试用计算机的视角去解决实际问题。
本项目主要包含“巧翻字典”和“玩转‘汉诺塔’游戏”两个任务。
任务一主要介绍分治中最经典的二分思想;任务二借助汉诺塔游戏重在介绍递归思想及算法实现。
教学建议针对学生的认知水平及认知习惯,通过引导、启发、设问等方式,为学生设置真实项目或问题情境,在活动中为学生知识建构关键点和思维生发关键点搭建思维支架,使学生在自主探究或解决问题的过程中产生较强的学习动机,在不断发现中习得知识、发展思维、提升能力。
在该课程的教学方法上,应以程序设计的实例带动语言知识的学习,把程序设计当作科学方法的训练,把语言知识的应用作为技能的培养,全面推行“模仿——形象思维——抽象思维”三个由浅入深的阶段的教学。
学生的主要活动是积极思考、广泛交流、主动探究。
他们学到的不仅仅是新知识,更重要的是学会了解决问题的方法,知道了什么时候、在什么地方去应用所学的知识。
任务一通过巧翻字典的情境引出二分查找的思想,分治的思想学生很容易理解,理解二分查找也不是难点,算法的实现需要给学生充足和时间和必要的帮助。
任务二汉诺塔问题,重点应落在对问题状态的描述及状态间的转移上。
在4.2中回顾了函数的定义及调用方式,为递归函数设计做了很好的铺垫。
教学目标1.运用合适的算法形成解决问题的方案。
2.了解算法设计中的分治思想,并运用二分查找解决实际问题。
3.体验递归算法,并结合具体问题开展编程实践。
教学重点、难点运用合适的算法形成解决问题的方案。
算法设计中的分治思想,并运用二分查找解决实际问题。
递归算法,并结合具体问题开展编程实践。
教学方法讲授法,演示法,任务引导法教学过程第一课时引入在数值计算中,我们更多考虑的是“数”,但计算应该是一个更广泛的领域。
计算的对象可以是自然界和人类社会的一-切事物。
更确切地说,计算的对象可以是某些信息,如数据、文字、语言、图形、知识、事物的运动过程及思维过程。
如果说数值计算主要探讨数学问题的话,那么非数值计算更多探讨“算法”问题。
数据是普遍存在的,甚至可以说对象即数据;对数据的分析、处理都属于计算的范畴。
选择--个合适的算法,设计出平实、易读、易懂的程序,正确、高效地解决实际需求,是计算的本质。
新课许多程序设计问题的解决,要依靠标准算法和现成的模型,更需要编程者开阔思路,提出一些新颖、巧妙的算法,或者设计出一些独特的数据结构来支撑和实现算法。
在解决非数值类计算问题时,一些基础的思维方式可以借鉴,如分治、递归、解析等。
本节我们将围绕“生活中的算法”项目,尝试用“算法的眼睛”看待生活,用“算法的思维”去解决实际问题。
本项目主要包含“巧翻字典”和“玩转‘汉诺塔’游戏”两个任务。
任务一巧翻字典活动统计查字典次数查汉字、查单词、查成语等查字典的活动,早已成为我们学习生活的一部分。
假设一本字典大约1000页,目标信息在第328页。
请在表4.3.1中记录你的翻页过程,和同学们比一比,看谁翻的次数最少。
有的同学翻得特别快,他们用了什么方法呢?原来看似普通的翻字典,不仅是一门技术,更是一种能力,是算法思想的体现。
分治策略分治的设计思想,是将一个难以直接解决的大问题,分割成一些较小的同类问题,各个击破,最终达到解决问题的目的。
二分查找实际上就是分治策略的一种典型运用。
二分查找二分查找又叫折半查找,该方法主要将数列有序排列,采用跳跃式的方式查找数据。
以递增数列为例,先以中点位置的元素作为比较查找的基本算对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。
每一次比较后都可以将查找区间缩小一半。
二分查找是一种高效的查找方法。
它可以明显减少比较次数,提高查找效率。
在一个有n个元素的有序序列中,利用二分查找大约需要log2n次。
但是,二分法查找的前提条件是被查找的数据必须是有序的。
实践操作在翻页过程中借助两个书签,划定目标所属范围,然后翻到两个书签的中间位置。
每次目标区域都更新为原来的“二分之一”,当数据范围缩小到只有1个数的时候肯定能得到问题的解。
1000以内的页码,最多翻10次肯定能找到解。
有了翻字典的实际操作经验,我们来尝试完善下面的二分查找程序。
x=int(input("请输人要查找的数据:"))step=0 #记录查找次数flag1=1 #目标区域左边界flag2=1000 #目标区域右边界while( ): #区间数据范围小于1则结束循环mid= #中间值#查找次数加1if mid>x:#右边界前移elif mid<x:#左边界后移else:break #恰好找到目标数据,退出循环print("查找次数为:",step) #输出次数问题:如果输入的数据不在范围内,会出现什么结果呢?程序还需要在哪些地方进行完善?大家一起来试试吧。
算法研究涉及计算机科学和数学中令人着迷的话题。
面对海量数据的处理,算法选择得当,解决问题时便游刃有余;算法选择不当,则可能出现程序运行错误、运行时间长或占用空间大等问题。
所有这些都促使我们深入学习,感悟化繁为简的编程魅力。
第二课时任务二玩转“汉诺塔”游戏活动剖析问题, 设计游戏策略“汉诺塔”游戏源于一个古老的印度传说。
如图4.3.1所示,木板上有A 、B 、C 三根杆,A 杆上有若干木盘,规定每次移动一个木盘,且小的木盘只能叠在大的木盘上面。
请设计算法,用尽可能少的次数把所有木盘从A 杆全部移到C 杆上。
要使移动次数尽可能少,必须排除无效移动。
现在有8个木盘,不妨先以3个木盘为例,观察一下移动的过程。
请在图4.3.2中 记录木盘移动的过程。
递归递归是计算科学领域中一种重要的计算思维模式。
它既是一种抽象表达的手段,也是一种问题求解的重要方法。
直接或间接地调用自身的方法称为递归。
可以将递归简单类比为具有自相似性重复的事物。
图4.3.3所示 就是递归的一-种形象表示。
在数学与计算机领域中,递归函数是指用函数自身来定义该函数的方法。
如著名的斐波那契数列“1, 1, 2, 3, 5, 8,13,..”,以递归定义为⎩⎨⎧2)>(n 2)-F(n +1)-F(n 2)=n 1=1(n =F(n)或递推关系是递归的重要组成,而边界条件是递归的另一要素,它保证递归能在有限次的计算后得出结果,而不会产生无限循环的情况。
面对一个大规模复杂问题的求解,递归的基本思想是把规模较大的问题层层转化为规模较小的同类问题求解。
对递归而言,递推与回归,二者缺一-不可。
结合分治策略,递归也可用“分”“治” “合”三个字概括。
(1)分:将原问题分解成k 个子问题。
(2)治:对这k 个子问题分别求解。
如果子问题的规模仍然不够小,则将其再分解为k 个子问题,如此进行下去,直到问题足够小时,就很容易求出子问题的解。
(3)合:将求出的小规模问题的解合并为一个更大规模问题的解,自下而上逐步求出原问题的解。
实践操作移动3个木盘的方法是:根据木盘叠放规则,要使A杆上最大的木盘(记为x)移动到C 杆上(子问题1,如图4.3.2中的第4步) ,必须先把x上方的所有木盘移动到B杆上(子问题2,如图4.3.2中的前3步),然后再将B杆上所有的木盘移动到C杆上(子问题3,如图4.3.2中的后3步)。
3个木盘的移动问题成功解决了,就可以解决更多木盘的移动问题了。
将n个木盘从A 杆移动到C杆,需要借助中间的B杆。
只要超过一个木盘,在移动过程中,总会存在起始杆、过渡杆及目标杆的问题。
因此,定义函数时,用到了4个参数: hanoi(n,s,m,l), n表示需要移动的盘子数量,s表示盘子的起始杆,m表示中间过渡杆,l表示目标杆,如图4.3.4所示。
让我们根据图示一起完善程序吧。
def hanoi(n,s,m,t):#定义一个函数,将n个木盘从s借助m移到tif n==1: #当只有一个木盘时,直接从起始杆移动到目标杆print( )else:#将前n-1个木盘借助t从s移到mhanoi( ,s, , )print( )#将最下面的木盘从s移到t#将m上的n-1个木盘借助s移到thanoi( , , ,t )#主程序n=int(input( '请输人木盘的个数: '))#调用函数,将n个木盘从A借助B移动到Chanoi(n,'A','B','Cc)运行程序,输入3个木盘,记录程序运行结果。
将一个难以直接解决的大问题,分割成一些规模较小的同类问题,以便各个击破,分而治之,此为分治。
分治与递归就像一-对孪生兄弟,经常同时应用在算法设计中,并由此产生了许多高效的算法。
练习1.结合4.2的知识,计算“汉诺塔”游戏移动的次数。
2.尝试用二分法求解x3- x2+x- 1=0。
操作提示:令f(x)=x3-x2+x- 1,针对有解的单调区间(a,b),取xo=(a+b)/2:若f(a)*f(x0)<0,则f(x)在(a, x)内有解;若f(xo)*f(b)<0,则f(x)在(Xo, b)内有解;若|f(x0)|< 10^*,则x为方程的解。
拓展知识迭代与递归的关系迭代算法与递归算法都需要重复执行某些代码,两者既有区别又有着密切的联系。
迭代是重复反馈过程的活动,其目的通常是逼近所需目标或结果。
递归是重复调用函数自身。
递归中,遇到满足终止条件的情况时逐层返回。
迭代则通常使用计数器结束循环。
迭代程序可以转换成等价的递归程序。
以上--节中计算斐波那契数列第n项的值为例,程序间的转换如表4.3.2所示。
拓展训练项目:编程之美活动:比比谁更快活动描述:选取两种或三种排序的算法,对比它们的效率,分析优缺点。
1.选题理由排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。