【课标要求】1.通过分析解决具体问题的过程与步骤,体会算法的基本思想.2.了解算法的含义和特征.3.能用自然语言描述解决具体问题的算法.知识导图学法指导1.通过具体实例体会算法的概念,明确算法的各个特征,能够区别算法和解法.2.通过设计具体问题的算法,体会一个问题可能存在多种算法,且算法有优劣之分.知识点一算法的含义1.算法的含义12世纪的算法指的是用阿拉伯数字进行算术运算的过程.数学中的算法通常是指按照________解决某一类问题的____和____的步骤.现代算法通常可以编成____________,让计算机执行并解决问题.一定规则明确有限计算机程序2.算法的描述算法可以用不同的方式描述,一般常用自然语言、框图(程序框图)以及计算机语言进行描述,三种方式各有优点.(1)自然语言就是人们日常使用的语言,优点是通俗易懂,但操作步骤过多时显得烦琐.(2)框图(程序框图)是用规定的图形符号来描述算法的图形(将在下一节中学习),具有结构清晰,条理分明,便于检查、修改等优点.(3)计算机语言是可以被计算机识别并执行的语言.状元随笔算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照要求设计好的、有限的、确切的计算序列,并且这样的步骤或序列能够解决某一类问题.它和数学问题的解法既有联系也有区别:(1)联系:算法与解法是一般与特殊的关系,也是抽象与具体的关系.比如,教材中根据具体的二元一次方程组的求解步骤,归纳出求解一般的二元一次方程组的步骤,这些步骤就构成了解二元一次方程组的一个算法.(2)区别:算法是解决某一类问题所需要的步骤的统称,也可理解为数学中的“通法”,而解法是解决某一个具体问题的过程和步骤,是具体的解题过程.知识点二算法的特征根据算法的含义,可以得出算法的六个特征:可执行性、确定性、有限性、不唯一性、普遍性以及有序性.(1)可执行性:顾名思义,即要求算法在现有的条件下可以执行.(2)确定性:对于一个算法,必须明确每一步应该做什么,对每一步的表述要________,不能有____.(3)有限性:对于一个算法,其步骤必须是____的,不能无限执行下去,否则不能达到解决问题的目的.(4)不唯一性:对于某个问题来说,解法不唯一,由此导致算法________.如解二元一次方程组的算法就有代入消元法、加减消元法两种.简洁清楚歧义有限不唯一(5)普遍性:算法是用来解决某一类问题的____________的步骤,因此,要考虑算法是否能够用来解决一类问题,且能____使用.(6)有序性:算法分为若干个明确的步骤,前一步是下一步的前提,只有____________才能进行下一步,并且每一步都准确无误才能解决问题.明确和有限重复执行完前一步状元随笔由算法的特征可知,算法从初始步骤开始,每一个步骤只能有一个确定的后继步骤,从而组成一个步骤序列,序列的终止表示问题得到解答或指出问题没有解.知识点三算法的设计1.设计算法的要求(1)写出的算法必须能解决一类问题,并且能够重复使用;(2)设计的算法必须具有可执行性;(3)要保证每一个操作步骤必须明确无歧义;(4)设计的算法必须能在有限步后得出结果;(5)要使算法尽量简单,步骤尽量少,即给出最优算法.2.设计算法的步骤(1)分析问题,寻找可以解决问题的一般的数学方法;(2)将问题的各种情况加以分类;(3)将每一类情况划分为若干个步骤;(4)用简练的语言与数学符号和各种参数将各个步骤表达出来;(5)按照顺序将步骤列出来.状元随笔设计算法的关键是把过程分解,用计算机语言表达并让计算机执行,要尽量做到简单明了.[小试身手]1.下列对算法的理解正确的是()A.算法就是解题的方法B.任何问题都可用算法来解决C.解决一个具体问题的算法不同,结果也不同D.算法不一定通过计算机来实现解析:A错,算法与解法是一般与特殊的关系;B错,不是所有的问题都能用算法来解决,如,根据一列数找规律,算法是不能解决的;C错,解决某一个具体问题时,算法可以不同,但结果必定相同;D正确,故选D.答案:D2.下列语句表达的是算法的有()①拨本地电话的过程为:〈1〉提起话筒;〈2〉拨号;〈3〉等复话信号;〈4〉开始通话或挂机;〈5〉结束通话;②利用公式V=Sh计算底面积为3,高为4的三棱柱的体积;③x2-2x-3=0;④求所有能被3整除的正数,即3,6,9,12,….A.①②B.①②③C.①②④D.①②③④解析:算法通常是指按照一定规则解决某一类问题的明确和有限的步骤.①②都各表达了一种算法;③只是一个纯数学问题,不是一个明确步骤;④的步骤是无穷的,与算法的有穷性矛盾.答案:A3.结合下面的算法:第一步,输入x.第二步,判断x是否小于0.若是,则输出x+2,否则执行第三步.第三步,输出x-1.当输入的x的值为-1,0,1时,输出的结果分别为()A.-1,0,1B.-1,1,0C.1,-1,0D.0,-1,1解析:根据x值与0的关系,选择执行不同的步骤.当x=-1时,输出x+2,即输出1;当x=0时,输出x-1,即输出-1;当x=1时,输出x-1,即输出0.故选C.答案:C4.输入一个x值,利用y=|x-1|求函数值的算法如下,请将所缺部分补充完整:第一步:输入x;第二步:________;第三步:当x1时,计算y=1-x;第四步:输出y.解析:以x-1与0的大小关系为分类准则知第二步应填当x≥1时,计算y=x-1.答案:当x≥1时,计算y=x-1类型一算法的判断例1下列说法:①植树需要运苗,挖坑,栽苗,浇水这些步骤.②解一元一次方程的步骤是去分母、去括号、移项、合并同类项、系数化为1.③求过两点A(1,3),B(5,6)的直线方程,可先计算直线AB的斜率,再根据点斜式求得直线方程.④解不等式.其中,算法的个数为()A.1B.2C.3D.4状元随笔算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤,或看成按照要求设计的、明确、有限的计算序列.【解析】①中说明了植树的步骤.②中给出了求一元一次方程这一类问题的解决方法.③给出了过两点求直线方程的方法.而④只描述了一个事件,并没说明怎么解决问题,不是算法.故①②③都是算法,④不是,故选C.【答案】C方法归纳解决有关算法概念的判断题应根据算法的概念、特征及设计算法的要求等进行判断.特别注意,算法能在有限的步骤内解决某一类问题,其中每个步骤必须是明确可行的,不能模棱两可.跟踪训练1下列叙述不能称为算法的是()A.从北京到上海先乘汽车到飞机场,再乘飞机到上海B.解方程4x+1=0的过程是先移项再把x的系数化成1C.利用公式S=πr2计算半径为2的圆的面积得π×22D.解方程x2-2x+1=0解析:A×B×A,B两选项给出了解决问题的方法和步骤,是算法C×利用公式计算也属于算法D√只提出问题没有给出解决的方法,不是算法答案:D类型二算法的设计例2(1)设计算法,将1573分解成质因数的乘积.(2)写出求a、b、c三个数中最大值的算法.状元随笔(1)先将1573质因数分解.(2)比较a、b→取a、b中较大者,记为m→比较m与c→得最大值【解析】(1)第一步,判断1573是否为质数:否.第二步,确定1573的最小质因数是11,即1573=11×143.第三步,判断143是否为质数:否.第四步,确定143的最小质因数11,即143=11×13.第五步,判断13是否为质数:是.分解结果是1573=11×11×13.(2)第一步,比较a、b的大小,若ab,则记m=b,若ba,则记m=a.第二步,比较m与c的大小,若mc,则c为最大数,若m>c,则m为最大数.方法归纳1.由于算法是用来解决一类问题的,因此,算法的设计必须要考虑到这类问题可能出现的各种情况,否则这种算法就不是有效的.2.带有循环特征算法的两个注意点:(1)具有重复执行类型的各步可以设计为循环形式的算法;(2)循环类型的算法要设计好循环的过程和次数.跟踪训练2所谓正整数p为素数是指:p的所有约数只有1和p.例如,35不是素数,因为35的约数除了1,35外,还有5与7;29是素数,因为29的约数就只有1和29.试设计一个能够判断一个任意正整数n(n1)是否为素数的算法.解析:算法如下:第一步,给出任意一个正整数n(n1).第二步,若n=2,则输出“2是素数”,判断结束.第三步,令m=1.第四步,将m的值增加1,仍用m表示.第五步,如果m≥n,则输出“n是素数”,判断结束.第六步,判断m能否整除n,①如果能整除,则输出“n不是素数”,判断结束;②如果不能整除,则转第四步.类型三算法的应用例3一个笼子里有一些鸡和兔,现在知道里面一共有35个头,94只脚,请设计一个算法计算鸡和兔各有多少只.一设二列,三解四答【解析】算法如下:第一步,设有x只鸡,y只兔;第二步,列方程组:x+y=35,2x+4y=94;第三步,解方程组求得:x=23,y=12.第四步,答:笼子里有鸡23只,兔12只.方法归纳应用算法解决实际问题的一般方法:(1)弄清题目中所给要求;(2)建立过程模型;(3)根据过程模型建立算法步骤,必要时由变量进行判断.跟踪训练3现有三个油瓶子,分别能装8kg,5kg,3kg的油,当8kg的瓶子装满油时,设计一个用这三个瓶子倒油的算法,怎样倒能使这些油被平分到两个瓶子里?(要求倒油的次数最少)只能分装到大瓶和中瓶内解析:第一步,规定8kg的大油瓶为A,5kg和3kg的油瓶分别为B,C.第二步,从A往C倒3kg,将C装满,此时A中剩下5kg油.第三步,将C中的3kg油倒进B.第四步,再从A往C倒3kg油.第五步,从C往B倒2kg,即B装满.第六步,将B中油全部倒入A.第七步,将C中油全部倒入B.第八步,从A往C倒油,将C装满,此时A中的油为4kg.第九步,将C中的油全部倒入B,则B中的油为4kg.