内容正文:
浙教版(2019) 必修1数据与计算
2.1算法的概念及描述
第二课时
1
学习目标
1.掌握四种描述方法及适用场景(学科核心素养 :计算思维 )
2. 能选择合适工具进行算法表达(学科核心素养 :数字化学习与创新)
3.理解不同描述方式的信息传递特点 (学科核心素养 :信息意识 )
问题1:为什么需要描述算法?
问题导入
“作曲家写乐谱 → 钢琴家演奏”
“算法设计者描述算法 → 计算机/人执行”
问题2:你设计了一个‘班级值日安排算法’,如何让同学理解并执行?
新知探究—常见的算法描述方法
设计出一个解决问题的算法,也需要用能被算法执行者理解的形式加以呈现,才能被算法执行者理解并执行。算法的这种呈现就称为算法的描述。
常见的算法描述方式有:
自然语言
流程图
伪代码
计算机程序设计语言
新知探究—四种描述方法探究
采用“案例贯穿法”——以“停车场车位探测算法”为例
···停车场车位探测中的算法
某停车场每个车位的上方都装有传感器(车位探测器)、前方装有车位指示灯(空车位显示绿色,否则显示红色),如图2.1.5所示。车位上方的传感器探测下方的车位是否为空,然后根据探测结果控制车位指示灯的颜色并向区域控制器发送该车位的状态信息(“空车位”或“非空车位”)。
图2.1.5 停车场中的车位探测
为了根据传感器的探测结果进行相应处理,可以将传感器回传的数据作为输入数据,控制设备就可以根据该输入数据,控制车位指示灯的颜色并向区域控制器输出该车位的状态信息。
新知探究—四种描述方法探究
采用“案例贯穿法”——以“停车场车位探测算法”为例
···停车场车位探测中的算法
图2.1.5 停车场中的车位探测
分析:传感器每隔一段时间对车位进行探测,在某个时刻,若传感器测得结果为空车位,则将指示灯设置为绿色,同时向区域控制器输出“空车位”的信息;否则,将指示灯设置为红色,同时向区域控制器输出“非空车位”的信息。
将传感器回传的数据作为输入数据并进行数字化设定,若测得空车位,则用输入数值1表示,否则用输入数值0表示。因为该数据会发生改变,所以用变量flag保存该输入数据。
根据上述分析,某个时刻对车位进行数据处理的任务可以界定为以下问题:
输入flag的值,根据flag的值设置车位上方指示灯的颜色,并输出车位状态(“空车位”或“非空车位”)。
新知探究—四种描述方法探究
采用“案例贯穿法”——以“停车场车位探测算法”为例
小组探究:分为4个小组,自主学习课本42-46页的四种描述方法,并描述“停车场车位探测算法”,并分别展示交流成果。要求如下:
第一小组的同学用自然语言描述算法
第二小组的同学用流程图描述算法
第三小组的同学用伪代码描述算法
第四小组的同学用计算机程序设计语言描述算法
新知探究—自然语言描述方法探究
采用“案例贯穿法”——以“停车场车位探测算法”为例
解决本问题的算法可以用自然语言描述如下。
(1)输入变量flag的值。
(2)若flag的值为1,则设置指示灯为绿色,输出“空车位”;否则,设置指示灯为红色,输出“非空车位”。
新知探究—流程图描述方法探究
采用“案例贯穿法”——以“停车场车位探测算法”为例
解决本问题的算法可以用流程图描述如下:
新知探究—伪代码描述方法探究
采用“案例贯穿法”——以“停车场车位探测算法”为例
解决本问题的算法可以用伪代码描述如下:
flag←车位探测结果;#将测得的车位当前状态值输入给变量flag
If flag=1 then
(指示灯绿色
输出“空车位”)
Else
(指示灯红色
输出“非空车位”)
新知探究—程序设计语言描述方法探究
采用“案例贯穿法”——以“停车场车位探测算法”为例
解决本问题的算法可以用程序设计语言描述如下(Python语言):
flag=int(input("输入车位状态值:"))
if flag==1:
print("绿色")
print("空车位")
else:
print("红色")
print("非空车位")
新知探究—四种描述方法特点探究
1.讨论四种描述方法的特点
算法描述方式 优点 不足
自然语言
流程图
伪代码
计算机程序设计语言
新知探究—四种描述方法特点探究
1.讨论四种描述方法的特点
算法描述方式 优点 不足
自然语言 通俗易懂 容易出现歧义、比较烦琐
计算机无法理解并执行
流程图 结构清晰、寓意明确 当分支增多时会出现流程线相互交叉而影响算法理解
计算机无法理解并执行
伪代码 紧凑简练,便于进一步转
化为相应的计算机程序。 计算机无法理解并执行
计算机程序设计语言 计算机能理解并执行 需要进行专门的学习和训练
新知探究—四种描述方法特点探究
2.讨论描述方法的注意事项
图形 名称 功能
开始/结束符 表示算法的开始或结束
输入/输出框 表示算法中数据的输入或输出
处理框 表示算法中数据的运算处理
判断框 表示算法中的条件判断
流程线 表示算法中的流向
连接点 表示算法中的转接
常用的流程图基本图形及其功能
新知探究—四种描述方法特点探究
2.讨论描述方法的注意事项
如何区分伪代码与计算机程序设计语言
伪代码
flag←车位探测结果;#将测得的车位当前状态值输入给变量flag
If flag=1 then
(指示灯绿色
输出“空车位”)
Else
(指示灯红色
输出“非空车位”)
计算机程序设计语言
flag=int(input("输入车位状态值:"))
if flag==1:
print("绿色")
print("空车位")
else:
print("红色")
print("非空车位")
伪代码描述法,汉字没有完全在引号里;计算机程序设计语言,汉字一定放在引号里
计算机程序设计语言,有标准的运算符
思考与练习
变为低热保温
继续高热烧饭
请同学用1分钟回顾本次课的内容,请同学代表进行分享。
小结
算法的描述
概念
算法的呈现
方法
自然语言
流程图
伪代码
计算机程序设计语言
课后思考
某智能停车场车位引导系统中,通过一个区域控制器来统计、显示该区域空车位情况。当该区域控制器接收到每个车位发送的状态信息(“空车位”或“非空车位”)后,它会统计该区域当前的空车位总数,并将该信息通过引导屏呈现在停车库入口处(如图2.1.9),
引导驾驶员有方向地寻找空车位。
图2.1.9 车位引导系统中的引导屏
1.与同学讨论,该区域控制器可用怎样的算法来解决空车位的统计和显示问题?
2.与同学一起讨论,是否可以设计出除本节介绍的四种算法描述方式之外的其他方式?并将第1题的算法用自己设计的方式加以描述。
谢 谢 观 看!
$