1、第一章算法初步1.1算法与程序框图1.1.1算法的概念,1.了解算法的概念.2.理解用自然语言描述的算法.3.通过实例,提高对解决具体问题的步骤进行分析的能力,体会算法的基本思想.,1.算法的概念,算术运算,一定规则,明确,有限,计算机程序,2.算法在计算机中的应用(1)计算机解决任何问题都要依赖于_.(2)只有将解决问题的过程分解为若干个_,即_,并用计算机能够接受的“语言”准确地描述出来,计算机才能够解决问题.,算法,明确的步骤,算法,1.下面哪个不是算法的特征()A.概括性B.明确性C.有穷性D.唯一性【解析】选D.结合算法的概念,只有唯一性不是算法的特征.,2.洗衣机的使用说明书算法.
2、(填“是”或“不是”)【解析】说明书是按步骤完成洗衣过程的任务,故是算法.答案:是,3.以下有六个步骤:拨号;等拨号音;提起话筒(或免提功能);开始通话或挂机(线路不通);等复话方信号;结束通话.试写出打一个本地电话的算法.(只写编号)【解析】根据常识知,其顺序应是.答案:,一、算法的概念结合算法的概念,思考下列问题.探究1:数学中的算法与12世纪的算法相比,显著的特征是什么?提示:数学中的算法的显著的特征是顺序性、明确性和有限性.探究2:任何一个算法是不是都有一个明确的结果?为什么?提示:是,因为算法的每一步都是确定的,并且能够有效地执行,而且得到确定的结果,不能模棱两可,故任何一个算法都有
3、一个明确的结果.,【探究总结】算法的五个特征(1)概括性:能够解决一类问题,并能重复使用.(2)逻辑性:算法从初始步骤开始分为若干个明确的步骤,前一步是后一步的前提,而且每一步都是正确无误的,从而组成了有很强逻辑性的步骤序列.(3)有穷性:一个算法必须保证执行了有限步骤之后结束.(4)不唯一性:求解某一问题的算法不一定只有一个.(5)普遍性:许多问题都可以设计成合理的算法去解决.,【拓展延伸】算法概念的历史算法(algorithm)一词源于算术(algorism),即算术方法,是指一个由已知推求未知的运算过程.后来,人们把它推广到一般,把进行某一工作的方法和步骤称为算法.,广义地说,算法就是做
4、某一件事的步骤或程序.菜谱是做菜肴的算法,歌谱是一首歌曲的算法.在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定可以得到结果的解决问题的程序.比如解方程的算法、函数求值的算法、作图的算法等,不过这种经验并没有得到应有的升华.只有在完整地学习了算法后,才能把这些知识提升到新的高度来认识.算法是对解题方案的准确而完整的构造性的描述.,二、用自然语言设计算法探究1:一个猎人带着一匹狼和一头羊过河,但是渡船一次最多只能坐下一个人和一个动物,而且当狼和羊单独在一起的时候,狼会吃掉羊,请帮猎人设计一个渡河算法.,提示:因为猎人不在时狼会吃掉羊,所以猎人先把狼单独送到对岸去.算法如下:第一步
5、,猎人和狼一起同船渡过河去;第二步,猎人独自划船渡河回来;第三步,猎人和羊一起同船渡过河去.,探究2:算法与一般意义上具体问题的解法的区别与联系是什么?提示:(1)它们之间是一般与特殊的关系,也是抽象与具体的关系.(2)要设计出解决一类问题的算法,可以借助于此类问题中的某一个问题的解决过程和思路进行设计,而此类问题中的任何一个具体问题都可以利用这类问题的一般算法来解决.,【探究总结】1.算法设计的一般原则(1)必须解决一类问题,可以重复使用.(2)尽量简单且步骤少.(3)步步正确,可以执行.2.设计算法的三个关注点(1)算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按
6、要求设计好的、有限的、确定的计算序列,并且这些序列能够解决一类问题.,(2)用自然语言描述一个算法,最便捷的方式就是按解决问题的步骤进行描述,每一步做一件事情.这样描述的算法体现出按部就班程序性的特点.(3)对于在解决问题过程中反复进行的步骤,同学们要学习用循环的语言进行描述.用循环语言进行描述时,通常分三个步骤:首先要给一个初始值,接着表达重复做的事情,最后要进行终止判断.,类型 一 算法的概念1.以下关于算法的说法正确的是()A.描述算法可以有不同的方式,可用自然语言也可用其他语言B.算法可以看成是按照要求设计好的有限的确切的步骤或计算序列,并且这样的步骤或计算序列只能解决当前问题C.算法
7、过程要一步一步执行,每一步执行的操作必须确切,不能含混不清,而且经过有限步或无限步后能得出结果D.算法要求按部就班地做,每一步可以有不同的结果,2.下列不是算法的是()A.解方程2x-6=0的过程是先移项,然后再系数化为1B.从济南到温哥华要先乘火车到北京,再转乘飞机C.解方程2x2+x-1=0D.计算半径为3的圆的面积就是利用公式S=r2计算32,【解题指南】1.根据算法的概念和性质来判断.2.符合做某件事的程序和步骤的就是算法,否则不是.,【自主解答】1.选A.算法可以看成是按照要求设计好的有限的确切的步骤或计算序列,并且这样的步骤或计算序列能够解决一类问题.算法过程要求一步一步执行,每一
8、步执行的操作必须确切,只能有惟一结果,而且经过有限步后,必须有结果输出后终止,描述算法可以有不同的语言形式,如自然语言、框图语言及形式语言等.2.选C.算法是解决问题的步骤,C项是解方程,不是算法.,【规律总结】算法概念的三个注意点(1)一个操作过程是否能构成一个算法,关键是看它是否符合算法的特征.(2)算法过程要做到能一步步执行,每一步执行的操作必须确切,不能含糊,且在有限步后必须得到问题的结果.(3)算法一般是机械的,有时需要大量的重复计算,只要按部就班地去做,总能计算出结果.,【变式训练】已知下列语句,其中可以看成算法的是.(1)学习数学时,课前预习,课上认真听讲并记好笔记,课下先复习再
9、做作业,之后做适当的练习题.(2)李明到餐厅吃饭,吃了两份菜,两个馒头.(3)让高一某一个班的前10名同学做一套必修2的数学综合训练套题,找出比较难的题目.(4)已知菱形的对角线长为a,b,根据S= ab求菱形的面积.,【解析】(1)是学习数学的一个有效的步骤,故它是算法.(2)只是李明吃了多少东西,不是吃饭的步骤,不是算法.(3)执行结果不确定,不是算法.(4)是求菱形面积的步骤,故是算法.答案:(1)(4),类型 二 用自然语言设计算法1.某地区规划道路建设,考虑道路铺设方案,方案设计图中,点表示城市,两点之间连线表示两城市间可铺设道路,连线上数据表示两城市间铺设道路的费用,要求从任一城市
10、都能到达其余各城市,并且铺设道路的总费用最小.例如:在三个城市道路设计中,若城市间可铺设道路的路线图如图1,则最优设计方案如图2,此时铺设道路的最小总费用为10.,现给出该地区可铺设道路的线路图如图3,请设计出花费最小的铺设道路的方法,最小总费用为.2.写出求1+2+3+4+5+6的一个算法.,【解题指南】1.七个点,要画出六条线,允许一对多,尽可能不选用花费大的路线,认真观察,选择,即可得到答案.2.可以按逐一相加的程序进行,或者根据题目特点,1+6=2+5=3+4=7,变成37.,【自主解答】1.花费最小的铺设道路的算法如下:第一步,从A到E.第二步,从E到F.第三步,从F到G.第四步,从
11、G到D,从G到C,再从C到B.总费用为2+3+1+2+3+5=16.答案:16,2.算法如下:算法1:第一步,计算1+2得到3.第二步,将第一步中的运算结果3与3相加得到6.第三步,将第二步中的运算结果6与4相加得到10.第四步,将第三步中的运算结果10与5相加得到15.第五步,将第四步中的运算结果15与6相加得到21.,算法2:第一步,将原式变形为(1+6)+(2+5)+(3+4)=37.第二步,计算37.第三步,输出运算结果.算法3:用S表示和数,i表示加数.第一步,使S=0.第二步,使i=1.第三步,使S=S+i.第四步,使i=i+1.第五步,若i6,则返回到第三步继续执行;否则算法结束
12、.,【延伸探究】题2若改为求1357911的值,写出其算法.【解析】算法1:第一步,先求13,得到结果3.第二步,将第一步所得结果3再乘以5,得到结果15.第三步,再将15乘以7,得到结果105.第四步,再将105乘以9,得到945.第五步,再将945乘以11,得到10395,即是最后结果.,算法2:用P表示被乘数,i表示乘数.第一步,使P=1.第二步,使i=3.第三步,使P=Pi.第四步,使i=i+2.第五步,若i11,则返回到第三步继续执行;否则算法结束.,【规律总结】1.写出一个算法的基本思路(1)写出的算法通常能解决一类问题(如一元二次方程求根公式),并能重复使用.(2)算法的过程要能
13、一步一步执行,每一步执行的操作必须明确,不能含糊不清,而且能在有限步内能得出结果.(3)算法要简洁,要清晰可读,不能繁杂.,2.带有循环特征算法的两个注意点(1)具有重复执行类型的各步可以设计为循环形式的算法.(2)循环类型的算法要设计好循环的过程和次数.,【变式训练】写出求 的一个算法.【解析】第一步,使S=1.第二步,使i=2.第三步,使n= .第四步,使S=S+n.第五步,使i=i+1.第六步,如果i100,则返回到第三步,否则输出S.,类型 三 利用算法思想解决应用问题1.一个笼子里有一些鸡和兔,现在知道里面一共有35个头,94只脚,在求鸡和兔各有多少只的算法中填空.第一步,设有x只鸡
14、,y只兔.第二步,列方程组:.第三步,解方程组求得:.第四步,答:笼子里有鸡23只,兔12只.,2.“水仙花数”是指一个三位数,它的各位数的立方和正好等于该数的本身.如:153=13+33+53.请设计算法找一个“水仙花数”.,【解题指南】1.理解题意,再根据算法的过程填空.2.利用“水仙花数”的特点设计算法.,【自主解答】1.根据鸡和兔的头数和一只鸡两条腿,一只兔子四条腿,可以列方程组 并求解得答案:,2.算法如下:第一步,取n=100.第二步,计算n的各位数的立方和是否等于n.如果是,则转到第四步;否则,转到第三步.第三步,将n在原来的基础上增加1,判断“n1000”是否成立.若是,则转到
15、第二步;否则,结束算法.第四步,输出n.,【规律总结】利用算法思想解决应用问题的两个关注点(1)算法思想是指一些问题的解决常常需要设计出一系列可以操作的步骤,只要按顺序执行这些步骤,就能完成任务,通常把解决这种问题的思想称为程序化思想或算法思想.(2)解决“鸡兔同笼”问题的算法步骤:“第一步,设.第二步,列.第三步,解.第四步,答.”这四个步骤构成了一般的列方程解应用题的算法.,【变式训练】现有三个油瓶子,分别能装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,此时A,B瓶中各有4kg油.,