资源简介 中小学教育资源及组卷应用平台湘教版信息技术八年级上册《义卖竞价(二)——擂台算法》教学设计课题 义卖竞价(二)——擂台算法 单元 第五单元 学科 信息技术 年级 八年级学习 目标 掌握使用分割函数进行数据拆分的方法。 能够运用擂台算法找最值。 善于分解复杂问题,提高分析问题、解决问题的自信心和条理性;增强参与团队讨论的能力重点 1、掌握使用分割函数进行数据拆分的方法。 2、能够运用擂台算法找最值。难点 擂台算法的实际应用教学过程教学环节 教师活动 学生活动 设计意图导入新课 1、教师:同学们在义卖中,每次竞价的人数一定是确定的吗? 指名学生回答问题。 教师:没错,不确定。 教师:像上节课那样设置确定的a、b、c三个变量的程序显然是不能满足实际需要的另外,我们能不能完善程序,使程序能输入和输出优胜者的姓名和出价呢?说说你的想法。 学生思考并组内交流,进入今天的新课题。 邀请学生回答问题。 教师:这节课我们就来学习可以找出多个数据中最大值的擂台算法,以及同时输出优胜者姓名和出价的方法。 通过案例和教师提问,学生自主思考问题。 引入案例有助于提高学生兴趣,帮助学生理解学习任务,引导学生思考。讲授新课 一、算法描述及流程图 1、构建循环结构 教师提问:随着问题复杂度的增加,我们需要将问题进行拆解细化。细化的原则是将问题拆解为不可再分的小问题然后分别实现。你会如何构建循环结构呢? 学生思考并组内交流。 指名学生回答问题。 教师总结: (1)确定循环次数。 (2)确定循环体有哪些操作。 2、画流程图 教师:我们已经掌握了三个数据比较大小的表达式构建和选择结构的写法。现在要扩展到多人,其算法跟三人竞价相似,多人竞价的关键,就是重复的比较过程。与打擂台很相似,留在台上的是胜者。我们可以根据输入的人数,构建循环结构,从而找到最髙的价格。假设我们先不实现输入输出优胜者的“姓名、价格”的功能,只描述一个多人竞价找出最高出价的算法,请同学们画出流程图。(提示:构建循环结构,人数可设置为n) 学生自主思考并画流程图。教师巡视。 教师总结: 二、数据的拆分与提取 教师提问:程序要求不仅能够比较出价大小,还要能够显示出价者姓名。这就需要在输入数据后,把“姓名、价格”信息提取出来,分别存储到不同的变量中。我们可以使用什么函数呢? 学生自主思考,组内交流。 指名学生回答问题。 老师总结:分割函数,Python语言中用于字符串分割的函数——split( )。 1、分割函数 split( ) 例如: 任务:写一写分割结果,并和同桌讨论结果。 指名学生回答问题。 教师讲解: 教师总结:该语句被执行时,“shu”变量中存储的字符串,只要遇到“5”,就会被分隔,该字符串中的数据会被分割为“12”,“4”,“678”,“6”等新的字符串。分割出来的子串被依次保存在以x变量名开头的若干个位置中,如“12”被保存在x[0]中,“4”被保存在x[1]中,按照顺序依次往后排。其中每一个都可以看作单独的字符串类型变量。 2、数据拆分 教师讲解:如果,我们输入时用空格来分割“姓名”和“价格”,那么,使用分割函数拆分后,第1个数据为姓名,而第2个数据则为出价。输入数据的存储变量定义为 “indata”,存储拆分后数据的变量名字定义为“slt”,拆分出来的姓名最后存储在变量“name”中,存储最大值的变量定义为“ maxmark”。 变量定义可依据个人习惯,直观简洁为好 数据拆分语句: 教师提问:根据刚刚学习的知识,和同桌互相说一说框内代表的含义。 学生自主思考并和同桌交流。 指名学生回答问题。 教师总结: 3、合作探究 和同桌讨论一下,如果老师在这个程序里面输入“张朵朵 95”,姓名和价格的数据会被空格拆分,“张朵朵 ”被保存在哪里?“95”被保存在哪里? 学生自主思考3分钟,指名学生回答问题。 教师总结:“张朵朵 ”被保存在slt[0],“95”被保存在slt[1]。 三、程序的实现 1、编写程序 任务:依据自己完善的算法流程,完成程序的编写工作。仔细阅读表中的程序,用简练的语言解释每一条语句的含义。 学生完善流程,并写出语句含义,教师巡视。 指名学生回答语句含义。 教师总结: 2、程序测试 任务:设计一组测试数据,在 Python环境中,测试该程序是否能够实现任意数量的人参与竞价。 四、合作探究 请同学们参考流程图和所学知识,编写程序——学校举行运动会,其中1500米有50位选手参与,请帮忙计算出第一名。 小组内交流解决,并试着输入电脑进行实操。教师巡视。 五、知识拓展 逻辑运算与关系运算相似,运算结果也是逻辑值Tue或者 False,但运算的参与量是逻辑值。逻辑运算的本质操作是将两个关系连接在一起产生一个结果的逻辑值。常用的逻辑运算符有三种,它们是and(逻辑与)or(逻辑或)、not(逻辑非)。 and:当表达式同时满足两个条件时,逻辑运算的结果为真。 or:当表达式满足两个条件中的一个或两个时,逻辑运算的结果为真。 not:对逻辑值取反。 六、课堂练习 1、设计一个程序:随机生成N个随机整数(范围自定),并求出最大值、最小值和比平均值大的值。 学生思考,组内交流,用自然语言描述如何构建循环结构。 教师总结,学生认真听讲。 小组讨论,画出流程图。 教师总结,学生认真听讲。 教师提问,学生思考,指名学生回答问题。教师讲解,学生认真听讲。 教师提问,学生自主思考并交流,指名学生回答问题。教师讲解,学生认真听讲。 教师讲解——数据拆分,学生认真听讲。 学生自主思考并交流,指名学生回答问题。教师总结,学生认真听讲。 教师提问,学生自主思考并交流,指名学生回答问题。教师总结,学生认真听讲。 学生思考并交流,指名学生回答问题。教师讲解,学生认真听讲。 学生自主思考并在组内交流实操。教师巡视。 学生利用所学知识,完成任务。教师巡视。 学生学习拓展知识。 通过教师提出的疑问,进入课堂,引发学生的学习兴趣。教师总结,有利于学生知识的巩固。 给出解题提示,让学生自行探索解决问题的方法,降低走弯路的几率;通过小组讨论,激发学生的求知欲。 教师讲解,使学生更进一步巩固知识。 通过教师提出的问题,学生进一步思考,有利于提高学生思考能力。教师讲解,使学生更进一步巩固知识。 通过教师提问,引导学生思考,提高学生的思考能力和团队合作能力。教师讲解,有利于学生巩固知识。 通过教师讲解,使学生更进一步巩固知识。 讲解后提出问题,有利于知道学生的学习情况。教师讲解,使学生更进一步巩固知识。 通过提问,使学生更进一步吸收本课知识。 通过教师提问,学生进行自主思考,有利于提高学生的思考能力。指名学生回答问题。教师总结有利于学生巩固知识。 通过让学生进行实操。有利于本课知识的学习和吸收。 通过教师提问,学生先自主思考问题,后小组内交流,并实操。有利于学生对本课知识的巩固。 拓展思维,培养学生学习的精神课堂小结 梳理本节课的知识点,完成学习目标,培养学生总结概况能力。板书设计21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)21世纪教育网(www.21cnjy.com)(共27张PPT)义卖竞价(二)——擂台算法湘教版 八年级上新知导入在义卖中,每次竞价的人数一定是确定的吗?不确定新知导入像上节课那样设置确定的a、b、c三个变量的程序显然是不能满足实际需要的另外,我们能不能完善程序,使程序能输入和输出优胜者的姓名和出价呢?说说你的想法。这节课我们就来学习可以找出多个数据中最大值的擂台算法,以及同时输出优胜者姓名和出价的方法。一、算法描述及流程图新知讲解1.构建循环结构随着问题复杂度的增加,我们需要将问题进行拆解细化。细化的原则是将问题拆解为不可再分的小问题然后分别实现。你会如何构建循环结构呢?组内交流(1)确定循环次数。(2)确定循环体有哪些操作。一、算法描述及流程图新知讲解1.构建循环结构一、算法描述及流程图新知讲解2.画出流程图我们已经掌握了三个数据比较大小的表达式构建和选择结构的写法。现在要扩展到多人,其算法跟三人竞价相似,多人竞价的关键,就是重复的比较过程。与打擂台很相似,留在台上的是胜者。我们可以根据输入的人数,构建循环结构,从而找到最髙的价格。假设我们先不实现输入输出优胜者的“姓名、价格”的功能,只描述一个多人竞价找出最高出价的算法,请同学们画出流程图。(提示:构建循环结构,人数可设置为n)一、算法描述及流程图新知讲解尝试画出流程图程序要求不仅能够比较出价大小,还要能够显示出价者姓名。这就需要在输入数据后,把“姓名、价格”信息提取出来,分别存储到不同的变量中。我们可以使用什么函数呢?二、数据的拆分与提取新知讲解分割函数,Python语言中用于字符串分割的函数——split( )。组内交流1. 分割函数 split( )格式:字符串类型变量1=字符串类型变量.split(“分割字符串”)字符串类型变量是指任意存储字符串的变量名分割字符串是指用来分割“字符串类型变量”中字符串的具体“字符”。新知讲解二、数据的拆分与提取1. 分割函数 split( )合作探究二、数据的拆分与提取变量名 储存内容X[0] 12X[1] 4X[2] 678X[3] 6写一写分割结果,并和同桌讨论结果。shu=“1254567856”x= shu. split(“5”)变量名 储存内容1. 分割函数 split( )shu=“1254567856”x= shu. split(“5”)新知讲解二、数据的拆分与提取该语句被执行时,“shu”变量中存储的字符串,只要遇到“5”,就会被分隔,该字符串中的数据会被分割为“12”,“4”,“678”,“6”等新的字符串。分割出来的子串被依次保存在以x变量名开头的若干个位置中,如“12”被保存在x[0]中,“4”被保存在x[1]中,按照顺序依次往后排。其中每一个都可以看作单独的字符串类型变量。2.数据拆分如果,我们输入时用空格来分割“姓名”和“价格”,那么,使用分割函数拆分后,第1个数据为姓名,而第2个数据则为出价。输入数据的存储变量定义为 “indata”,存储拆分后数据的变量名字定义为“slt”,拆分出来的姓名最后存储在变量“name”中,存储最大值的变量定义为“ maxmark”。新知讲解二、数据的拆分与提取变量定义可依据个人习惯,直观简洁为好2.数据拆分sIt=indata.split(“”)name=sIt[0]maxmark=slt[1]新知讲解二、数据的拆分与提取数据拆分语句sIt=indata.split(“”)name=sIt[0]maxmark=slt[1]合作探究存储拆分后数据的变量存储输入数据的变量存储拆分出来的姓名的变量存储最大值的变量根据刚刚学习的知识,和同桌互相说一说框内代表的含义。sIt=indata.split(“”)name=sIt[0]maxmark=slt[1]合作探究“张朵朵 ”被保存在slt[0],“95”被保存在slt[1]。和同桌讨论一下,如果老师在程序里面输入“张朵朵 95”,姓名和价格的数据会被空格拆分,“张朵朵 ”被保存在哪里?“95”被保存在哪里?1.编写程序三、程序的实现依据自己完善的算法流程,完成程序的编写工作。仔细阅读表中的程序,用简练的语言解释每一条语句的含义。新知讲解程序代码 语句含义n=int(input(“参与竟价人数:”))indata= input(“姓名和出价:”)slt= indata.split(“”)name=slt[0]maxmark=float(slt[I] )for i in range(2,n+ 1):1.编写程序三、程序的实现依据自己完善的算法流程,完成程序的编写工作。仔细阅读表中的程序,用简练的语言解释每一条语句的含义。新知讲解程序代码 语句含义indata= input(“姓名和出价:”)sIt=indata split(“”)mark=float(slt[1])if(mark>maxmara):maxmark= markname=slt[0]print(name,“”,maxmark)新知讲解程序代码 语句含义n=int(input(“参与竟价人数:”)) 竞价人数转化为整数型indata= input(“姓名和出价:”) 设置输入变量slt= indata.split(“”) 用空格分割姓名和出价name=slt[0] 姓名储存在变量namemaxmark=float(slt[I] ) 价格数值转化为浮点型,最大值储存在变量 maxmarkfor i in range(2,n+ 1): 设置循环次数语句含义程序代码 语句含义indata= input(“姓名和出价:”) 循环结构中的输入变量sIt=indata split(“”) 循环结构中的分割函数 split( )mark=float(slt[1]) 价格数值转化为浮点型,每次比较的值存储在变量markif(mark>maxmara): 如果mark的值大于 maxmarkmaxmark= mark 则把mark的值赋给 maxmarkname=slt[0] 且姓名储存在变量nameprint(name,“”,maxmark) 输出最终优胜者的姓名和出价新知讲解语句含义设计一组测试数据,在 Python环境中,测试该程序是否能够实现任意数量的人参与竞价。2.程序测试三、程序的实现新知讲解小组内交流解决,并试着输入电脑进行实操。请同学们参考流程图和所学知识,编写程序——学校举行运动会,其中1500米有50位选手参与,请帮忙计算出第一名。合作探究逻辑运算与关系运算相似,运算结果也是逻辑值Tue或者 False,但运算的参与量是逻辑值。逻辑运算的本质操作是将两个关系连接在一起产生一个结果的逻辑值。常用的逻辑运算符有三种,它们是and(逻辑与)or(逻辑或)、not(逻辑非)。and:当表达式同时满足两个条件时,逻辑运算的结果为真。or:当表达式满足两个条件中的一个或两个时,逻辑运算的结果为真。not:对逻辑值取反。逻辑运算合作探究课堂练习设计一个程序:随机生成N个随机整数(范围自定),并求出最大值、最小值和比平均值大的值。擂台算法算法描述及流程图1.构建循环结构2.画出流程图数据的拆分与提取1.分割函数split( )2.数据拆分程序的实现编写/测试程序课堂总结板书设计擂台算法算法描述及流程图1.构建循环结构2.画出流程图数据的拆分与提取1.分割函数split( )2.数据拆分程序的实现编写/测试程序 展开更多...... 收起↑ 资源列表 义卖竞价(二)——擂台算法.docx 义卖竞价(二)——擂台算法.pptx