内容正文:
第2单元 美德少年算法评
统计票数有妙招
第7课
泰山版
学习目标
01
课堂导入
02
新知探究
03
知识总结
04
课后练习
05
目录
CONTENTS
2
学习目标
1
能梳理出统计票数的基本步骤,理解如何用列表和算法让计算机帮我们高效计票
2
会分析和解决计票过程中的常见问题,比如如何结束投票、如何防止重复投票
3
初步了解列表存储数据的优点,感受算法和数据结构在解决生活问题中的作用
PART 1
课堂导入
课堂导入
同学们,学校下周要评选 “美德少年”,全校师生都要投票,要是靠老师一个一个数,你们觉得会怎么样?
人工计票又慢又容易出错。那有没有什么办法,能让计算机帮我们又快又准地数票呢?今天这节课,我们就一起来学《统计票数有妙招》,看看怎么用算法和列表,让计算机帮我们搞定计票!
PART 2
新知探究
新知探究
做中学
设计统计票数的算法需要哪些步骤?请用你喜欢的方式进行描述。
新知探究
建构
人工计票时,经常采用“正”字计票法(一个“正”字有五个笔画,写一笔表示加一票)统计票数。
思维导航
用计算机计票,每输入一个数据表示加一票。那多个候选人怎样同时计票呢?
新知探究
建构
投票前要先确定候选人人数,将每个候选人按顺序编好序号。给某个候选人投票时,该候选人序号对应的值就会增加。因此统计投票问题可以转换为记录候选人序号对应值的变化问题。
新知探究
建构
小秘诀
建立列表存储所有候选人的得票数,列表序号对应每个候选人的序号。投票时,只需输入候选人的序号,列表中对应候选人的得票数就会被统计。
新知探究
建构
投票前,要对列表进行初始化,使所有候选人的初始票数为零。
新知探究
建构
如图所示,利用N—S图把统计票数的算法描述出来。
新知探究
建构
根据N—S图,尝试用以下积木制作统计票数的程序吧。
新知探究
建构
可用以下参考程序验证算法:
运行验证,并记录所发现的问题。
问题1:__________________________。
问题2:__________________________。
......
新知探究
建构
运行验证,并记录所发现的问题:
问题1:程序无法结束,因为没有设置终止条件,会一直重复询问投票。
问题2:不能防止重复投票,同一人可以多次投票,影响公平性。
问题3:缺乏输入合法性校验,如果不小心输错了,或者输了文字、负数,程序不会报错,会直接把票数加到不存在的位置。
问题4:计票结束后无结果展示,无法查看最终票数和评选结果。
新知探究
想一想
怎样表示结束投票?
新知探究
建构
可以通过输入“特殊符号”来作为循环的终止条件。
新知探究
知识拓展
列表存储的优点
1.有序性:列表存储是计算机科学中处理有序数据集合时的常用选择。列表中的元素按照特定顺序存储,这样可以轻松地按照索引访问。这种有序性对于许多算法和数据处理任务至关重要。
2.动态大小:许多列表可以动态地调整其大小,以适应不同数量的元素。这样在运行时添加或删除元素,无须预先指定列表的大小。
3.操作灵活:列表支持插入、删除、查找和遍历等多种操作。这些操作可以根据具体需求进行定制和优化,以满足特定的应用场景。
4.空间效率高:对于连续存储的列表,内存访问通常非常高效,因为元素在内存中是连续排列的,这有助于提高数据访问速度。
5.易于实现:列表数据结构相对简单,易于实现和理解。这使得初学者和经验丰富的开发人员都能轻松地使用列表来解决问题。
6.应用广泛:列表有广泛的应用场景,如排序算法、搜索算法、图形算法等。它们的通用性和灵活性使得列表成为解决各种问题的有力工具。
PART 3
知识总结
知识总结
PART 4
课后练习
课后练习
1.如果在投票过程中,有人反复投票怎么办?请设计一种方法防止有人反复投票。
2.请分析以下程序输出结果的范围:
谢谢
下节课见!
Thanks!
泰山版
$