资源简介 (共28张PPT)义务教育信息科技(2024)五年级 第1课时第五单元 把数据排列有序五年级下册第16课 比较交换找最值单元导入排序算法是计算机解决问题的基础算法之一,可以将无序的数据按照特定顺序排列。单元导入在排序过程中,需要对数据进行比较,并根据比较结果来决定是否交换位置,从而实现排序。最终的排列顺序可以是升序(从小到大)或降序(从大到小)。12了解在一组无序数中找出最大数的基本步骤,并能辨认其中的循环操作。分析、描述找出最大数的算法,体验用程序验证算法的一般过程。学习目标第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 = 1while iif box[i] > a:a = box[i]i = i+1print('最大数为:', 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课 拓展与提升下课啦! 展开更多...... 收起↑ 资源预览