内容正文:
2.3 用算法解决问题的过程 (教学设计)
年级
高一年级
课时
1课时
课题
2.3 用算法解决问题的过程
教学
目标
1.初步掌握根据实际情景,明确问题,进而对问题抽象、建模的方法;
2.能够根据建立的问题模型,设计合理有效的算法进行解决;
3.能够根据实际需要选择恰当的方式描述算法,提升信息技术学科素养;
教学
重难点
重点:理解用算法解决问题的一般过程。
难点:能够根据实际选择设计恰当的算法解决问题,选择恰当的方法描述算法。
教学
准备
多媒体课件、多媒体教室
教学过程
教师活动
学生活动
新
课
导
入
一、课堂导入
1.呈现一张“动动有奖”APP系统界面的图片,并对图片进行解释:“动动有奖”是某手机走路计步器程序(程序界面如右图所示),它能根据系统传递给它的走路步数给运动者奖励,运动者可以用累计的“奖金”去换取软件开发商提供的各种体育用品。
具体的奖励规则如下:
①每天走路满1000步奖励0.3金(不足1000步没有奖励),1000步之后“奖金”按照每2000步再奖励0.1金的规律递增,每天最高奖励不超过3金。
②每天必须到计步器页面点击“领奖”按钮,才能领取昨日走路奖金。
③如果连续3天领奖成功,从第4天起走路奖金翻1倍(乘以2),每天最高奖励不超过6金。翻倍期间若有1天没有领奖(即连续每天领奖行为中断),则翻倍权益取消,重新连续3天领奖成功才能继续翻倍。
任何一个信息应用系统都是硬件和一系列应用程序的有机结合,上述“动动有奖”APP系统就需要在手机、运动传感器等硬件基础上结合计算机程序来实现。其中计算机程序不仅需要从传感器获得每天的走路步数,还需要根据每天是否成功领奖来确定“奖金”是否翻倍。
下面就在抽象与建模的基础上,尝试设计“动动有奖”的算法。在后续学习了计算机程序设计的知识后,还可以在计算机上实现“动动有奖”算法的程序。
通过情境创设来引出本节课的内容,激发学习热情和探究欲望。
新 知 讲 授
一、抽象与建模
通过小组讨论并抛出三个问题,让同学们在此情境中思考问题,激发同学们的学习兴趣。
小组讨论:剖析:“动动有奖计步器程序”的算法实现
(1)我们已经知道哪些数据?
走路的总天数、每天走路步数、前一天是否已经领取了奖励。
(2) 这些数据如何表示?
走路总天数用n 、每天走路步数用X
前一天是否领取奖励用F表示(1表示领取,0表示未领取)
(3)最终目的是什么?
这款应用实现领奖的最终统计的是n天后一共获得的奖励金总数,可以用total表示。
抽象与建模指的是从现实项目的真实情境中提炼出核心的要素并加以确定或假设,最终定义出一个有明确已知条件和求解目标的问题,并用数学符号描述解决该问题的计算模型。
对于本问题,可以依次通过一系列步骤逐步分析出计算模型。
1.提炼核心要素并加以确定或假设
本问题的已知数据包含了每天走路的步数,以及每天是否成功领取前一天奖金的标记。因为这些数据在事先都是不确定的,所以需要通过输入将数据传递给算法,不妨用变量X来表示每天走路的步数,用F表示是否成功领取了每天的奖金(1表示成功领取,0表示没有领取)。
为了使建立的问题模型具有一般性,可以认为需要统计的走路天数是不定的,所以用变量 n 来表示这个可变的数据。
2. 用数学符号描述解决问题的计算模型
明确了问题的已知条件后,需要明确问题的解决目标。这个问题的解决目标比较直接,就是统计 n 天过去后,该用户一共拥有的“奖金”总数。
基于上述分析,可以得出解决该问题的计算模型:
已知n(1≤n≤30)组数据:Xi ,Fi (1≤i≤n),计算“奖金”总和total。
注:“ 」”表示对表达式的值向下取整。
如果有下列4组数据:
X1=4500,F1=1 ;
X2=9870,F2=1 ;
X3=12890,F3=0 ;
X4=57890,F4=1。
那么根据上述计算模型得到的“奖金”总和为4.1金。
二、设计算法
有了计算模型后,就可以遵循算法的特征、围绕算法的要素设计算法。
1.对任何数据的处理,总体上都需要经历下列三个步骤:
①输入数据。
②处理数据。
③输出处理结果。
本问题需要输入的数据是数据数量规模n以及n组Xi ,Fi的值。
处理数据时,需要根据计算模型对每组Xi ,Fi (1≤i≤n)依次进行处理。由于每天处理数据的规律是相同的,所以数据处理部分可用循环结构来解决,每执行一次循环体就处理一天的数据。
2.按照“自顶向下、逐步细化”的结构化程序设计思想,对前面的算法进行如下细化:
①输入总天数n。
②表示天数的变量i初始化为1。
③若 i ≤n,则转④,否则转⑦。
④输入第 i 天的数据(包括第 i 天走路步数 Xi ,是否成功领取第 i 天“奖金”的标记 Fi )。
⑤根据当前输入的数据Xi ,Fi ,统计该天领取的奖金并累加到总奖金total中。
⑥表示天数的变量i增加1,然后转③。
⑦输出变量total的值。
至此,解决“动动有奖”APP的算法已经基本形成,接下来在一些细节上做进一步的细化,使得算法的各个处理步骤变得更具体、更清晰。
三、描述算法
1.为了判断“奖金” 是否翻倍,用变量c保存连续成功领奖的天数。
“动动有奖”APP的算法流程图
请以小组为单位,尝试分析算法流程图,并完成下列问题。
①流程图中i 和total 的作用是什么?
②c 的作用是什么?
③如何计算每天奖金“t”。
2.拓展链接
常用算法介绍
本例采用模拟策略来设计算法,即根据现实事务的实际流程和要求逐步进行处理,以达到数据处理的目标。计算机科学家根据各种问题的模型特征提出了各种针对性的算法设计策略,如穷举算法、顺序查找算法、对分查找算法、冒泡排序算法、深度优先搜索法以及动态规划等。
四、小结
五、课堂小练
通过小组讨论并抛出三个问题,让同学们在此情境中思考问题,激发同学们的学习兴趣。
用计算机解决问题时,由于实际问题情境的复杂性,需要对实际问题进行抽象与建模,再根据建立的计算模型设计算法,并将算法用合适的方式加以准确描述。
以线性导向为基础,将设计算法的步骤一一罗列出,让同学们在循序渐进中逐渐掌握知识点。
通过流程图的展示和问题导向,同学们在相互探讨,从而激发同学们的学习热情,并培养同学们自主学习和相互探究的学习能力。
课
堂
练
习
(有题有答案有解析)
1.使用算法解决实际问题时,首先应该做的是( )
A.抽象与建模 B.设计算法 C.描述算法 D.编写程序
答案:A
详解:本题主要考查算法解决问题。使用算法解决实际问题时,首先应该做的是抽象与建模,其次是描述、设计算法以及编写程序,故本题选A选项。
2.做匀加速直线运动的物体的瞬时速度计算公式是v=v+at,其中v是初速度,a是加速度,t是时间。设计的算法步骤有:
①用公式计算瞬时速度v=v+at;
②输入初速度v、加速度a和时间t;
③结束;
④输出结果v。
其正确的顺序是( )
A.②①④③ B.①②③④ C.④②③① D.①④②③
答案:A
详解:本题考查算法的描述,先输入数据,再用公式计算(处理数据),输出结果,最后结束。本题答案选A。
3.关于计算机解决问题的过程,以下说法错误的是( )
A.分析问题需要搞清楚需求情况、已知条件和待解问题
B.设计算法需要给出解决问题的详细方法和步骤
C.编写程序必须使用特定的程序语言
D.调试运行程序是检查程序能否按预期的效果执行
答案:C
详解:本题考查计算机解决问题的过程。编写程序不用必须使用特定的程序语言,可以根据需要使用Python、Java、C等。故选C。
4.程序设计中的“算法”其实就是()。
A.解决问题的方法和步骤
B.能在计算机上解决的方法
C.便于计算的方法
D.能通过电脑进行计算的方法
答案:A
详解:本题考查算法概念。算法就是解决问题的方法和步骤,指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。故本题选A。
5.下列编制一元二次方程求解程序的步骤正确的是
A.设计算法→分析问题→调试程序→编写程序
B.分析问题→设计算法→编写程序→调试程序
C.编写程序→调试程序→分析问题→设计算法
D.设计算法→编写程序→调试程序→分析问题
答案:B
详解:本题主要考查计算机解决问题的一般过程。计算机解决问题的一般过程:分析问题→设计算法→编写程序→调试程序,故本题选B选项。
6.用计算机解决问题的过程中,将程序输入到计算机进行检查、调试和运行,得到正确的结果。这一环节是( )
A.设计算法 B.分析问题
C.编写程序 D.调试运行程序
答案:D
详解:本题主要考查计算机解决问题的一般过程。计算机解决问题的一般过程是:分析问题→设计算法→编写程序→调试运行程序。将程序输入到计算机进行检查、调试和运行,得到正确的结果。这一环节是调试运行程序,故本题选D选项。
课
堂
小
结
1.抽象与建模指的是从现实项目的真实情境中提炼出核心的要素并加以确定或假设,最终定义出一个有明确已知条件和求解目标的问题,并用数学符号描述解决该问题的计算模型。
2.对任何数据的处理,总体上都需要经历下列三个步骤:
①输入数据。
②处理数据。
③输出处理结果。
3.采用模拟策略来设计算法,即根据现实事务的实际流程和要求逐步进行处理,以达到数据处理的目标。
4.计算机科学家根据各种问题的模型特征提出了各种针对性的算法设计策略,如穷举算法、顺序查找算法、对分查找算法、冒泡排序算法、深度优先搜索法以及动态规划等。
反
思
评
价
本节课对用算法解决问题的过程做出了详细的讲解,通过学生讨论,进而引导学生明确解决实际问题需要先对实际问题进行抽象与建模,再根据建立的计算模型设计算法,并将算法用合适的方式加以准确描述。同时注重过程评价,观察学生在实践操作中的参与度和合作情况,评价其思维能力和问题解决能力。通过学生的分组讨论和分享交流,评价其对算法的理解和应用能力。
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$