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

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

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

资源简介

(共14张PPT)
第13节
义卖竞价(二)
——擂台算法
1.
掌握Python分割函数的含义和使用
2.
使用Python擂台算法找最值
学习任务
学习过程
新课导入
在义卖中,每次竞价的人数是不确定的,而且常常超过三个人。因此,设置确定的a、b、c三个变量的程序显然是不能满足实际需要的。另外,上节课的程序只能输入和输出价格,我们能不能完善程序,使程序能输入和输出优胜者的姓名和出价呢?
我们已经掌握了三个数据比较大小的表达式构建和选择结构的写法。现在要扩展到多人,其算法跟三人竞价相似,多人竞价的关键,就是重复的比较过程。与打擂台很相似,留在台上的是胜者。我们可以根据输入的人数,构建循环结构,从而找到最高的价格。假设我们先不实现输入输出优胜者的“姓名、价格”的功能,只描述一个多人竞价找出最高出价的算法,请同学们画出流程图。
(提示:构建循环结构,人数可设置为n)
一、算法描述及流程图
如何将三个数据取最大值的方法应用到若干数据中?
确定循环体有哪些操作?
一、算法描述及流程图
二、数据的拆分与提取
1.分割函数split
任务要求不仅能够比较出价大小,还要能显示出价者姓名,也就是要把姓名和出价联系起来。这就需要我们输入姓名和出价的数据,以及输入数据后把“姓名”“价格”的信息提取出来,分别储存到不同的变量中。Python语言提供了字符串分割的函数。
二、数据的拆分与提取
1.分割函数split
分割出来的子串被依次保存在以x变量名开头的若干个位置中,如“12”被保存在x[0]中,“4”被保存在x[1]中,按照顺序依次往后排。其中每一个都可以看作单独的字符串类型变量。
二、数据的拆分与提取
2.数据拆分
利用分割函数split(),我们可以用空格来分割“姓名”和“价格”,拆分后,第1个数据为姓名,第二个数据则为出价。
数据拆分语句如下:
slt=indata.split(“
”)
name=slt[0]
maxmark=slt[1]
存储拆分后数据的变量
存储输入数据的变量
存储拆分出来的姓名的变量
存储最大值的变量
变量定义可依据个人习惯,比如储存姓名的变量你也可以定义为“xingming”,变量名以直观简洁为宜。
二、数据的拆分与提取
2.数据拆分
比如,输入“李小萌
100”,姓名和价格的数据会被空格拆分,“李小萌”被保存在slt[0],“100”被保存在slt[1]。
slt=indata.split(“
”)
name=slt[0]
maxmark=slt[1]
三、程序的实现
接下来,请同学们参考流程图编写程序。然后设计一组测试数据,在Python环境中测试自己写的程序是否能够实现任意数量的人参与竞价。
1.编写程序
三、程序的实现
n=int(input(“参与竞价人数:”))
indata=input(“姓名和出价:”)
slt=indata.split(“
”)
name=slt[0]
maxmark=float(slt[1])
for
i
in
range(2,n+1):
indata=input(“姓名和出价:”)
slt=indata.split(“
”)
mark=float(slt[1])
if
(mark>maxmark):
maxmark=mark
name=slt[0]
print(name,“
”,maxmark)
三、程序的实现
n=int(input(“参与竞价人数:”))
indata=input(“姓名和出价:”)
slt=indata.split(“
”)
name=slt[0]
maxmark=float(slt[1])
for
i
in
range(2,n+1):
indata=input(“姓名和出价:”)
slt=indata.split(“
”)
mark=float(slt[1])
if
(mark>maxmark):
maxmark=mark
name=slt[0]
print(name,“
”,maxmark)
竞价人数转化为整数型
用空格分割姓名和出价
设置循环次数
输出最终优胜者的姓名和出价
设置输入变量
姓名储存在变量name
价格数值转化为浮点型,
循环结构中的输入变量
循环结构中的分割函数split()
最大值储存在变量maxmark
价格数值转化为浮点型,
如果mark的值大于maxmark
则把mark的值赋给maxmark
每次比较的值存储在变量mark
且姓名储存在变量name
四、练习与思考
设计一个程序:随机生成N个随机整数(范围自定),并求出最大值、最小值和比平均值大的值。
如何存储生成的随机数?
如何构建循环结构求出最小值和比平均值大的值?

展开更多......

收起↑

资源预览