实践体验一、将柱子A上的3个盘子,移动到柱子C上。
规则:
1.移动时,在小圆盘上不能放大圆盘。
2.在三根柱子之间一次只能移动一个圆盘。
A
B
C
A
B
C
情境导入
A
B
C
A
B
C
① 将小黄块移到C
② 将中蓝块移到B
③ 将小黄块移到B
④ 将大红块移到C
⑥ 将中蓝块移到C
⑤ 将小黄块移到A
⑦ 将小黄块移到C
1.4
算法的概念和表示方法
01
算法的概念
算法就是解题方法的精确描述。
生活中处处存在着算法
生活中
的算法
田忌赛马
的方案
一元二次方程
解题过程
演奏的乐谱
武侠中的
《易筋经》
广播操图解
等等……
02
算法的特征
算法描述的是一种有穷的动作序列,即算法是由有限个步骤组成的,在算法中每一步动作的表现形式并没有规定的格式,可以是抽象的,也可以是具体的,但是这些动作的含义应当是明确的(即没有二义性),同时还应该是能行的(即在有限的时间内可以做到的)。
用一分钟时间阅读书本上61页关于算法的描述,
用词语归纳算法的特征
1.有穷性(步骤有限)
2.确定性 (没有二义性)
4.有0个或多个输入 (可无输入量,也可从外界输入初始数据)
3.能行性 (在有限的时间内可以做到)
输出:所有整数
求解:10/正整数
求解:√-3
5.有1个或多个输出 (必须有输出)
“程序出错” 也是一种输出!
03
算法的优化
假设煮饭、炒菜为同一个锅,需通过洗菜和切菜、做饭、炒菜三个环节来完成一顿饭菜,你会选择下面哪种方法来操作?为什么?
t
炒菜
做饭
洗菜、切菜
做饭
炒菜
洗菜、切菜
炒菜
洗菜、切菜
做饭
炒菜
做饭
洗菜、切菜
方法一
方法二
方法三
方法四
面对同一个问题,通常有很多解决问题的方法和步骤,我们一般尽可能采用简单省时的和步骤最少的方法来解决问题。
对同一问题,可以有不同的解题方法和步骤。华罗庚在数学普及读物《统筹方法平话及补充》中,以“泡茶”为例,阐明了设计和选择合适的、优化的算法的重要性。
1.自然语言 :
即用汉语或英语这样的自然语言来表示算法。
04
算法的表示方法
① 将小黄块移到C
② 将中蓝块移到B
③ 将小黄块移到B
④ 将大红块移到C
⑥ 将中蓝块移到C
⑤ 将小黄块移到A
⑦ 将小黄块移到C
通俗易懂
通常所用的文字为了精确的表达意思会比较冗长繁琐。
容易出现“二义性”。
我们班小丁对小张说数学老师叫他去办公室
2.流程图
形象直观
是程序员经常用来描述算法的工具,流程图用图框及流程线来表示算法,简洁易懂。
04
算法的表示方法
流程图
画流程图规则:
根据算法中每一个步骤,选用合适的流程框图
流程图符号:
开始、结束框
处理框
判断框
输入、输出框
流程线
连接框
表示算法的开始与结束
表示输入、输出数据
用于表示要处理的内容
表示条件判断及产生分支的情况
用于连接因页面写不下而断开的流程线
有向线段,用于控制流程方向
符号
名称
作用
04
算法的表示方法
例:用流程图描述“输入两个不同的正整数,输出其中值最大的数”的算法。
开始
输入变量a,b的值
max=a
a>b?
max=b
输出最大值变量max的值
结束
Y
N
04
算法的表示方法
处理框
输入输出框
判断框
连接框
流程线
开始、结束框
设计一个算法,对任意输入的三个不等的整数X、Y和Z,找出并输出其中的最小值。
自然语言表示方法:
1.输入变量x,y,z??
2.比较x,y。如果x 3.比较z和min。如果z4.输出min?
流程图:
输入变量x、y、z的值
xmin=y
min=x
zmin=z
Y
输出变量min的值
N
Y
N
开始
结束
实践体验2
04
算法的表示方法
开始
输入变量a,b的值
max=a
a>b?
max=b
输出最大值变量max的值
结束
Y
N
3.计算机语言
计算机能识别
高级语言
Pascal
Visual Basic
C++
……
04
算法的表示方法
Private Sub Command1_Click()
Dim a,b,max as Integer
‘分别读取两个整数转换后保存在变量a和b中’
a=Val(Text1.Text)
b=Val(Text2.Text)
If a>b Then
max=a
Else
max=b
End if
Label1.Caption= “最大数是”& Str(max)
End Sub
把冰箱门打开
把大象放进去
05
算法的三种基本的控制结构
1.顺序结构
一个步骤完成后,顺序执行紧跟着的下个处理步骤。
如电视节目,按先后顺序直线下来。
把大象放进冰箱分哪几步?
把冰箱门关上
05
算法的三种基本的控制结构
2.选择结构
根据情况的不同,在预定的两个模式中,选择一个合理的步骤执行
如根据停电情况,选择信息课上课场地问题。
停电了?
到教室上课
到机房上课
Y
N
(分支结构)
05
算法的三种基本的控制结构
3.循环结构
对某个情况e进行判断,当结果为真时,执行处理步骤step,然后再次判断这个情况e,当结果为真是,再次执行步骤step,并继续判断情况e。总是重复上述过程,直到判断的结果为假。
如电影《捉妖记》中井柏然吃面。
你还饿吗?
吃一碗面
Y
N
1、下列关于算法的描述,正确的是( B )
A.一个算法的执行步骤可以是无限的
B.一个完整的算法必须有输出
C.算法只能用自然语言来描述
D.一个完整的算法至少有一个输入
2、在求解“一元二次方程实数解”的算法中,如果方程不存在实数根,也要求输出结果“无实数根”,此要求主要体现了算法特征中的( B )
A.有穷性 B.至少有一个输出 C.确定性 D.可行性
06
随堂练习
3、下列四中流程图样式中,能用于表示循环结构的是( D )
A B C D
06
随堂练习
4、某算法流程图如下所示:当输入a和b的值分别为3、6时,该算法的输出结果为( C )
A. 3
B. 6
C. 8
D. 9
06
随堂练习
开始
输入a、b的值
c←a+5
c>=b?
输出b的值
输出c的值
N
Y
结束
A. k的值为0
B.程序出错
C.语句“k=k+1”共被执行了2次
D.输出k的值为4
5、某算法流程图如图所示,执行该算法,当s的值为0时( D )
06
随堂练习
开始
s←10:k ←0
s<=0?
输出k的值
Y
N
结束
k←k+1
s←s-k
算法
算法的概念
算法的特征
算法的表示方法
算法的三种
基本控制结构
算法的优化
顺序
选择(分支)
循环
自然语言
流程图
计算机语言
能行性
有1个或多个输出
有0个或多个输入
确定性
有穷性
07
课堂小结
6.某算法部分流程图如第图所示。执行这部分流程,依次输入 12、-5、29、18、7,则输出值是
A.12 B-5 C29 D 7
08
拓展练习
THANK YOU
FOR LISTENING!