思考3 任何问题都可以设计算法解决吗?
梳理 算法的设计要求:
(1)写出的算法,必须能解决一类问题,并且能够重复使用.
(2)要使算法尽量简单、通俗易懂.
(3)要保证算法正确,且计算机能够执行.
类型一 算法的特征
例1 一个大人和两个小孩一起渡河,渡口只有一条小船,每次只能渡1个大人或两个小孩,他们三人都会划船,但都不会游泳.试问他们怎样渡过河去?请写出一个渡河方案.
反思与感悟 算法的特点:
(1)有穷性:一个算法应包括有限的操作步骤,能在执行有穷的操作步骤之后结束.
(2)确定性:算法的计算规则及相应的计算步骤必须是确定的.
(3)可行性:算法中的每一个步骤都是可以在有限的时间内完成的基本操作,并能得到确定的结果.
跟踪训练1 某人带着一只狼和一只羊及一捆青菜过河,只有一条船,船仅可载重此人和狼、羊及青菜中的一种,没有人在的时候,狼会吃羊,羊会吃青菜.请设计安全过河的算法.
类型二 算法的阅读理解
例2 下面算法要解决的问题是______________________________________________.
第一步 输入三个数,并分别用a、b、c表示.
第二步 比较a与b的大小,如果a
第三步 比较a与c的大小,如果a 第四步 比较b与c的大小,如果b 第五步 输出a、b、c. 反思与感悟 一个算法的作用往往并不显然,这需要我们结合具体数值去执行一下才知道. 跟踪训练2 下面给出了一个问题的算法: 第一步 输入a. 第二步 若a≥4,则执行第三步,否则执行第四步.