比较交换找最值比较交换找最值五年级全一册行业PPT模板http:///hangye/人教版
描述找出最大数的算法验证找出最大数的算法
导入新课导入新课你知道,世界上最高的人是谁吗?他身高是多少呢?Awuche,加纳人,患有巨人症,身高为2.89米,是世界上最高的人(截止2023年1月)。
导入新课导入新课世界上最高的人是如何找出来的呢?在日常生活中,我们也会遇到找出最大数的问题,如找出班上身高最高的同学、找出直径最大的苹果、找出某月气温最高的一天等。
讲授新知讲授新知桌上有5个信封,编号分别为1、2、3、4、5,每个信封里装有一张卡片,卡片上写着一个大于0的数,请找出其中的最大数。活动规则:每次只能打开一个信封,而且查看卡片上的数后把卡片放回原信封内,才能继续打开另外一个信封去查看卡片上的数。活动一我们要解决的问题是什么?关键规则是什么?
讲授新知讲授新知1.要解决的问题对信封中的5个数进行逐一比较,找出最大数。因此可以专门用一张卡片记录当前的最大数。2.关键规则每次只能打开一个信封,打开查看后需要放回原位置。因此我们可以从1至5号信封信封逐一比较,有规律地查看信封中的数,以避免遗漏。最大值
讲授新知讲授新知5个信封里如下所示,请一组同学来尝试查看信封、确定最大值的过程,其他同学一起整理算法流程。331684389772345A卡336889A卡
讲授新知讲授新知活动步骤描述如下。第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卡上的数为什么要写0,写100可行吗?
讲授新知讲授新知A卡上要写0,不能写100。因为事先知道信封里的数都大于0,所以A卡上的数要比后面查看到的数都要小。如果写100,后面查看的数不一定大于100,这样就不能保证找到信封中的最大数。要保证A卡的初始值比信封里的数都要小。如果我们要找出最大数并记录所在的信封编号,应该如何解决问题呢?
讲授新知讲授新知进一步探究:找出最大数并记录所在的信封。我们可以对原有算法进行改进,再添加一张卡片,称为B卡,用来记录信封的编号。331684389772345A卡336889A卡B卡1最大数信封编号24
讲授新知讲授新知延伸思考:在寻找最大数的过程中,一共要循环多少次?也就是说,要做多少次“比较两个数大小”的操作?如果是5000个数呢?在A卡上写0后依次拆开信封看数,有5个信封,循环了5次。如果是5000个数,我们要比较5000次......
讲授新知讲授新知当数量非常大的时候,我们可以用Python程序帮助解决问题。下面通过查找列表中的最大数,利用循环结构实现查找最大数的算法。1.认识Python中的列表在Python中,列表是一种常见的数据序列,用于存储一系列数据。列表使用方括号[]来把数据放入其中,每个数据之间用英文逗号“,”分隔。例如,下面的语句可以创建一个包含5个数的列表。#创建一个包含5个数的列表box=[24,91,42,108,35]活动二
讲授新知讲授新知列表数据的表示和引用编号从左开始数,从0开始,而不是从1开始。例如,在以上的box列表中,box[0]表示列表的第1个数24,box[1]表示第二个数91。24914210835索引 0 1 2 34box=[24,91,42,108,35]
讲授新知讲授新知利用len()函数可以获取列表中的数据个数。例如,利用下面的赋值语句,可以用变量cc保存box列表中的数据个数,即5。cc