1、1 思考: 一个农夫带着一条狼、一头山羊和一篮 蔬菜要过河。当他来到渡口时发现过河的 小船除了能装下自己之外,只能再带1样 东西过河。这使他有点犯愁了,因为如果 农夫不在场的情况下,狼会吃羊,羊会吃 蔬菜。请同学们帮助农夫解决安全过河问 题。 2 步骤一:农夫先带着羊乘船过河。 步骤二:农夫回来后再将狼乘船过河。 步骤三:将狼渡完河时,把羊再带回来。 步骤四:把羊放下将蔬菜乘船过河 步骤五:最后农夫回来再带着羊乘船过河。 3 步骤一:农夫先带着羊乘船过河。 步骤二:农夫回来后再将蔬菜乘船过河。 步骤三:将蔬菜渡完河时,把羊再带回来。 步骤四:把羊放下将狼乘船过河 步骤五:最后农夫回来再带着羊乘
2、船过河。 4 实践: 神父过河 5 6 所谓算法,就是解题方法的精确描 述。是指在使用计算机解题前,需要 将解题方法转换成一系列具体的在计 算机上可执行的步骤,这些步骤能够 清楚的反映解题方法一步步“怎么做” 的过程,这个过程就是通常所说的算 法。 7 泡 茶 洗开 水壶 灌凉水洗茶壶洗茶杯拿茶叶 泡茶喝 洗开 水壶 洗茶壶洗茶杯拿茶叶灌凉水烧开水 泡茶喝 拿 茶 叶 洗 茶 壶 洗 茶 杯 泡茶喝烧开水 洗开 水壶 洗开 水壶 洗开 水壶 洗茶壶洗茶杯拿茶叶灌凉水烧开水 泡茶喝 洗开 水壶 灌凉水 拿 茶 叶 洗 茶 壶 洗 茶 杯 泡茶喝烧开水 烧开水 重叠 洗开 水壶 洗开 水壶 8 对
3、同一个问题,有时可以有不同的解 题方法和步骤。有的方法只需要较少的 步骤,而有些方法则可能需要较多的步 骤。一般情况下,尽可能采用简单省时 的和步骤少的方法去解决问题。因此, 为了有效地解决问题,不仅需要保证算 法正确,还要考虑算法的质量,这就要 求人们设计或选择合适的算法。 9 算法及其特点: 所谓“算法”,就是解题方法的 精确描述。算法描述的是一种 有穷的动作序列,即算法是由 有限个步骤所组成的 10 1、有穷性: 一个算法必须保证它的执行 步骤是有限的,即它是能终 止的。 11 2、确定性。 算法中的每个步骤必须有确切 的含义,而不应当是含糊的, 模棱两可的。 12 3、能行性 算法中的
4、每个步骤都要足够 简单,是实际能做的,而且 能在有限的时间内完成。 13 4、有0个或者多个输入 14 5、由一个或多个输出。 15 一、使用自然语言描述算法 二、使用流程图描述算法 三、使用伪代码(计算机语言) 描述算法 16 1、自然语言 我们可以用汉语,加上一些必要 的数学符号来描述算法。 17 实例 输入三角形的三条边长,判断它 能否构成一个三角形 18 1、输入三边边长a,b,c; 2、如果a+bc且b+ca且 c+ab, 则dtrue;否则dfalse; 3、输出d的值 19 思考题 输入一个整数,将该数反向 输出。 20 流程图(flowchart) 21 22 实例:学校上体育
5、课,一般 在操场上课,遇到下雪和下 雨天,改到室内上课。 23 流程图表示 开始 准备上体育课 雨天或雪天? 在操场上课在室内上课 结束 YN 24 伪代码: 伪代码使用某些程序设计语言中的控制 结构,来描述算法中各步骤的执行次序 和模式。使用自然语言、数学符号或者 其它符号,来表示计算步骤要完成的处 理或者需要涉及的数据。 25 IF(未下雨或下雪)THEN(在操场上课) ELSE(在室内上课) 26 算法的执行流程 27 1、顺序模式 28 输出:n2 输入n整数 29 2、选择模式 30 情况e为真 step1step2 YN 31 3 循环模式 情况e为真 step1 Y N 32 计算: 实例 33 kn ss+1/k,kk+1 输入:n正整数 s0, k1 Y N 输出s 34