第二章
算法与问题解决
1、算法的概念及描述
2、算法的控制结构
3、用算法解决问题的过程
1.1算法的概念及描述
信息技术必修1数据与计算
游戏:狼、菜、羊过河
有一个牧羊人带着一头羊,一只狼和一颗大白菜准备过河,他找到一只很小的船,每次只能带一样东西过去,可是如果让狼与羊单独在一起,狼会吃羊,让羊与白菜单独在一起,羊会吃白菜,请你说说牧羊人应如何过河?
Answer:
过河的方案:
第一步:人和羊过河,人返回,留下羊;
第二步:人和狼过河,人和羊返回,留下狼;
第三步:人和菜过河,人返回,留下菜;
第四步:人和羊过河
算法的概念和特征
算法是解决问题的方法和有限步骤
算法的特征:
(1)有穷性:一个算法在执行有限步之后必须结束
(2)确定性:算法的每一个步骤必须要有确切地定义
(3)有输入:一个算法有零个或多个输入
(4)有输出:算法有一个或多个输出
(5)可行性:算法中的运算和操作必须能精确地执行
算法的要素
(1)数据(原始输入数据、产生的数据)
(2)运算
(3)控制转移(达到某个点有选项)
算法的三种描述方法
某商场为了对苹果进行促销,规定苹果原价1.5元,购买2千克以上的,超过2千克的部分可以在原价的基础上打8折。请同学们用语言描述付款的算法。
算法的描述方法——自然语言
使用自然语言描述算法。
(1)输入苹果的重量x
(2)判断苹果的重量是否大于2千克
(3)如果苹果的重量不大于2千克,应付款y=x*1.5
(4)如果苹果的重量大于2千克,应付款y=2*1.5+(x-2)*1.5*0.8
(5)输出应付款的金额
使用自然语言描述算法的优缺点
优点:容易理解
缺点:书写烦琐,不确定性,对复杂的问题难以表达准确,不能被计算机识别和执行。
算法的描述方法——自然语言
算法的描述方法——流程图
开始
输入苹果的重量x
X>2?
Y=x*1.5
Y=2*1.5+(x-2)*1.5*0.8
输出应付款 y
结束
Y
N
(1)输入苹果的重量x
(2)判断苹果的重量是否大于2千克
(3)如果苹果的重量不大于2千克,应付款y=x*1.5
(4)如果苹果的重量大于2千克,应付款y=2*1.5+(x-2)*1.5*0.8
(5)输出应付款的金额
常用的流程图所用的基本符号
程序框
名称
功能
开始/结束
算法的开始和结束
输入/输出
输入和输出信息
处理
计算与赋值
判断
条件判断
流程线
算法中的流向
算法的描述方法——流程图
使用流程图描述算法的优缺点
优点:直观、形象
缺点:不能被计算机识别和执行。
算法的描述方法——程序
Private Sub Command1_Click()
Dim x As Single, y As Single
x = Val(Text1.Text)
If x <= 2 Then
y = x * 1.5
Else
y = 2 * 1.5 + (x - 2) * 1.5 * 0.8
End If
Text2.Text = y
End Sub
开始
输入苹果的重量x
X>2?
Y=x*1.5
Y=2*1.5+(x-2)*1.5*0.8
输出应付款 y
结束
Y
N
算法的择优
解决同一个问题可能有不同的算法
著名数学家华罗庚“烧水泡茶”的两个算法。
算法一
第一步:烧水;
第二步:水烧开后,洗刷茶具;
第三步:沏茶。
算法二
第一步:烧水;
第二步:烧水过程中,洗刷茶具;
第三步:水烧开后沏茶。
第二个算法的科学性在于应用了“统筹方法”
区别?
哪个更高效?
一个好算法必须用到科学的方法
总结
算法的概念:解决问题的方法和步骤
算法的特征:有输入、确定性、有穷性、有输出、可行性
算法的三种描述方法:用自然语言描述算法、用流程图描述算法、用程序实现算法
解决同一个问题,可能有多种算法,这就需要我们对可能的算法择优。
课堂练习
1. 求矩形面积s的部分流程图如下图所示,矩形的长、宽分别用变量a、b表示,对于框①和框②的作用,下列说法正确的是( )
A.框①用于输入a和b的值,框②用于输出s的值
B.框①用于输出a和b的值,框②用于输出s的值
C.框①用于输入a和b的值,框②用于输入s的值
D.框①用于输出a和b的值,框②用于输入s的值
A
2. 有流程图如下图所示,其功能是将键盘输入的数进行相加,
当输入的数为0时输出它们的和,则图中虚线部分的内容是(???? )
?????
A. ??????????? B. ??????????? C. ??????????? D. ?????????????
D
课堂练习
如下图所示的流程图:
??????
算法执行时,若输入n的值为3,则输出s的值是(???? )
A.6??? B.8???? C.9???? D.15
?
3、如下图所示的流程图:
C
课堂练习
4.下面关于算法的描述,正确的是(???? )
A.一个算法只能有一个输入
B. 算法只能用框图来表示
C.一个算法的执行步骤可以是无限的
D.一个完整的算法,不管用什么方法来表示,都至少有一个输出结果
D
课堂练习
3.有部分流程图结构如下,其算法结构属于(???? )
???????
A.顺序结构? B.重复结构? C.分支结构 ?D.循环结构
D
课堂练习
6.(开放题)思考高楼的自动电梯在运行时需要考虑哪些方面(例如方便乘客,节约能源等),请为自动电梯设计一个适宜的算法。
动动脑筋:
Thanks