湘电子版(2019)信息技术八上 第13节《义卖竞价(二)——擂台算法》教案

资源下载
  1. 二一教育资源

湘电子版(2019)信息技术八上 第13节《义卖竞价(二)——擂台算法》教案

资源简介

《义卖竞价(二)——擂台算法》教案
一、教材分析
随着问题复杂度的增加,我们需要将问题进行拆解细化,将问题拆解为不可再分的小问题,然后分别实现。上节课学习了三个数据比较大小的表达式构建和结构写法,本节课将竞价者扩展到多人,须用循环结构实现。同时,输出的结果要将“姓名、价格”的信息提取出来,需要通过分割函数来实现数据拆分。
二、学情分析
复杂的问题隐藏着多个需要细分的小任务,应开始引导学生自行拆解任务,自主理解每行代码的含义,这样学生才能将知识融会贯通,真正掌握写代码的技能。
三、教学目标
1.知识与技能:
掌握使用分割函数进行数据拆分的方法;能够运用擂台算法找最值。
2.过程与方法:
采用案例教学法,延续上一节课的义卖竞价场景,使学生理解擂台算法;启发式教学,引导学生思考问题、分解问题。
3.情感态度与价值观:
善于分解复杂问题,提高分析问题、解决问题的自信心和条理性;增强参与团队讨论的能力。
四、教学重难点
理解擂台算法。
五、教学方法
案例法、启发法、讨论法。
六、教学过程
?
导入新课
师:上节课我们制作了一个可以找出三个数中最大值的程序。但我们知道,在义卖中,每次竞价的人数是不确定的,而且常常超过三个人。因此,像上节课那样设置确定的
a、b、c
三个变量的程序显然是不能满足实际需要的。
另外,上节课的程序只能输入和输出价格,我们能不能完善程序,使程序能输入和输出优胜者的姓名和出价呢?这节课我们就来学习可以找出多个数据中最大值的擂台算法,以及同时输出优胜者姓名和出价的方法。
【设计意图】发散案例,帮助学生理解学习任务,引导学生思考。
?
讲授新课
一、算法描述及流程图
师:随着问题复杂度的增加,我们需要将问题进行拆解细化。细化的原则是将问题拆解为不可再分的小问题,然后分别实现。
我们已经掌握了三个数据比较大小的表达式构建和选择结构的写法。现在要扩展到多人,其算法跟三人竞价相似,多人竞价的关键,就是重复的比较过程。与打擂台很相似,留在台上的是胜者。我们可以根据输入的人数,构建循环结构,从而找到最高的价格。假设我们先不实现输入输出优胜者的“姓名、价格”的功能,只描述一个多人竞价找出最高出价的算法,请同学们画出流程图。(提示:构建循环结构,人数可设置为
n)
生:小组讨论,画出流程图。
师:总结、点评学生的成果,展示范例(见课件)。
【设计意图】给出解题提示,让学生自行探索解决问
题的方法,降低走弯路的几率;通过小组讨论,激发学生的求知欲。
二、数据的拆分与提取
1.分割函数
split
师:从上面的流程图中我们解决了比较多个出价的大小的问题,还有一个问题需要解决:怎么显示出价者的姓名,也就是怎么把姓名和出价联系起来?这就需要我们输入姓名和出价的数据,以及输入数据后把“姓名”“价格”
的信息提取出来,分别储存到不同的变量中。Python
语言提供了字符串分割的函数。
分割函数
split()
格式:字符串类型变量1=字符串类型变量.split(“分割字符串”)
字符串类型变量是指任意存储字符串的变量名
分割字符串是指用来分割“字符串类型变量”中字符串的具体“字符”
例如:
shu=“1254567856”
x=shu.split(“5”)
该语句被执行时,“shu”变量中存储的字符串,只要遇到“5”,就会被分隔,该字符串中的数据会被分割为“12”“4”“678”“6”等新的字符串。分割出来的子串被依次保存在以
x
变量名开头的若干个位置中,如“12”被保存在
x[0]中,“4”被保存在
x[1]中,按照顺序依次往后排。
其中每一个都可以看作单独的字符串类型变量。
2.数据拆分
利用分割函数
split(),我们可以用空格来分割“姓名”和“价格”,拆分后,第
1
个数据为姓名,第二个数据则为出价。输入数据的存储变量定义为“indata”,存储拆分后数据的变量名字定义为“slt”,拆分出来的姓名最后存储在变量“
name”中,存储最大值的变量定义为“maxmark”。变量定义可依据个人习惯,比如储存姓名的变量你也可以定义为“xingming”,变量名以直观简洁为宜。
数据拆分语句如下:
slt=indata.split(“
”)
name=slt[0]
maxmark=slt[1]
【设计意图】解释分割函数的含义和用法。
三、程序的实现
师:接下来,请同学们依据自己完善的算法流程,完成程序的编写工作。
生:编写程序。
师:请同学们设计一组测试数据,在
Python
环境中测试自己写的程序是否能够实现任意数量的人参与竞价。
生:测试程序。
师:(展示范例程序)同学们的程序都通过测试了吗?
比较范例,看看自己的程序还存在什么问题。
生:举手发言,说出自己的体会。
师:前几节课都是老师来解释程序代码的语句含义,
这次由同学们自己来说好吗?
生:填写表格。
师:解释语句含义,见课件。
【设计意图】此次程序编写难度较大,让学生在多次修改和体会中理解擂台算法,提高学生自主编写程序的能力。
?
课堂总结
练习与思考
设计一个程序:随机生成
N
个随机整数(范围自定),并求出最大值、最小值和比平均值大的值。
【设计意图】巩固所学的用分割函数
split()分割数据的知识,拓展其用法,提高学生举一反三的能力。
教学反思

展开更多......

收起↑

资源预览