1、第二章 算法与问题解决 信息技术必修1数据与计算 游戏:狼、菜、羊过河 有一个牧羊人带着一头羊,一只狼和一颗大白 菜准备过河,他找到一只很小的船,每次只能带一样 东西过去,可是如果让狼与羊单独在一起,狼会吃羊, 让羊与白菜单独在一起,羊会吃白菜,请你说说牧 羊人应如何过河? Answer: 过河的方案过河的方案: : 第一步:人和羊过河,人返回,留下羊;第一步:人和羊过河,人返回,留下羊; 第二步:人和狼过河,人和羊返回,留下狼;第二步:人和狼过河,人和羊返回,留下狼; 第三步:人和菜过河,人返回,留下菜;第三步:人和菜过河,人返回,留下菜; 第四步:人和羊过河第四步:人和羊过河 算法的概念和
2、特征 算法是解决问题的方法和有限有限步骤 算法的特征: (1)有穷性:一个算法在执行有限步之后必须结束 (2)确定性:算法的每一个步骤必须要有确切地定义 (3)有输入:一个算法有零个或多个输入 (4)有输出:算法有一个或多个输出 (5)可行性:算法中的运算和操作必须能精确地执行 算法的要素 (1)数据(原始输入数据、产生的数据)数据(原始输入数据、产生的数据) (2)运算)运算 (3)控制转移(达到某个点有选项)控制转移(达到某个点有选项) 算法的三种描述方法 某商场为了对苹果进行促销,规定苹果原价 1.5元,购买2千克以上的,超过2千克的部分 可以在原价的基础上打8折。请同学们用语言 描述付
3、款的算法。 算法的描述方法自然语言 使用自然语言描述算法。 (1)输入苹果的重量x (2)判断苹果的重量是否大于2千克 (3)如果苹果的重量不大于2千克,应付款y=x*1.5 (4)如果苹果的重量大于2千克,应付款y=2*1.5+(x- 2)*1.5*0.8 (5)输出应付款的金额 使用自然语言描述算法的优缺点 优点:容易理解 缺点:书写烦琐,不确定性,对复杂的问题难以 表达准确,不能被计算机识别和执行。 算法的描述方法自然语言 算法的描述方法流程图 开始 输入苹果的重量x X2? Y=x*1.5Y=2*1.5+(x-2)*1.5*0.8 输出应付款 y 结束 YN (1)输入苹果的重量x (
4、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 Sing
5、le x = Val(Text1.Text) If x 2? Y=x*1.5Y=2*1.5+(x-2)*1.5*0.8 输出应付款 y 结束 YN 算法的择优 解决同一个问题可能有不同的算法 著名数学家华罗庚著名数学家华罗庚“烧水泡茶烧水泡茶”的两个算法。的两个算法。 算法一算法一 第一步:烧水;第一步:烧水; 第二步:水烧开后,洗刷茶具;第二步:水烧开后,洗刷茶具; 第三步:沏茶。第三步:沏茶。 算法二算法二 第一步:烧水;第一步:烧水; 第二步:烧水过程中,洗刷茶具;第二步:烧水过程中,洗刷茶具; 第三步:水烧开后沏茶。第三步:水烧开后沏茶。 第二个算法的科学性在于应用了第二个算法的科学性
6、在于应用了“统筹方法统筹方法” 区别?区别? 哪个更高效?哪个更高效? 一个好算法必须用到科学的方法一个好算法必须用到科学的方法 总结 算法的概念:解决问题的方法和步骤 算法的特征:有输入、确定性、有穷性、有输出、可行性 算法的三种描述方法:用自然语言描述算法、用流程图描述算法、用程 序实现算法 解决同一个问题,可能有多种算法,这就需要我们对可能的算法择优。 课堂练习 1. 求矩形面积s的部分流程图如下图所示,矩形的长、宽分别用 变量a、b表示,对于框和框的作用,下列说法正确的是 ( ) A.框用于输入a和b的值,框用于输出s的值 B.框用于输出a和b的值,框用于输出s的值 C.框用于输入a和
7、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