内容正文:
3.2 算法及其描述
必修一 《数据与计算》
1
1
2
3
4
5
什么是算法
算法的特征
算法的结构
算法的描述
课后实践
目录
CONTENTS
2
必修一 《数据与计算》
饮料换杯——“什么是算法”
假使某位同学家里现在有两杯饮料,一杯可乐,一杯雪碧,试问怎样才能在不串装的情况下完成装可乐的杯子装雪碧,装雪碧的杯子装可乐?
3.2 算法及其描述
‹#›
3
饮料换杯——“什么是算法”
解决问题的步骤
然后将雪碧导入原装可乐的杯子中,
a=b #第二步
首先将可乐倒置新取来的空置容器中,
t=a #第一步
最后将新容器中的可乐倒入原装雪碧的容器中。
b=t #第三步
必修一 《数据与计算》
3.2 算法及其描述
a="可乐"
b="雪碧"
t=a
a=b
b=t
print("a=",a,"b=",b)
‹#›
4
饮料换杯——“什么是算法”
算法
algorithm
在有限步骤内求解某一问题所使用的一组定义明确的规则。
在有限步骤内求解某一问题所使用的一组定义明确的规则。
在有限步骤内求解某一问题所使用的一组定义明确的规则。
通俗的讲,算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。
必修一 《数据与计算》
3.2 算法及其描述
重要的事情说三遍
‹#›
5
算法的特征
学期结束时,老师打算花50块钱购买一些笔记本奖励表现优秀的同学,请班长小明帮忙,小明决定买三种单价分别为6元、5元、4元的笔记本,请问可以买多少本?
期末来了
自学课本P48-49页的探究活动,思考两个问题:
1、我们可以毫无章法的设计算法吗?
2、算法有没有属于他的特征呢?
必修一 《数据与计算》
3.2 算法及其描述
‹#›
6
算法的特征
必修一 《数据与计算》
3.2 算法及其描述
有穷性:计算步骤是有限的
?死循环
确定性:每一个步骤必须有确切的定义
?随便
数据输入:必须有0个或多个数据输入
0个输入是算法本身给出了初始条件
数据输出:一个或多个数据输出
?无功而返
可行性:每个计算步骤都在有限时间内完成 ?可以得出结果。
原则上能精确运行,用纸和笔做有限运算后可以完成。
01
05
04
02
03
算法的特征
‹#›
7
开始
赛马跑圈
结束
成立
否
结束跑圈
孙膑没有
发出命令
赛马跑圈
不成立
算法的特征
开始
输入半径r
S=πr²
输出面积S
结束
开始
输入A、B
输出A
结束
A<B?
输出B
Y
N
有穷性
确定性
数据输入
数据输出
可行性
必修一 《数据与计算》
3.2 算法及其描述
‹#›
8
算法的描述
算法
algorithm
算法是解题过程的精准描述,我们可以用哪些方法来描述他?
必修一 《数据与计算》
3.2 算法及其描述
(1)自然语言
(2)流程图
(3)伪代码
‹#›
9
算法的描述——自然语言
必修一 《数据与计算》
3.2 算法及其描述
(1)自然语言
10
用自然语言描述算法,就是用人们日常所用的语言,如:汉语、英语等来描述算法。
t=0;
x=1;
y=1;
z=1;
如果满足式子6x+5y+4z=50,则购买的方案数加1(即t=t+1),并输出这种购买方案(即输出t、x、y、z的值)。
z=z+1;
如果z<=12则转⑤,否则继续⑧;
y=y+1;
如果y<=10则转④,否则继续⑩;
x=x+1;
如果x<=8则转③,否则继续⑫;
结束。
‹#›
10
算法的描述
必修一 《数据与计算》
3.2 算法及其描述
思考:
11
刚才的自然语言描述解决的问题时相对比较乱,有没有更清晰的表达方式?
‹#›
11
算法的描述——流程图
必修一 《数据与计算》
3.2 算法及其描述
(2)流程图
用流程图描述算法是用程序框图来描述算法的一种表示方法。
‹#›
12
算法的描述——流程图
必修一 《数据与计算》
3.2 算法及其描述
13
流程图的基本图形及其功能
13
图 形 名 称 功 能
开始/结束 表示算法的开始或结束
输入/输出 表示算法中变量的输入或输出
处理 表示算法中变量的计算与赋值
判断 表示算法中的条件判断
流程线 表示算法中的流向
连接点 表示算法中的转接
‹#›
13
算法的描述——互动训练
必修一 《数据与计算》
3.2 算法及其描述
14
表示一个算法的( )和( )
开始
结束
外部
计算机内部
计算机内部
计算机内外部
表示从( )输入数据到( )或者
从( )输出数据到( )
表示( )的内容
操作
表示( )。满足条件,执行标识为( )的
路径;不满足条件,则执行标识为( )的路径
判断的条件
是
否
指向算法运行的( )
方向
‹#›
14
算法的描述——互动训练
2022级新生在九月份即将入学,现在你作为引导的志愿者,请你履行好自己的职责,帮助新生们完成入学;想想你入学时经历的哪些流程呢,你又准备如何和他们沟通呢?
期末来了
请完成算法设计及流程图
必修一 《数据与计算》
3.2 算法及其描述
‹#›
15
算法的描述
必修一 《数据与计算》
3.2 算法及其描述
(3)伪代码
用伪代码描述算法就是用介于自然语言和计算机语言之间的文字和符号来描述算法。
t=0
for x in range(1,9):
for y in range(1,11):
for z in range(1,13):
if x*6+y*5+z*4==50:
{t=t+1;
输出解的个数t和三个整数x,y,z}
‹#›
16
算法的描述
必修一 《数据与计算》
3.2 算法及其描述
17
算法三种描述方法的优劣对比
算法描述的方法 优势 不足
自然语言表示法 用人们日常所用的语言,比较容易掌握。 当算法中含有多分支或循环操作较多时很难清晰地表示出来,由于自然语言的歧义性,容易导致算法执行的不确定性。
流程图表示法 用程序框图来描述,流程描述清晰简洁。 所占篇幅较大,由于允许使用流程线,过于灵活,不受约束。
伪代码表示法 用介于自然语言和计算机语言之间的文字和符号来描述,书写方便,格式紧凑,易于理解,便于向计算机程序设计语言过渡。 由于编程语言的种类繁多,伪代码的语句不容易规范,有时会产生误解。
‹#›
17
算法的描述—— 程序的三种基本结构
循环结构
选择结构
顺序结构
代码段1
代码段2
条件
代码段1
代码段2
代码段
条件
成立
不成立
必修一 《数据与计算》
3.2 算法及其描述
顺序结构表示程序中的各个操作步骤按出现的先后顺序执行
选择结构表示程序的处理步骤出现了分支,需要根据某一特定的条件选择其中的一个分支执行。
循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。
‹#›
18
总结
必修一 《数据与计算》
3.2 算法及其描述
‹#›
19
课后练习——请完成流程图绘制
3、我国古代数学著作《孙子算经》中有题为“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各有几和?”
必修一 《数据与计算》
3.2 算法及其描述
1、求圆的周长和面积
2、判断今年是否是闰年
‹#›
20
课后自学——算法的深入学习(可自选)
必修一 《数据与计算》
3.2 算法及其描述
1、冒泡排序
2、选择排序
3、插入排序
4、算法图解--python
‹#›
21
谢谢大家
22
$$