内容正文:
2.1算法
的概念及描述
1
目录
CONTENTS
1
算法的概念
2
算法的描述
2
新学期开学,为了方便高一新生完成注册、缴费等事宜,学校在校园入口处摆放如左图所示的“高一新生报到流程”示意图。
到所属班级的班主任处签到注册;
领取高一新生校园手册
已缴费
是住校生
到所属教室班级休息
到财务处缴费
凭缴费单到高一公寓领取生活用品,布置床铺
否
否
是
是
高一新生报到流程
你能根据左图,说出报到的具体流程吗?请你说一说
根据图片我们能知道开学的具体的一系列步骤集合,这就是算法!
请带着以下三个问题,花五分钟时间阅读书上38、39页,五分钟请同学分享答案。
(1)算法的定义是什么?
(2)什么是计算机程序设计?
(3)什么是枚举算法,你能举出例子吗?
01
PART ONE
算法的概念
5
广义地讲,“算法”指的是解决问题或完成任务的一系列步骤集合。
01 算法的概念
算法的定义
在计算机科学领域,“算法”指的是用计算机解决问题而需要让计算机有序执行、无歧义、有限的步骤集合。
6
为了让计算机理解算法中的步骤,需要用计算机能理解的语言来描述算法,并将其输入到计算机中,这个过程就称为计算机程序设计。
01 算法的概念
计算机程序设计的定义
7
穷举算法也称枚举算法,指的是在求解过程中,先按照一定的顺序一一列举所有可能的解,然后用条件判断列举岀的可能解是否为正确解。穷举法一般适合解决解集为离散的且范围明确的问题。
01 算法的概念
枚举算法
举例:求1-10之内所有能被3整除的数。
将1、2、3、……9、10这些数依次除以3,当余数为0时,就输出正确的解。
例: 1÷3商为0,余数为1; 2÷3商为0,余数为2; 3÷3商为1,余数为0(输出3)……
8
01 算法的概念
算法的特征
算法可以处理1*2*3*……*10086,但是不能处理1*2*3*……
两者有何区别?
前者的数字个数是有限的,后者是无限的
有穷性
01 算法的概念
算法的特征
①、有穷性
一个算法的步骤必须是有限的,不能是无限的。
②、可行性
③、确定性
④、0个或多个输入
⑤、1个或多个输出
一个算法中的每一步操作与要求都应该是算法执行者(人或者机器)可以实施的,同时在现实环境中能做到并且能在有限的时间内完成。
算法中对于每个步骤的执行描述必须是明确的。
算法的核心价值就是解决问题,而解的终极目标就是需要知道结果究竞如何
注意区分
01 算法的概念
算法的三要素
①、数据
②、运算
③、控制转移(选择结构、循环结构)
用算法解决问题时,必须明确参与运算的初始数据、运算时产生的中间数据以及解决问题后的结果数据。
对数据计算和判断
在算法执行过程中,有时需要根据数据或运算结果的特点进行不同的处理,
这就需要用对结果数据判断并进行选择执行或循环执行。
02
PART TWO
算法的描述方式
12
设计出一个解决问题的算法,也需要用能被算法执行者理解的形式加以呈现,才能被算法执行者理解并执行。算法的这种呈现就称为算法的描述。
02 算法的描述方式
算法的描述方式
13
02 算法的描述方式
例如:做一个判断分数的系统,输入的分数>60,则显示“及格”,否则显示“不及格”。
1、自然语言:
人们在日常生活中交流的语言,如:普通话、方言、英语等。
解决本算法的自然语言描述如下:
(1)输入分数变量a的值
(2)判断a>60,条件成立则输出“及格”,否则输出“不及格”
14
02 算法的描述方式
2、流程图:
用一些图形符号表示规定的操作,并用带箭头的流程线连接这些图形符号。
开始
输入a的值
a>60?
输出“及格”
输出“不及格”
结束
否
是
开始或结束符
输入或输出框
flag=1?
条件判断框
处理框
连接线
连接点
15
02 算法的描述方式
3、伪代码:
伪代码指的是一种比较接直观简洁、符号接近计算机程序代码的算法描述。根据它很容易转换为相应的计算机语言代码。
格式1:If 条件 then
(语句序列1)
Else
(语句序列2)
格式2:If 条件 then
(语句序列1)
条件判断语句
循环语句
格式:while 条件
(循环体,即:一个或语句序列)
16
02 算法的描述方式
3、伪代码:
伪代码指的是一种比较接直观简洁、符号接近计算机程序代码的算法描述。根据它很容易转换为相应的计算机语言代码。
a→获得分数
If a>60 then
输出“及格”
Else
输出“不及格”
17
02 算法的描述方式
4、程序设计语言:
计算机能够识别和处理的语言。
python语言
a=input(“输入分数:”)
If a>60 :
print(“及格”