内容正文:
第2单元 美德少年算法评
遍历算法找最值
第9课
泰山版
学习目标
01
课堂导入
02
新知探究
03
知识总结
04
课后练习
05
目录
CONTENTS
2
学习目标
1
理解遍历算法的核心原理,掌握 “假设初值、依次比较、更新最值”的方法,能独立完成列表中最大值、最小值的查找过程
2
能根据评分规则,设计并实现“去掉一个最高分和最低分后计算平均分”的完整算法,并用Scratch积木搭建对应的程序。
3
能运行并验证程序,发现其中的问题,并尝试分析和修正。
PART 1
课堂导入
课堂导入
同学们,我们学校的“美德少年”评选正在进行,评委们已经打完分啦!规则是去掉一个最高分、一个最低分,再算平均分,就是选手的最终成绩。可这么多分数,靠我们一个个找、一个个算,不仅慢,还容易看错数。那有没有办法让计算机帮我们自动找出最高分、最低分,再算出平均分呢?今天我们就来学习解决这个问题的方法 ——遍历算法找最值!
PART 2
新知探究
新知探究
做中学
若要按照评分规则设计一套平均分计算算法需要哪些步骤?请用你喜欢的方式描述出来吧。
新知探究
建构
下图中,A、B、C 三个盒子大小相同,但重量不同(假设C>A>B)。怎样从三个盒子中找出最重的盒子?
思维导航
新知探究
建构
(1)先比较A盒与B盒,由于A盒的重量____B盒的重量,则两
个盒子中较重的盒子是A盒;
新知探究
建构
(2)再比较A盒与C盒,由于A盒的重量____C盒的重量,则三个盒子中最重的盒子是C盒。
新知探究
建构
小秘诀
先假设列表的第一项是最高分,然后与列表的下一项进行比较;如果下一项更大,那么将列表的下一项设为最高分......依次类推,直到与列表的最后一项进行比较。这种将列表中的所有项目都比较一遍的方法叫作遍历。
将评委们的得分存储在列表中,怎样找出
列表中的最高分?
新知探究
建构
如图所示,用N—S图把找“最高分”的算法描述出来。
新知探究
建构
根据N—S图,尝试用以下积木中制作找“最高分”的程序吧。
新知探究
建构
可用以下参考程序验证算法:
运行验证,并记录所发现的问题。
问题1:__________________________。
问题2:__________________________。
......
新知探究
试一试
请参考找“最高分”的算法,绘制找“最低分”算法的N—S图。
新知探究
建构
如图所示,用N—S图把计算平均分的算法描述出来。
新知探究
想一想
通过遍历列表中的数据找出“最高分”和“最低分后,再怎样计算平均分呢?
新知探究
想一想
1.计算总分:将列表中所有评委的打分相加,得到所有分数的总和。
2.减去极值:从总分中减去遍历找到的最高分和最低分。
3.计算有效人数:用评委总人数减去 2(去掉1个最高分和1个最低分),得到有效打分人数。
4.求平均分:将减去极值后的总分,除以有效打分人数,计算结果即为选手的最终平均分。
新知探究
建构
根据N—S图,尝试用以下可能用到的积木制作计算平均分的程序吧。
新知探究
建构
可用以下参考程序验证算法:
运行验证,并记录所发现的问题。
问题1:__________________________。
问题2:__________________________。
......
新知探究
知识拓展
查找最值的其他算法
排序算法:先将整个列表进行排序,当排序完成后,整个列表就是有序的,不管是升序还是降序都能相对地找到列表中的最值。常见的排序算法有冒泡排序、插人排序、选择排序、归并排序、堆排序、希尔排序、基数排序、桶排序等算法,每种算法都有其适用的场景和优缺点。在选择排序算法时,需要考虑数据规模、数据特性、稳定性需求及空间复杂度等因素。
分治算法:不断地“等分”列表中的元素,直至各个分组中元素的个数≤2。由于每个分组内的元素最多有2个,很容易就可以找出其中的最值(最大值或最小值),然后这些最值再进行两两比较,最终找到的最值就是整个列表中的最值。例如:借助“分而治之”的思想,可以将“找列表{5,8,3,9}中最值”的问题转换为一一先找出{5,8}和{3,9}中各自的最值,找出的最值再进行两两比较,最终就可以找到整个列表中的最值。
PART 3
知识总结
知识总结
本节课我们学习了遍历算法找最值的核心方法,理解了遍历就是把列表中的数据依次比较一遍的过程;掌握了先假设初始最值、再逐个更新的思路,能独立找出评委打分里的最高分和最低分,并结合“去掉一个最高分和最低分再算平均分”的规则,设计出从收集分数、遍历找最值、计算总分到求平均分的完整算法,还了解了分治法、排序法等其他找最值的思路,同时也注意到程序实现中容易出错的地方。我们不仅学会了遍历算法,也感受到了它在生活中的实用价值。
PART 4
课后练习
课后练习
1.以下是某数据处理软件用找最大值的“MAX 函数”操作的截图:
请你用所学知识描述用“MAX函数”找最大值的算法。
课后练习
2.以下是某小组在一次测验中的成绩,其中有三名同学因病缺考,请你设计一个求实际参加考试同学最低分的算法。
谢谢
下节课见!
Thanks!
泰山版
$