内容正文:
第6课 算法初步
1
01
02
03
目 录
CATALOG
算法的定义与特征
算法的描述
算法的控制结构
2
1
2
3
4
手工洗衣
在盛有衣服的盆中加入适量的水和洗衣粉,搅拌均匀。
揉搓衣服
用清水漂洗
拧干
手工洗衣的流程
3
算法的定义与特征
01
4
算法:在有限步骤内解决问题所使用的方法。
认识算法
算 法
算法中的每一个步骤能被人或机器等计算装置执行。对计算装置而言,算法通常是以一步接一步的方式来详细描述如何将输入或者预定初始值转化为所要求的输出的过程,或者说,算法是对计算装置中执行的计算过程的具体描述。
5
手工洗衣的步骤算法直接交给洗衣机,洗衣机能否完成洗衣操作?
思考与讨论
请讨论,如果需要设计出洗衣机能懂并能执行的算法,该算法应满足哪些条件?
6
算法的执行步骤必须是有限的,不能无休止的执行下去。
算法中的每一个步骤的表述都必须是确定的,没有歧义的语句。
算法中的每一个步骤都能够有效的执行,并且得到确定的结果。
输出指的是算法的执行结果,没有输出的算法是没有意义的。输出可以是1个,也可以是多个。
输入是算法在执行时从外界获得的数据,它们是算法执行的某些初始状态。输入可以是0个,也可以是多个。
有穷性
算法
特征
算法特征
确定性
可执
行性
0/多个输入
1/多个输出
7
算法的描述
02
8
VS
算法描述
VS
如果是8点以前就早读;
如果是8点到12点之间就上课;
否则就下课去吃饭。
IF 8点以前 THEN
早读;
ELSE 8点到12点 THEN
上课;
ELSE
下课吃午饭;
END IF
开始
下课,吃午饭
输出”已完成“
结束
输入时间a
a<8点?
是
否
自然语言
伪代码
流程图
8点≤a<12点?
否
早读
上课
是
9
算法描述
符号 符号名称 功能说明
起止框
处理框
判断框
输入输出框
流程线
表示算法的开始和结束
表示执行一个步骤(框中指出
执行的内容)
表示要根据条件选择执行路线
表示用户输入的信息或计算机
自动输出的信息
指向流程的方向
开始
下课,吃午饭
输出”已完成“
结束
输入时间a
a<8点?
是
否
8点≤a<12点?
否
早读
上课
是
10
以某型号的洗衣机为例,它的“快洗”模式包括一次“洗涤”和一次“漂洗”操作,洗衣流程如图:
算法描述
开始
①进水
②洗涤
③排水
⑥漂洗
⑤进水
④脱水
⑦排水
⑧脱水
⑨鸣叫
结束
算法是解决“做什么”和“怎么做”的具体步骤的描述,从算法的特征来看,此流程图还不能称为洗衣机的算法,因为其每一步没有定义洗衣机可以明确执行的细节。以第②步“洗涤”为例,通过电动机正转、停、反转、停的反复循环,完成洗涤任务,为这一步单独设计的“洗涤算法”可以用自然语言描述为:
1 电动机正转30秒;
2 停2秒;
3 电动机反转30秒;
4 停2秒;
11
用流程图描述洗涤1次的算法
算法描述
用流程图描述洗涤2次的算法
用流程图描述洗涤5次的算法
开始
结束
正转30秒
停2秒
反转30秒
停2秒
开始
正转30秒
停2秒
反转30秒
停2秒
正转30秒
停2秒
反转30秒
停2秒
结束
开始
计数器清零
正转30秒
停2秒
反转30秒
停2秒
计数加1
结束
计数<5?
是
否
12
算法的基本控制结构
03
13
控制结构
顺序结构
由上而下,按先后顺序依次执行。
开始
正转30秒
停2秒
反转30秒
停2秒
正转30秒
停2秒
反转30秒
停2秒
结束
开始
计数器清零
正转30秒
停2秒
反转30秒
停2秒
计数加1
结束
计数<5?
是
否
观察流程图描述的算法,总结算法的基本结构
A
B
条件
A
B
是
否
根据判断结构选择不同的执行路径。
选择结构
14
控制结构
先判断表达式、后执行循环体语句。
当判断框中的条件为“是”时,执行循环体语句,如此往复;当判断框中的条件为“否”时,结束循环。
当循环
先执行循环体语句、后判断条件是否成立。
先执行一次循环体语句,再判断条件,当判断框中的条件为“否”时,返回重新执行循环体语句,直到判断框中的条件为“是”时结束循环
直到循环
A
条件
A
条件
是
是
否
否
15
课堂实践
如下图所示的算法流程图,当输入值为-5时,其输出结果是________
开始
输入A
A<0?
A=A+2
A=A*3
结束
Y
N
输出A
3
16
课堂实践
请按照《杭州电价2023收费 标准》,使用流程图描述居民生活用电(单表)的计费算法。
17
课堂实践
居民生活用电(单表)的计费算法
开始
输出电费t
输入用电度数a
a≤2160?
否
t=2160*0.6+1040*0.65+(a-4200)*0.9
2160<a≤4200?
否