内容正文:
浙教版(2019) 必修1 数据与计算
2.1算法的概念及描述
1
学习目标
1.了解算法的概念与基本特征
(学科核心素养:信息意识)
2.了解算法描述方法及特点并能够运用恰当的描述方法表示简单算法
(学科核心素养:信息意识、计算思维)
3.能够根据实际需要设计算法解决问题,提升利用信息技术学科素养。
(学科核心素养:信息意识、数字化学习与创新)
2
新课导入
游戏导入:农夫过河游戏
具体规则:一个农夫带着—只狼、一只羊和—棵白菜,身处河的南岸。他要把这些东西全部运到北岸。他面前只有一条小船,船只能容下他和—件物品,另外只有农夫才能撑船。如果农夫在场,则狼不能吃羊,羊不能吃白菜,否则狼会吃羊,羊会吃白菜,所以农夫不能留下羊和白菜自己离开,也不能留下狼和羊自己离开,而狼不吃白菜。请求出农夫将所有的东西运过河的方案。
3
新课导入
方案1:
1.农夫、羊过河 2.农夫回
3.农夫、白菜过河 4.农夫、羊回
5.农夫、狼过河 6.农夫回
7.农夫、羊过河
4
任务一:什么是算法
1.自主阅读课本,结合生活经验,利用数字化工具总结归纳算法的概念。填写下表,班内分享,互相补充。
新知探究
古代算法概念 广义算法概念 计算机算法概念
5
任务一:什么是算法
2.上网检索古老的算法
新知探究
(1)秦九韶算法:将一元 n 次多项式的求值问题转化为 n 个一次式的算法,大大简化了计算过程,即使在现代,利用计算机解决多项式的求值问题时,秦九韶算法依然是最优的更相减损术
(2)割圆术,刘徽提出的割圆术,通过不断分割圆内接正多边形来逼近圆的面积,是中国古代数学中的重要算法。
6
新知探究
任务二:了解算法的基本特征
有穷性
1.计算圆周率所有位数的程序代码
2.遍历所有可能的国际象棋棋局并找出最优策略
7
新知探究
任务二:了解算法的基本特征
可行性
1.在普通计算机上用穷举法找出一个超过20000000位的数的的所有质因数
2.外出旅行随机买一张票,再确定旅行前往的目的地。
8
新知探究
任务二:了解算法的基本特征
确定性
1.乘坐高铁的路线规划:根据出发地和目的地,确定具体的高铁线路,以及换乘站点,规划的路线和换乘规则是明确的。
2.医院排队叫号系统:按照病人预约的号码顺序叫号,规则清晰确定,不会随意更改
9
新知探究
任务二:了解算法的基本特征
0个或多个输入
1.设置闹钟时需要输入具体的时间作为输入,但如果只是单纯依靠默认设置,不进行任何额外的时间输入,也能按照默认的时间响铃
可以不输入地点信息,获取默认城市的天气;也可以输入多个不同的地点,获取相应地点的天气
10
新知探究
任务二:了解算法的基本特征
1个或多个输入
1.网购平台,输入关键词,输出相关的商品列表、商品详情、价格、用户评价等多个结果。
2.成绩统计系统时输入学生的考试成绩,输出学生的总分、平均分、排名以及各科目成绩分析等多个结果。
11
新知探究
任务三:了解算法的描述方法及特点
1. 结合生活经验和网络资源总结算法描述方法并填写下表
算法描述方法
自然语言描述法
流程图
伪代码
程序设计语言
12
新知探究
任务三:了解算法的描述方法及特点
自然语言描述法:
自然语言是我们在日常生活中经常交流使用的语言,比如汉语、英语、德语等,用自然语言描述算法通俗易懂。
13
新知探究
任务三:了解算法的描述方法及特点
流程图:用自然语言描述算法虽然通俗易懂,但会存在面对同样的文字描述,不同的人产生不同的理解。所以,采用流程图来描述比较直观和易于理解。
14
新知探究
任务三:了解算法的描述方法及特点
2.总结常用流程图基本图形及功能
常用流程图及其功能
15
新知探究
任务三:了解算法的描述方法及特点
一、矩形
作用:表示流程中的一个具体步骤或活动。
二、菱形
作用:代表决策点或判断。在流程中,根据特定的条件进行判断,然后决定流程的走向。
三、圆形矩形
作用:表示流程的开始或结束。
四、箭头
作用:指示流程的方向。连接各个图形,展示流程的先后顺序和逻辑关系。箭头的方向表示流程的推进方向。
五、平行四边形
作用:一般用于表示输入或输出。例如,输入数据、输出结果等环节可以用平行四边形表示。
16
新知探究
任务三:了解算法的描述方法及特点
2.常用流程图基本图形及功能
17
新知探究
任务三:了解算法的描述方法及特点
伪代码指的是一种比较直观简介的、符号接近计算机程序代码的算法描述方式,它很像计算机程序设计语言,但不是真正可以被计算机理解的代码,它没有同意的表示方法,只要合理、正确即可。
if (条件)
当条件为真时执行的语句;
else
当条件为假时执行的语句;
isPalindrome = true;
i = 0;
j = strLength - 1;
while (i < j)
if (str[i]!= str[j])
isPalindrome = false;
break;
i = i + 1;
j = j - 1;
if (isPalindrome)
输出 "该字符串是回文字符串";
else
输出 "该字符串不是回文字符串";
18
新知探究
任务三:了解算法的描述方法及特点
程序设计语言:
无论是自然语言描述的算法,还是流程图或者伪代码描述的算法,计算机都无法理解并执行。为了让计算机帮助人们真正解决问题,需要将算法用某种计算机程序设计语言来描述,这个过程称为程序编写(或称代码编写)。
世界上有很多计算机程序设计语言,实际工作中可以根据问题特点选择恰当的程序设计语言来描述算法。
19
新知探究
任务三:了解算法的描述方法及特点
4.程序设计语言
def get_sensor_reading(space_number):
# 随机生成一个读数,实际应用中需连接真实传感器获取读数
import random
return random.uniform(0, 2)
# 传感器阈值
sensor_threshold = 1.5
# 总车位数量
total_parking_spaces = 10
for space_number in range(1, total_parking_spaces + 1):
sensor_reading = get_sensor_reading(space_number)
if sensor_reading > sensor_threshold:
space_status = "被占用"
else:
space_status = "空闲"
print(f"车位 {space_number} 的状态为:{space_status}")
20
新知探究
任务四:体验算法多样性
今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?
1.假设法:假设全是鸡:先算出假设情况下的脚数,与实际脚数对比,求出脚数的差值。因为每把一只兔当成鸡就少算 2 只脚,所以用脚数的差值除以 2 就得到兔的数量,再用总头数减去兔的数量得到鸡的数量。
假设全是兔:先算出假设情况下的脚数,与实际脚数对比,求出脚数的差值。因为每把一只鸡当成兔就多算 2 只脚,所以用脚数的差值除以 2 就得到鸡的数量,再用总头数减去鸡的数量得到兔的数量。
21
新知探究
任务四:体验算法多样性
今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?
2.方程法:设鸡有 m 只,兔子有 n 只,根据头的总数和脚的总数列出方程组,然后求解。
3.抬脚法:让鸡和兔都抬起两只脚,此时地上剩下的脚都是兔的,且每只兔还剩 2 只脚在地上,用剩下的脚数除以 2 就得到兔的数量,进而求出鸡的数量。
鸡有 23 只,兔有 12 只。
22
课堂练习
1.以下对算法的理解不正确的是( )
A. 一个算法应包含有限的操作步骤,而不能是无限的
B. 算法中的每一步骤都应当是确定的,而不应当是含糊的、模棱两可的
C. 算法可以没有输入,但必须有输出
D. 算法可以没有输出,但必须有输入
正确答案:D
答案解析:本题考查的是对算法特征的理解,其中算法可以有0个或多个输入,必须有1个或多个输出。故正确答案为D。
23
课堂练习
2.下面对算法描述正确的一项是( )
A. 算法只能用伪代码来描述
B. 算法只能用流程图来表示
C.同一算法只能用一种程序语言来实现
D.同一问题可以有不同的算法
答案:C
答案解析:本题考查的是对算法描述方法的认识。算法的描述方法有自然语言描述法、流程图、伪代码、程序设计语言。不同问题采用的算法不一定相同,同一问题采用的算法也可以不同。故正确答案为C。
24
课堂小结
请各位同学总结归纳本节课的知识和收获,2分钟后请同学在班内分享交流。
25
作业布置
1.完成分层作业。
2.上网检索目前最先进的算法有哪些,并形成一份总结报告。
26
THANKS
谢谢大家
$$