2.1 算法的概念及描述课件-2025-2026学年浙教版高中信息技术必修一
2025-11-20
|
21页
|
209人阅读
|
2人下载
普通
资源信息
| 学段 | 高中 |
| 学科 | 信息技术 |
| 教材版本 | 高中信息技术浙教版必修1 数据与计算 |
| 年级 | 高一 |
| 章节 | 2.1 算法的概念及描述 |
| 类型 | 课件 |
| 知识点 | - |
| 使用场景 | 同步教学-新授课 |
| 学年 | 2025-2026 |
| 地区(省份) | 全国 |
| 地区(市) | - |
| 地区(区县) | - |
| 文件格式 | PPTX |
| 文件大小 | 5.42 MB |
| 发布时间 | 2025-11-20 |
| 更新时间 | 2025-11-20 |
| 作者 | xkw-26253632 |
| 品牌系列 | - |
| 审核时间 | 2025-11-20 |
| 下载链接 | https://m.zxxk.com/soft/55021607.html |
| 价格 | 0.50储值(1储值=1元) |
| 来源 | 学科网 |
|---|
摘要:
该高中信息技术课件围绕算法的概念、特征、要素及描述方法展开,从古代“百钱买鸡”算术问题导入,过渡到广义算法与计算机算法的概念辨析,构建从历史实例到抽象定义的学习支架,再通过特征分析、要素拆解(数据、运算、控制转移)、多种描述方法(自然语言、流程图、伪代码、Python)层层递进。
其亮点在于融合计算思维与数字化学习,以“百钱买鸡”历史案例和车位判断、用户登录界面等生活实例,引导学生抽象问题、设计算法,结合Python代码实现强化数字化创新能力。采用案例分析与实践操作结合的教学方法,小结用表格明确学习目标,帮助学生系统掌握算法设计与描述,教师可直接利用结构化内容提升教学效率。
内容正文:
算法的概念及描述
浙教版信息科技
古代的算法
古代的算法主要指的是“算术”,即数值的算术运算。
5
3
1
鸡翁每增四,鸡母每减七,鸡雏每益三,即得。
百钱买鸡百,问翁、母、雏各几何?
在古代,有这样一个经典问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;
百钱买鸡百,问翁、母、雏各几何?”
这是我国古代数学家在《算经》中提出的经典问题。同时,他还在书中给出了解决该问题的算法“鸡翁每增四,鸡母每减七,鸡雏每益三,即得"。可见,古代的算法主要指的是“算术”,即数值的算术运算。
随着科学技术的发展,算法的内涵和外延逐渐发生变化。
“算法”指的是解决问题或完成任务的一系列步骤。
广义算法
在生活中,我们把西瓜放入冰箱需要几步,很简单,三步,第一步:打开冰箱门,第二步:把西瓜放进冰箱,第三步:关闭冰箱门。这是生活中的算法,也就是广义算法。
广义地讲,“算法”指的是解决问题或完成任务的一系列步骤。广义的算法中,需要解决的问题不仅仅是指传统意义上的计算任务(算术),也可以是社会生活中各种事务的处理。
计算机科学领域内,“算法”指的是用计算机解决问题的步骤。是为了解决问题而需要让计算机有序执行的、无歧义的、有限步骤的集合。
计算机科学领域的算法
而计算机科学领域内,算法指的是用计算机解决问题的步骤。是为了解决问题而需要让计算机有序执行的、无歧义的、有限步骤的集合。例如,在包含上万人信息的数据中查找某人的数据、导航程序中两个地点之间最短路线的规划等。
1 有穷性
3 确定性
2 可行性
4 0个或多个输入
5 1个或多个输出
算法的特征
有穷性 一个算法的处理步骤必须是有限的。
可行性一个算法中的每一步操作与要求都应该是算法执行者可以实施的,同时在现实环境中能做到并在有限时间内完成
确定性算法中对于每个步骤的执行描述必须是明确的
0个或多个输入。算法被执行者实施时,一般需要从外部获取可变的数据,所谓0个输入是指本身给出了初始条件。
1个或多个输出 算法必须包含至少一个输出,以告诉外界问题求解的结果。任何算法都不能“无功而返”。
5
1.找出所有的偶数
2.找出班里英语成绩最高的人
3.输入你的名字
4.输入两个数,计算它们的和
5.计算1+2+3+……+100的和
所有的
100以内
本次英语测试
输出你好xxx
有穷性
确定性
1个或多个输出
多个输入
0个输入
分析以下例子是否符合算法特征,若不符合,该如何改正?
我们一起体验一下,以下有几个例子,请你分析其是否符合算法特征,若不符合,该如何改正。暂停思考一会。
老师,我觉得第一个1.找出所有的偶数,不符合“有穷性”特征,因为所有的偶数是找不完的,可以改为写出100以内的所有偶数
第二个找出班里英语成绩最高的人,不符合“确定性”特征,它没有说是哪次的英语成绩,可以改为找出班里本次英语测试成绩最高的人
3.输入你的名字,不符合1个或多个输出,只是输入一个名字,没有解决任何问题,可以改为输入你的名字,然后输出你好xxx
第四第五我觉得都符合算法特征
这里我们一起看看第四第五的例子,同样是计算和,第四要求输入两个数据,它的和会根据输入的数据发生变化,结果有所不同,而第五,不需要输入数据,所需数据已经包含在算法中,输出的结果是确定的。这就是为什么算法必须要有输出,但有时却可以没有输入。
数据
运算
控制
转移
参与运算的初始数据、运算产生的中间数据以及代表问题解决的结果数据。
明确每一步的运算是什么、对哪些数据进行运算等。
需要根据数据或运算结果的特点进行不同的处理,这时就需要运用控制转移来执行不同的操作。
算法的要素
关于算法,除了定义和五个特征之外,还有三个要素。就比如说洗衣机在执行洗衣算法时,必须设置一些参数,洗衣程序、水量,过程等,输入完成洗衣机才能按需求工作,这就是第一个要素:数据,包含参与运算的初始数据、运算时产生的中间数据以及代表问题解决的结果数据。
洗衣程序开始后,洗衣机的算法需要包含“洗涤时间的计时”、漂洗次数的统计以及判断水量是否到达设定值等运算,这就是第二个要素——运算,明确每一步的运算是什么、对哪些数据进行运算等。在洗衣机控制算法的进水过程中,若水量到达设定值,则关闭进水阀,若没到,则不关闭。这就是第三个要素——控制转移,需要根据数据或运算结果的特点进行不同的处理,这时就需要运用控制转移来执行不同的操作。
数据
运算
控制
转移
知晓了算法的三要素,我们看看最常见的用户名和密码登录的算法,你能找出其中蕴含的数据,运算,控制转移等要素吗?
老师,我觉得这里的数据包含用户输入的账号和密码,系统中存储的账号密码,运算包含两者的关系运算,是否相等。根据比对结果,采取不同操作,这就是控制转移,如果比对成功,就登陆成功,否则提示密码错误。
嗯,这就是简单算法对应的三要素,我们可以将其套在任意一个算法中提取出核心部分帮助我们理解。
1 自然语言
3 伪代码
2 流程图
4 计算机程序设计语言
算法的描述
一个算法被设计出来,先是在设计者的脑子里,然后用能被其他人理解的形式加以呈现,这种呈现就称为算法的描述。常见的算法描述方法有自然语言、流程图、伪代码、计算机程序设计语言等
9
解决本问题的算法可以用自然语言描述如下:
(1)输入变量flag的值。
(2)若flag的值为1,则设置指示灯为绿色,输出“空车位”;否则,设置指示灯为红色,输出“非空车位”。
通俗易懂
歧义
1.用自然语言描述算法
商城停车场为了让人们快速找到空车位,在每个车位的上方都装有传感器,前方装有车位指示灯(空车显示绿色,否则显示红色),根据探测结果控制车位指示灯的颜色并向区域控制器发送该车位的状态信息(“空车位”或非空车位),根据算法三要素,解决本问题的算法可以用自然语言描述如下:
(1)输入变量flag的值。
(2)若flag的值为1,则设置指示灯为绿色,输出“空车位”;否则,设置指示灯为红色,输出“非空车位”。
这里的自然语言是人们在日常生活中交流使用的语言,如汉语、英语、德语、日语等。
用自然语言描述算法虽然通俗易懂,但容易出现歧义,那有没有更加直观和准确的描述方式呢?
10
开始
flag=1?
结束
指示灯为绿色
输入flag的值
输出“空车位”
指示灯为红色
输出“非空车位”
(1)输入变量flag的值。
(2)若flag的值为1,则设置指示灯为绿色,输出“空车位”;否则,设置指示灯为红色,输出“非空车位”。
是
否
结构清晰
寓意明确
2.用流程图描述算法
在描述根据条件进行不同处理的算法时,我们可以采用流程图来描述更直观和易于理解。前面用自然语描述的车位探测仪的算法,我们可用转换成流程图表示。开始,输入flag的值。判断框判断flag是否为1,如果是,指示灯为绿色,输出空车位。暂停思考一会,对比左边,右边分支的流程图应该是怎么样的?否的话,设置指示灯为红色,输出非空车位。结束,会思考的你肯定对了。流程图描述的算法结构清晰、寓意明确,并且,我们可以看到,流程图的各个形状不是随意画的,不同的形状代表着不同的功能。
图形 名称 功能
开始/结束符 表示算法的开始或结束
输入/输出 表示数据的输入或输出
处理框 表示数据的运算处理
判断框 表示算法中的条件判断
流程线 表示算法中的流向
连接点 表示算法中的转接
2.用流程图描述算法
常见的流程图基本图形及其功能如图所示,圆角矩形表示算法的开始或结束,平行四边形表示数据的输入或输出,矩形表示数据的运算处理,菱形表示算法中的条件判断,带箭头的线表示算法的流向,小圆圈表示算法的转接。
12
N-S图
输入flag的值
指示灯绿色 指示灯红色
输出“空车位” 输出“非空车位”
是
否
flag=1?
当然,也有学者省略了流程线,把全部算法写在一个矩形框内的算法描述方式,这就是NS图,这样的结构性更好,能有助于高效地编写程序。无论是自然语言算法,还是流程图,计算机都无法理解或执行,接下来我们再看看下面两种描述方式,
flag=int(input("输入车位状态值:"))
if flag==1:
print("绿色")
print("空车位")
else:
print("红色")
print("非空车位")
Flag ⬅车位探测结果;
If flag=1 then
(指示灯绿色
输出“空车位”)
Else
(指示灯红色
输出“非空车位”)
3.用伪代码描述算法
请你仔细观察,它们有何不同。左边的乍一看好像也是代码,但我们把它放入idle里运行一下,提示出错,这就是伪代码,风格很像计算机程序设计语言,但又不是真正的可以被计算机理解的代码。而右边的就是真代码了,我们运行一下,输入1,输出绿色空车位,输入其他,则输出红色,非空车位。这里用的是python语言,常见的还有basic,C语言,java等
14
伪代码指的是一种比较接直观简洁、符号接近计算机程序代码的算法描述。
格式1:If 条件 then
(语句序列1)
Else
(语句序列2)
格式2:If 条件 then
(语句序列1)
条件判断语句
循环语句
格式:while 条件
(循环体,即:一个或语句序列)
3.用伪代码描述算法
伪代码指的是一种比较接直观简洁、符号接近计算机程序代码的算法描述方式,其风格很像计算机程序设计语言,但又不是真正的可以被计算机理解的代码。伪代码的表示方法没有同一、严格的规定,只要定义合理、表达正确即可。比如以下的条件判断语句,循环语句的格式。
15
4.用计算机程序设计语言描述算法
flag=int(input("输入车位状态值:"))
if flag==1:
print("绿色")
print("空车位")
else:
print("红色")
print("非空车位")
Flag ⬅车位探测结果;
If flag=1 then
(指示灯绿色
输出“空车位”)
Else
(指示灯红色
输出“非空车位”)
3.用伪代码描述算法
而右边的就是真代码了,也就是计算机程序设计语言,我们运行一下,输入1,输出绿色空车位,输入其他,则输出红色,非空车位。
16
可以根据问题特点选择恰当的程序设计语言来描述算法
计算机高级语言
BASIC、C语言、PASCAL、智能化语言(LISP、Prolog、CLIPS、OpenCyc、Fazzy)、动态语言(Python、PHP、Ruby、Lua)
4.用计算机程序设计语言描述算法
世界上有很多计算机程序设计语言,实际工作中可以根据问题特点选择恰当的程序设计语言来描述算法。目前我们主要学习计算机高级语言。
高级语言有:BASIC、C语言、PASCAL、智能化语言、动态语言等等,我们前面用到的语言就是之后要学习的Python语言。
17
小明需要做一个判断分数的系统,输入的分数>60,则显示“及格”,否则显示“不及格”。请你用前面学过的方式描述你所设计的算法。
练习
用自然语言描述:
(1)输入分数变量a的值。
(2)判断a>60,条件成立输出“及格”,否则输出“不及格”。
学习了算法的描述方式,我们来做一道练习:小明需要做一个判断分数的系统,输入的分数>60,则显示“及格”,否则显示“不及格”。请你暂停一下,用前面学过的方式描述你所设计的算法。看看老师的描述和你是否一样呢?用自然语言描述可以为(1)输入分数变量a的值。(2)判断a>60,条件成立则输出“及格”,否则输出“不及格”。
18
开始
输入a的值
a>60?
输出“及格”
输出“不及格”
结束
否
是
用流程图描述
用流程图描述为:开始、输入a的值,判断a是否大于60,是,则输出及格,否的话输出不及格,结束。
19
a←分数
If a>60 then
输出“及格”
Else
输出“不及格”
a=int(input("输入分数:")) #将输入的值赋予a
if a>60 :
print("及格") #输出“及格”
else:
print("不及格") #输出“不及格”
用计算机程序设计语言描述
用伪代码描述
用伪代码描述为,将分数赋予a,if a>60 then 输出及格,else,输出不及格
用计算机程序设计语言描述为:a=int(input(输入分数))意思是将输入的值赋给a。if a>60,print(及格)输出及格,else,print不及格,输出不及格
20
1.算法的概念
2.算法的特征
有穷性;可行性;确定性;0个或多个输入;1个或多个输出
3.算法的要素
数据,运算,控制转移
4.算法的描述
自然语言、流程图、伪代码、计算机程序设计语言
小结
今天这节课我们学习了算法的概念、算法的特征、算法的要素、算法的描述
给本节课的学习过程做个评价吧,看看目标是否都已完成。
在生活中,我们也可以多多观察身边的算法,看看其是否符合算法的特征,算法的要素体现在什么地方,又可以用什么方法进行描述。本节课就到这里,谢谢大家。
21
$
相关资源
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。