视频标签:算法与程序设计,用解析法,解决问题
所属栏目:信息技术优质课视频
视频课题:教科版高中信息技术选修教材《算法与程序设计》《3.1用解析法解决问题》
教学设计、课堂实录及教案:教科版高中信息技术选修教材《算法与程序设计》《3.1用解析法解决问题》
教科版高中信息技术选修教材《算法与程序设计》
《3.1用解析法解决问题》教学设计
【教材分析】
用解析法解决问题是教科版《算法与程序设计》选修教材第三章“算法的程序实现”第1节的内容。在学习了第一章“如何用计算机解决问题”和第二章“程序设计ABC”后,第三章的内容侧重运用算法解决实际问题,运用已有知识设计合理的算法并编程实现,重在建构有迁移能力的程序设计知识网络体系。用解析法解决问题是程序设计常用的一种算法,作为本章的开篇内容,引导学生构建从实际问题到程序实现的思维模式和方法,对于后面章节的学习有着重要的引领作用。
【学情分析】
学生经过前两章的学习,对算法的基本概念有了初步的了解,对程序设计的三大基本结构也有了一定的认识,能够选择正确的结构编写程序和解决实际问题。少数学生由于先前接触过程序设计或者由于具备较高的悟性,已经有了一定程序设计的能力;但多数学生都才接触到程序设计,在面对解决实际问题时,对于如何设计算法、如何去编程实现,思路还比较模糊。 【教学目标】
1、知识与技能
(1)了解解析法的基本概念,了解用解析法设计算法的基本过程。
(2)能够用解析法分析问题,寻找各要素按之间的关系,并写出正确的数学表达式。
(3)能根据具体问题的要求,描述解决问题的解析步骤,设计算法。 2、过程与方法
以任务驱动为主,通过绘制“钻石”图案,引导学生用解析法分析问题并编程实现,掌握用解析法解决问题的各个环节,培养学生分析、比较、归纳总结和知识迁移的能力。
3、情感态度与价值观
(1)在深入分析问题、剖析问题、解决问题的过程中,拓展学生抽象思维能力,提高发现问题、解决问题的能力。
(2)通过建立数学模型和设计程序培养学生用计算思维来解决实际问题的 习惯。
(3)通过小组讨论和探究活动,提高合作学习、探究学习的能力。 【教学重点与难点】
重点:用解析法解决问题的基本思路和过程 难点:分析问题,建立数学模型,构造算法 【教法与学法】
教法:任务驱动法、设疑、纠错教学法 学法:自主式学习、互助式学习 【课前准备】
教学课件ppt、学生导学案、绘制“钻石”图案部分代码、水晶钻石实物 【教学过程】
一、知识回顾:
1、计算机解决问题的基本步骤
2、什么是算法?算法的程序实现可以用很多软件实现,我们主要是应用的那个软件呢? 设计意图:
回顾前两章所学知识,复习与本章知识密切关联的知识点:计算机解决问题的基本步骤;算法是程序设计的基本步骤和方法,是程序设计的灵魂;我们主要通过vb这个面向对象的程序设计软件进行算法的程序实现,从而引出本节内容用解析法解决问题也是程序设计的常用算法之一。
二、理解解析法
什么是解析?解析法的概念?
教师从学生熟悉的例子引入,如在解数学题时,要先读题,找出已知条件、求解问题,观察分析找出各要素之间的关系,建立关系表达式,问题就解决了。 解析就是深入分析、剖析的意思。
解析法的感念:在分析具体问题的基础上,抽取出一个数学模型,这个数学模型能用若干个解析表达式表示出来,解决了这些表达式,问题也就得以解决。 设计意图:
在教师的引导下,让学生结合物理、数学学习中的问题、日常生活中的实例,体会解析法的核心思想。
三、用解析法绘制钻石图案
这节课我们主要通过在vb中绘制“钻石”图案来学习用解析法分析问题、设计算法、用程序实现算法,解决问题的基本过程。
展示手中的实物水晶钻石同时ppt演示水晶钻石的立体图—平面图—钻石图案。教师引导学生观察钻石的外观、基本构成,抽象出数学模型,分析其基本的构成元素,找出绘图的规律。
1、 观察钻石图案,找出解题的数学模型
学生分组讨论,观察:钻石由点和线构成,图形四周的点位于一个圆周上,点与点之间都有一条线段相连。 “钻石”的数学模型是建立一个易于完成此图形的坐标系,将坐标系原点放在图形中心位置。因此,只要求出各点的位置,选择一个起始点,先绘制该点到其它各点的连线,然后重复n次同样的操作,即可绘制出钻石图形。 知识链接: (1)、设置坐标系 — 对象名.Scale (左上角坐标)-(右下角坐标) (2)、画点方法 — 对象名.Pset (点坐标),颜色代码 (3)、画线方法 — 对象名.Line (x1,y1)-(x2,y2), 颜色代码 教师演示引导,学生动手实践 (1)、设计界面
用picture box控件给定钻石绘制区域,设置控件属性更改背景颜色 添加command1按钮驱动事件,在事件中添加代码 (2)、建立坐标系 画坐标系代码:
Picture1.Scale (-10, -10)-(10, 10) '确定坐标系 Picture1.Line (-10, 0)-(10, 0) '画X轴 Picture1.Line (0, -10)-(0, 10) '画Y轴
VB坐标系的左下角对应数学坐标系的第三象限,右上角对应数学坐标系的第一象限,学生伴随着数学知识的迁移,更容易理解在VB中如何运用窗体的Scale方法更改坐标系。 设计意图:
钻石图案的绘制比较复杂,在教学中采用关注点分离方法,就是将复杂问题进行合理的分解,控制问题的复杂性,提高可理解性。通过把复杂的钻石图案绘制过程分解为画坐标系、画点、画线,实现了关注点的分解,也降低了绘制钻石的难度,更易于学生理解,在分步完成任务的同时增强学生的自信心和成就感。
2、建立点的表达式、画出点。
教师引导,学生观察讨论:如果将圆n等分(n=15),画出点(x1,y1),
x1=r*cos(θ), y1 =r*sin(θ),通过数学知识的迁移,学生都能分析出第n点的坐标:x n=r*cos(n* θ), y n=r*sin(n* θ) 。 注意:其中θ为弧度数
小组讨论:如何描绘出圆周上的所有点呢?应采用程序设计中哪一种程序结构?
画点代码: For i = 1 To n
X1 = r * Cos(i * a) '横坐标 Y1 = r * Sin(i * a) ' 纵坐标
Picture1.PSet (X1, Y1), vbBlue4 '画点
Picture1.DrawWidth = 4 '设置点的大小或线条的粗细 Next i
学生操作实践,可能出现的问题:(1)没有定义变量和数据初始化(2)最后一个点没有变大(3)围成的圆半径很小或是扁的 针对问题师生共同讨论解决:(1)定义常量pi;定义整型变量n,i;定义单精度变量r,a。数据初始化设置:r=1,n=8,a=2*pi/n。(2)注意语句执行的先后顺序,先设置点的大小和粗细再画点。(3)更改初始值半径的值和调整picture box控件界面为正方形。 设计意图:
本节课的主要目标是用解析法解决问题,给学生部分代码并故意设置两处错误,通过修改代码,调试程序,促进学生复习巩固程序设计的基本格式和要求,同时把编写代码的时间节省下来进行分析和总结解析法解决问题的过程和方法。
3、画线
教师引导,学生观察讨论:采用循环结构由A点向其他点辐射画线,从第1个点向其他点辐射画线后,移到下一位置,重复1的操作,经过n次同样的操作,利用双重循环结构完成图案。
用伪代码描述画点及线段 For i=1 to 总的点数
求出第i个点的坐标(rcos(iθ), rsin(iθ)) for j=1 to 总的点数
if i点和j点不是同一个点 then 求j点的坐标(rcos(jθ), rsin(jθ)) 画出i点到j点的线段 end if next j next i
内循环代码 For j = i + 1 To n
If i <> j Then '如果i不等于j表示不是同一个点,求出线段另一个点j的坐标
X2 = r * Cos(j * a) Y2 = r * Sin(j * a)
Picture1.Line (X1, Y1)-(X2, Y2), vbBlue '画出从i点到j点的线段 End If Next j
学生操作实践,可能出现的问题有未定义变量j、内循环语句拷贝到外循环next 1的下面了。
教师分析讲解:根据上面的方法绘制图形后,将会产生许多重复的线条,动画演示画线过程。
小组讨论:如何修改程序解决出现的问题。 教师分析讲解:
第1个点出发需画与第2点、第3点、第4点„„第15点的连线 第2个点出发只需画与第3点、第4点、第5点„„第15点的连线 第3个点出发只需画与第4点、第5点、第6点„„第15点的连线 ……
因此,连线时可套用双重循环结构,外层循环控制起点,内层循环则控制终点。
内层循环从 For j=i+1 to n 可以提高程序的运行效率,优化程序,动画演示优化后的画线过程。
(程序优化前有重复线条) (程序优化后) 学生在理解的基础上修改和调试程序 程序优化后的内循环代码 For j = i + 1 To n
X2 = r * Cos(j * a) Y2 = r * Sin(j * a)
Picture1.Line (X1, Y1)-(X2, Y2), vbBlue '画出从i点到j点的线段 End If Next j 设计意图:
通过flash动画演示画线过程,形象直观的观察双重循环结构画线的过程,通过对比,让学生亲身感受双重循环画线的过程和在程序设计中如何实现算法优化。
学生实践:
(1)、试一试分别更改一下代码中的半径r,n的个数,线段的颜色等,看看结果如何。
(2)、能不能通过更改代码画出五角星。
教师指导学生更改“钻石”颜色、背景颜色,修改代码中的参数等画出漂亮的钻石图案。展示、评价学生钻石图案完成情况,回顾画“钻石”的流程,梳理用解析法解决绘制钻石图案的基本步骤。 设计意图:
体验和感受程序设计的魅力,通过作品的分享和交流,总结用解析法解决绘制钻石图案的基本步骤,提升学生抽象思维能力和分析解决问题的能力。
四、拓展练习
1:用解析法描述绘制正弦函数的过程:求sin (x)函数在x ∈ [-2π,2π]范围内的轨迹。
师生共同分析:(1)、建立数学模型—坐标系 (2)、分析出解析表达式:y=sin(x) x ∈ [-2π,2π](3)、选择合适的程序结构完成算法—循环结构 (4)、程序实现演示 (上图右)
2:某超市规定,顾客购买同种商品10件以上(包括10件)可享受批发价。请设计一个收款机程序,输入顾客所购商品的零售价、批发价、购买数量及付款数,程序能计算出顾客的应付款及需要找回的零钱,请用伪代码描述算法并设计程序实现。
师生共同分析用伪代码描述算法:
If 购买数量超过10件以上(包括10件) then 应付款数=批发价×数量 else
应付款数=零售价×数量
找回零钱=顾客付款总额—应付款数 endif
程序实现演示(右图)
五、总结
解析法是程序设计最常用的算法之一
解析法解决问题的基本步骤:分析问题—建立数学模型—设计算法— 编写和调试程序—得到结果
思考:利用解析法解决问题在你的学习、生活中的还有哪些应用呢?
设计意图:
选择贴近学生学习和生活的应用情境,激发学生在真实的情境中寻找解决问题的方法,打开学生思维,实现用解析法从数学的解决方法变换到程序解决的思维转换,学会知识的迁移和学以致用。进一步体会和领悟凡能用解析法求解的问题都是可以通过定量分析,能用解析表达式进行描述。物理、数学等学科以及生活中的许多问题都可以用解析法解决的。
【教学反思】
1、本节课采用“任务驱动”教学模式,在任务层层展开的过程中,学生亲自参与“分析问题 → 建立数学模型→ 设计算法→编写和调试程序→得到结果”的全过程。钻石图案的绘制比较复杂,在教学中采用关注点分离方法,把复杂的钻石图案绘制过程分解为画坐标系、画点、画线,实现了关注点的分解,降低了绘制钻石的难度,更易于学生理解,同时增强学生的自信心和成就感。
2、给学生提供导学案便于学生自主学习和实践体验;给学生提供部分故意设置了错误语句的代码,在调试中让学生主动发现问题,通过师生互动、生生互动、共同探讨,促进学生主动学习、合作学习,培养学生强烈的求知欲和对程序设计的好奇感。
3、展示、评价学生绘制的“钻石图案”作品,学生分组讨论用解析法绘制图案的基本过程:“分析问题 → 建立数学模型→ 设计算法→编写和调试程序→得到结果”。通过拓展训练,让学生学以致用,做到知识的迁移并能联系实际,打开思维,利用解析法解决生活中的问题。
4、本节课总体达到了预期效果,但也有遗憾之处,因为内容较多,任务时间的控制是一个难点,个人感觉教师讲的太多,留给学生讨论、思考的时间相对较少,在今后的教学中注意加强课堂探究过程中的调控能力,结合新课程的新动向,深层次的挖掘教材,用心设计好每一节课。
视频来源:优质课网 www.youzhik.com