内容正文:
义务教育信息科技课程资源 五年级
第16课 比较交换找最值
第五单元 把数据排列有序
授课:张老师
1
1
2
了解在一组无序数中找出最大数的基本步骤,并能辨认其中的循环操作。
学习目标
分析、描述找出最大数的算法,体验用程序验证算法的一般过程。
第16课 学习目标
2
日常生活中,我们常常遇到找出最大数或最小数的问题,如找出身高最高的人、找出直径最大的水果、找出某月气温最高的一天、找出同款价格最低的商品等。
情境回顾
3
一 描述找出最大数的算法
二 验证找出最大数的算法
学习活动
4
桌上有5个信封,编号分别为1、2、3、4、5,每个信封里装有一张卡片,卡片上写着一个大于0的数,请找出其中的最大数。
一、描述找出最大数的算法
任务分析
5
45
14
21
68
82
活动规则:每次只能打开一个信封,查看卡片上的数后把卡片放回原信封内,才能继续打开另外一个信封,查看卡片上的数。
活动要求:以小组合作探究的方式,找出解决问题的算法,并描述算法的基本步骤。
一、描述找出最大数的算法
任务分析
6
寻找最大数的方法和步骤。
用A卡记录最大值,把信封里的数记录在A卡上后放回去。
依次打开其他信封,比较数值,如果值大就更新。
任务分析
一、描述找出最大数的算法
第1步:准备一张新卡片,称为_____,用来记录查找过程中的_______。
第2步:打开第一个信封,查看卡片上的数并记录在_____上。
第3步:打开第二个信封,查看卡片上的数并与A卡上的数比较,如果这个数比______________,那么把A卡上的数更新成这个数,否则不更新。
第4步:用同样的方法,依次打开第三个、第四个、第五个信封,查看卡片上的数,并与A卡上的数比较,决定是否更新A卡上的数。
第5步:最后,_______上的数就是最大数。
活动步骤
一、描述找出最大数的算法
A卡
最大值
A卡
A卡上的数大
A卡
在以上步骤中,从第3步开始就是重复操作。如果首先在A卡上记录0,第2步就可以是重复操作。可以构建循环结构来描述算法。
算法涉及搜索、比较、交换等操作。
活动步骤
一、描述找出最大数的算法
9
活动步骤
一、描述找出最大数的算法
第1步:准备一张卡片,称为A卡,记录查找过程中的最大数。
第2步:打开第一个信封,查看卡片上的数并记录在A卡上。
第3步:打开第二个信封,查看卡片上的数并与A卡上的数比较,如果这个数比A卡上的数大,那么把A卡上的数更新成这个数,否则不更新。
第4步:用同样的方法,依次打开第三个、第四个、第五个信封,查看卡片上的数,并与A卡上的数比较,决定是否更新A卡上的数。
第5步:最后,A卡上的数就是最大数。
第1步:设置变量“A卡’,值为0.
第2步:按顺序打开一个信封,查看卡片上的数。把这个数与A卡上的数比较。如果比A卡上记录的数大,那么把A卡上的数更新成这个数,否则不更新。
第3步:对每个信封做第2步的操作,直到看完所有信封。
第4步:输出变量“A卡”的值,A卡上的数就是最大数。
第1步:设置变量“A卡’,值为0.
第2步:按顺序打开一个信封,查看卡片上的数,把这个数与A卡上的数比较。如果比A卡上记录的数大,那么把A卡上的数更新成这个数,否则不更新。
第3步:重复第2步的操作直到没有信封。
第4步:输出变量“A卡”的值
一、描述找出最大数的算法
开始
设置 “ A卡 ”变量,值为0
信封中的数大于变量“A卡”的值
更新变量“A卡”的值
Y
N
查看信封上的数
这个结构有问题吗?
11
一、描述找出最大数的算法
开始
设置 “ A卡 ”变量,值为0
信封中的数大于变量“A卡”的值
更新变量“A卡”的值
Y
N
有未查看的信封?
N
输出变量“A卡”的值
结束
查看信封上的数
Y
如果找最小值怎么改?
12
找出最大数并记录所在的信封,应该如何改进算法呢?
需要一张新卡片记录最大值的信封编号。
这样用前面的算法步骤就能完成任务。
一、描述找出最大数的算法
>>程序操作
13
开始
设置 “ A卡 ”变量,值为0
信封中的数大于变量“A卡”的值
更新变量“A卡”的值
Y
N
有未查看的信封?
N
输出变量“A卡”的值,并说明是第几张信封
结束
查看信封
Y
记录下此时的张数
45
14
21
68
82
开始
设置 “ A卡 ”变量,值为0
信封中的数大于变量“A卡”的值
更新变量“A卡”的值
Y
N
有未查看的信封?
查看信封
Y
设置 “ B卡 ”、“C卡”变量,值为0
变量“B卡”的值+1
N
输出变量“A卡”的值
结束
输出变量“C卡”的值
令“C卡”的值等于“B卡”的值
15
在寻找最大数的过程中,一共要循环多少次?也就是说,要做多少次“比较两个数大小”的操作?
思考交流
上面的例子里一共5个数,用在A卡上写0的方法,要循环5次。
其实很简单,循环次数就是数据个数。
一、描述找出最大数的算法
如果是5 000个数呢?
16
二、编写程序代码
开始
设置 “ A卡 ”变量,值为0
信封中的数大于变量“A卡”的值
更新变量“A卡”的值
Y
N
有未查看的信封?
N
输出变量“A卡”的值
结束
查看信封上的数
Y
17
什么是列表?
变量
存放数据
列表
有顺序地存放一串数据
42
列表名称
第?项
一共有几项?
5项
该项存储的数据
该数列的长度?
6. 0
一共有几项?分别是?
二、编写程序代码
开始
设置 “ A卡 ”变量,值为0
信封中的数大于变量“A卡”的值
更新变量“A卡”的值
Y
N
有未查看的信封?
N
输出变量“A卡”的值
结束
查看信封上的数
Y
22
网址:kn.codemao.cn
循环条件
信封中的数大于变量“A卡”的值
执行动作
变量“A卡”的值=信封中的数
>>程序操作
23
二、编写程序代码
开始
设置 “ A卡 ”变量,值为0
信封中的数大于变量“A卡”的值
更新变量“A卡”的值
Y
N
有未查看的信封?
N
输出变量“A卡”的值
结束
查看信封上的数
Y
24
网址:kn.codemao.cn
25
二、编写程序代码
循环条件
有未查看的信封?
如果...
如果...
>>程序操作
二、编写程序代码
如果...
在Python中,列表是一种常见的数据序列,用于存储一系列数据。例如,下面的语句可以创建一个包含5个数的列表。
# 创建一个包含5个数的列表
box = [24,91,42,108,35]
这个列表的名称是box,把数据放在方括号 [ ]里。
每个数据之间用英文逗号“,”分隔开。
Python
列表下标 box [0] box [1] box [2] box [3] box [4]
列表数据 24 91 42 108 35
通过下标来引用列表中的数据。
列表下标从0开始,而不是从1开始。也就是列表第一个数据的下标是0,第二个数据的下标是1,依次类推。
Python
29
利用len( )函数可以获取列表中的数据个数。
# 创建一个包含5个数的列表
box = [24,91,42,108,35]
# 用变量cc保存box列表中的数据个数
cc = len(box)
其中cc=len(box)是赋值语句,表示把len()获取的box列表的数据个数保存到变量cc中。
Python
30
$