义务教育版(2024)五年级全一册第16课《比较交换找最值》课件(共28张PPT)

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

义务教育版(2024)五年级全一册第16课《比较交换找最值》课件(共28张PPT)

资源简介

(共28张PPT)
义务教育信息科技(2024)五年级          
第1课时
第五单元 把数据排列有序
五年级下册
第16课 比较交换找最值
单元导入
排序算法是计算机解决问题的基础算法之一,可以将无序的数据按照特定顺序排列。
单元导入
在排序过程中,需要对数据进行比较,并根据比较结果来决定是否交换位置,从而实现排序。最终的排列顺序可以是升序(从小到大)或降序(从大到小)。
1
2
了解在一组无序数中找出最大数的基本步骤,
并能辨认其中的循环操作。
分析、描述找出最大数的算法,体验用程序
验证算法的一般过程。
学习目标
第16课 比较交换找最值
日常生活中,我们常常遇到找出最大数的问题,如找出身高最高的人、找出直径最大的水果、找出某月气温最高的一天等。本课通过逐个比较数值大小的方法来找出最大数,认识其中包含的算法。
第16课 课堂导入
日常生活中,我们常常遇到找出最大数或最小数的问题,如找出身高最高的人、找出直径最大的水果、找出某月气温最高的一天、找出同款价格最低的商品等。
情境回顾
思考
想一想,你还知道哪些与“最值”有关的事情?
一 描述找出最大数的算法
二 验证找出最大数的算法
学习活动
第16课 学习活动
  桌上有5个信封,编号分别为1、2、3、4、5,每个信封里装有一张卡片,卡片上写着一个大于0的数,请找出其中的最大数。
问题提出
第16课 学习活动
一、描述找出最大数的算法
  活动规则:每次只能打开一个信封,查看卡片上的数后把卡片放回原信封内,才能继续打开另外一个信封,查看卡片上的数。
  活动要求:以小组合作探究的方式,找出解决问题的算法,并描述算法的基本步骤。
第16课 学习活动
一、描述找出最大数的算法
问题提出
寻找最大数的方法和步骤。
用A卡记录最大值,把信封里的数记录在A卡上后放回去。
依次打开其他信封,比较数值,如果值大就更新。
第16课 学习活动
一、描述找出最大数的算法
问题分析
第1步:准备一张新卡片,称为A卡,用来记录查找过程中的最大数。
第2步:打开第一个信封,查看卡片上的数并记录在A卡上。
第3步:打开第二个信封,查看卡片上的数并与A卡上的数比较,如果这个数比A卡上的数大,那么把A卡上的数更新成这个数,否则不更新。
第4步:用同样的方法,依次打开第三个、第四个、第五个信封,查看卡片上的数,并与A卡上的数比较,决定是否更新A卡上的数。
第5步:最后,A卡上的数就是最大数。
活动步骤
第16课 学习活动
一、描述找出最大数的算法
  在以上步骤中,从第3步开始就是重复操作。如果首先在A卡上记录0,第2步就可以是重复操作。可以构建循环结构来描述算法。
第16课 学习活动
一、描述找出最大数的算法
算法涉及搜索、比较、交换等操作。
活动步骤
算法描述
第16课 学习活动
一、描述找出最大数的算法
  第1步:在A卡上记录0。
第2步:按顺序打开一个信封,查看卡片上的数,把这个数与A卡上的数比较。如果比A卡上记录的数大,那么把A卡上的数更新成这个数,否则不更新。
第3步:对每个信封做第2步的操作。
第4步:最后,A卡上的数就是最大数。
  找出最大数并记录所在的信封,应该如何改进算法呢?
这样用前面的算法步骤就能完成任务。
需要一张新卡片记录最大值的信封编号。
进一步探究
第16课 学习活动
一、描述找出最大数的算法
第16课 学习活动
一、描述找出最大数的算法
把流程图补充完整。
进一步探究
  在寻找最大数的过程中,一共要循环多少次?也就是说,要做多少次“比较两个数大小”的操作?如果是5 000个数呢?
上面的例子里一共5个数,用在A卡上写0的方法,要循环5次。
其实很简单,循环次数就是数据个数。
思考交流
第16课 学习活动
一、描述找出最大数的算法
第16课 学习活动
二、验证找出最大数的算法
  在Python中,列表是一种常见的数据序列,用于存储一系列数据。例如,下面的语句可以创建一个包含5个数的列表。
# 创建一个包含5个数的列表
box = [24,91,42,108,35]
认识列表
这个列表的名称是box,把数据放在方括号 [ ]里。
每个数据之间用英文逗号“,”分隔开。
第16课 学习活动
二、验证找出最大数的算法
列表下标 box [0] box [1] box [2] box [3] box [4]
列表数据 24 91 42 108 35
  通过下标来引用列表中的数据。
  列表下标从0开始,而不是从1开始。也就是列表第一个数据的下标是0,第二个数据的下标是1,依次类推。
认识列表
第16课 学习活动
二、验证找出最大数的算法
  利用len( )函数可以获取列表中的数据个数。
认识列表
# 创建一个包含5个数的列表
box = [24,91,42,108,35]
# 用变量cc保存box列表中的数据个数
cc = len(box)
其中cc=len(box)是赋值语句,表示把len()获取的box列表的数据个数保存到变量cc中。
知识回顾
第16课 学习活动
二、验证找出最大数的算法
  在Python中,用while循环可以实现算法的循环结构。
while循环基本格式如下。
   while 判断条件:
      语句组 
  当循环的次数不确定时,可以根据条件进行判断。当条件成立时,执行条件后的语句;当条件不成立时,结束循环。
运行程序
第16课 学习活动
二、验证找出最大数的算法
打开找出列表中最大数的程序并运行,分析程序与算法的关系。
box = [24, 91, 42, 108, 35]
cc = len(box)
a = box[0]
i = 1
while iif box[i] > a:
a = box[i]
i = i+1
print('最大数为:', a)
#创建一个包含5个数的列表
#用cc保存box列表中的数据个数
#用a保存最大数,初始值设为列表第0项
#循环变量初始值设为1
#用循环结构逐个比较列表中的数
#如果当前数大于a的值
#更新a的值
#循环控制变量增加1,继续循环
#输出找到的最大数
分析程序
第16课 学习活动
二、验证找出最大数的算法
  在while循环中,用变量a保存最大数,并用条件语句if来比较。当前数box[i]的值是否大于已经找到的最大数a。如果是,就将a的值更新为box[i]的值。这样,通过循环操作逐个查找,找出列表中的最大数并更新到变量a中。  
第16课 学习活动
二、验证找出最大数的算法
分析程序
  控制变量i,从1变化到等于cc的值(数据个数)时,结束循环。
循环结束后,输出变量a的值,就是这个列表中的最大数。
  分析循环次数发现,程序进行了4次循环,比前面活动中少循环一次,这是为什么呢?
观察发现,前面活动中先在A卡上记录0,再进行数据循环比较,而程序实现时,先在变量a中保存第一个数,再用这个数与第二个数比较,因此,可以减少一次循环。
    
  1.在无序数中找出最值的算法,在生活中有很多应用案例,只要细心观察,就会发现它们的存在和所起的作用。
  2.寻找最值的算法主要采用了记录、比较、交换以及循环判断等操作,这也是对数据进行比较运算的基本方法。
第16课 课堂总结
随意列举一些无序的数,要从中找出最小数,应该如何操作?
尝试用程序验证。 
 
第16课 拓展与提升
下课啦!

展开更多......

收起↑

资源预览