内容正文:
浙教版(2019) 必修1数据与计算
2.1算法的概念及描述
第一课时
1
学习目标
信息意识:感知算法在生活中的存在
计算思维:理解算法的特征与逻辑结构
数字化学习与创新:能使用思维导图梳理算法特征
信息社会责任:理解算法对效率提升的意义,认识算法的社会价值。
提问:“新学期开学,为什么每个新生都能顺利完成报到?”
情境导入——感知算法
1. 生活情境展示
这个“高一新生报到流程”示意图就是一个算法,该算法可以帮助高一新生解决 “入学报到”问题。
新知探究—算法的定义
任务一:请学生自己阅读课本38-39页内容,完成以下表格:
算法的演变 内涵 举例
古代算法
广义算法
计算机科学领域“算法”
新知探究—算法的定义
任务一:请学生自己阅读课本38-39页内容,完成以下表格:
算法的演变 内涵 举例
古代算法 算术,数值的算术运算 ①辗转相除法
②更相减损术
广义算法 解决问题或完成任务的一系列步骤 ①假期旅游方案
②一道菜的烹饪过程
③洗衣机的操作步骤
计算机科学领域“算法” 用计算机解决问题的步骤,是为了解决问题而需要让计算机有序执行的、无歧义的、有限步骤的集合。
①在包括上万人信息的数据中查找某人的数据
②导航程序中两个地点之间最短路线的规划
新知探究——算法特征
1. 有穷性
请思考以下算法是否可行:
“计算斐波那契数列的前n个元素的过程(n为一个确定的正整数)”
“计算斐波那契数列的所有元素”
一个算法的处理步骤必须是有限的。无论具体需要执行的操作步骤有多少,这个数量必须是确定的。
新知探究——算法特征
1. 有穷性
请思考以下算法是否可行:
“计算斐波那契数列的前n个元素的过程(n为一个确定的正整数)”
“计算斐波那契数列的所有元素”
可行,因为无论n有多大,求数列元素的次数肯定不会超过n
不可行,因为没有明确元素的个数,计算次数就无法确定(无限)
符合有穷性
不符合有穷性
新知探究——算法特征
2. 可行性
以小组方式讨论交流“算法可行性”
不符合算法可行性案例:
一个算法中的每一步操作与要求都应该是算法执行者(人或机器)可以实施的,同时在现实环境中能做到并且能在有限的时间内完成。
建造一个完全精确的地球大气系统模拟模型,以预测100年后的天气。
计算并存储第10亿个斐波那契的精确值
新知探究——算法特征
3. 确定性
请思考以下算法是否符合算法确定性:
“取区间的中点”
“取区间[100,200]的中点”
算法中对于每个步骤的执行描述必须是明确的。
新知探究——算法特征
4. 0个或多个输入
算法中可以没有数据输入,也可以有多个数据输入
新知探究——算法特征
5. 1个或多个输出
如果一个算法没有输出,那么这个算法就没有意义,因为算法的核心价值就是解决问题,而解决问题的终极目标就是需要知道结果究竟如何。
算法必须包含至少一个输出,以告诉外界问题求解的结果。
为防止用户账户被盗,在用户登录账户时,有些信息系统会限制用户尝试输入密码的次数(如图2.1.2),一旦超出限定的次数,系统就会禁止输入并要求进行注册账户验证。下面为某系统验证用户输入密码正确与否的算法:
①密码输入错误次数初始化为零。
②接受用户输入的密码。
③将用户输入的密码与原来设置的密码比较,若相同则转⑦,
否则转④
④密码输入错误次数增加1。
⑤若密码输入错误次数少于5,输出信息“密码错误,请再次
输入密码!”,然后转⑥;否则,输出信息“密码输入错误已
达5次,请通过注册邮箱找回密码”,然后转⑧。
⑥接受用户输入的密码,然后转③。
⑦密码正确,进入系统。
⑧密码验证算法结束。
请结合上述算法,谈谈算法的特征在其中的具体体现。比如,该算法体现了“可行性”特征,因为算法中的“判断密码正确性”“密码输入错误次数统计”等处理都是现实中确实可以实现的。
图2.1.2 用户登录界面
新知探究——算法的要素
用计算机解决问题,本质上是以“数据运算”的方式来实现的。各种“运算”有时需要依次进行,有时需要根据条件选择一部分进行,有时又需要重复执行某些“运算”,这些“运算”顺序的调控就需要借助控制转移来实现。因此,通过算法让计算机解决问题时,数据、运算及控制转移就成为算法的要素。
新知探究——算法的要素
1.数据
思考:如图2.1.3,全自动洗衣机洗衣过程中,涉及了哪些数据?
洗涤时间
漂洗次数
每次洗涤所加水量
脱水时间
用算法解决问题时,必须明确参与运算的初始数据、运算时产生的中间数据以及代表问题解决的结果数据。
图2.1.3 全自动洗衣机操作面板
新知探究——算法的要素
2.运算
思考:如图2.1.3,全自动洗衣机洗衣过程中,涉及了哪些算法?
洗涤时间的计时
漂洗次数的统计
判断加水是否到达50升
在对数据进行运算时,必须明确每一步的运算是什么、对哪数据进行运算。
图2.1.3 全自动洗衣机操作面板
新知探究——算法的要素
3.控制转移
思考:如图2.1.3,全自动洗衣机洗衣过程中,涉及了哪些控制转移?
在洗衣机控制算法的进水过程中,如果水量达到50升则关闭进水阀,否则不关闭进水阀,采用分支结构的控制转移。
漂洗过程中,当漂洗次数未达到2次时,需要继续加水到50升,然后重复原来的漂洗处理,采用了需要实现重复执行的控制转移称为循环结构
在算法执行过程中,有时需要根据数据或运算结果的特点进行不同的处理,这时就需要运用控制转移来执行不同的操作。
图2.1.3 全自动洗衣机操作面板
很多设备的“自动”功能,都是内部算法控制的结果。
比如,在夏天把空调温度设定在26℃(如图2.1.4所示),
每当空调内部的温度传感器测得室内温度小于或等于26℃时,
算法就会“告诉”空调已经到达目标温度,可以暂停工作,
空调就会“自动”暂时关闭压缩机的运行。这样,既确保了室内温度,
又实现了节能环保。
还有很多设备用算法来帮助设备实现自动化。与同学讨论交流,
哪些设备采用算法实现了自动化?并尝试说出这些设备实现自动化控制的算法。
图2.1.4 壁挂式空调内机
请同学用1分钟回顾本次课的内容,请同学代表进行分享。
小结
算法的概念
定义
有序执行的、无歧义的、有限步骤的集合
特征
有穷性
可行性
确定性
0个或多个输入
1个或多个输出
要素
数据
运算
控制转移
谢谢观看!
$