1、第一章 1.1 算法与程序框图,1.1.1 算法的概念,学习目标 1.了解算法的含义. 2.了解算法的思想. 3.会用自然语言描述一些具体问题的算法,题型探究,问题导学,内容索引,当堂训练,问题导学,思考1,知识点一 算法的概念,有一碗酱油,一碗醋和一个空碗现要把两碗盛的物品交换过来,试用自然语言表述你的操作办法,先把醋倒入空碗,再把酱油倒入原来盛醋的碗,最后把倒入空碗中的醋倒入原来盛酱油的碗,就完成了交换,答案,思考2,某笑话有这样一个问题:把大象装进冰箱总共分几步?答案是分三步第一步:把冰箱门打开;第二步:把大象装进去;第三步:把冰箱门关上这是一个算法吗?,是,答案,梳理,算法概念,算术运
2、算,一定规则,明确,有限,计算机程序,思考1,知识点二 算法的特征,设想一下电脑程序需要计算无限多步,会怎么样?,若有无限步,必将陷入死循环,解决不了问题故算法必须在有限步内解决问题,答案,算法与一般意义上具体问题的解法的区别与联系是什么?,思考2,(1)它们之间是一般与特殊的关系,也是抽象与具体的关系 (2)要设计出解决一类问题的算法,可以借助于此类问题中的某一个问题的解决过程和思路进行设计,而此类问题中的任何一个具体问题都可以利用这类问题的一般算法来解决,答案,梳理,算法的五个特征 (1)有限性:一个算法的步骤是 的,它应在有限步操作之后停止 (2)确定性:算法中的每一步应该是 的,并且能
3、有效地执行且得到确定的结果,而不是模棱两可的 (3)逻辑性:算法从初始步骤开始,分为若干个明确的步骤,前一步是后一步的前提,只有完成前一步,才能进行下一步,而且每一步都是正确无误的,从而组成具有很强逻辑性的 ,有限,确定,步骤序列,(4)普遍性:一个确定的算法,应该能够解决一类问题 (5)不唯一性:求解某一个问题的算法不一定只有唯一的一个,也可以有不同的算法 特别提醒:判断一个问题是不是算法,关键是明确算法的含义及算法的特征,思考1,知识点三 算法的设计要求及描述,求解某一个问题的算法是不是唯一的?,解决一个问题的算法可以有多个,只是有优劣之分,结构简单,步骤少,速度快的算法就是好算法,答案,
4、任何问题都可以设计算法解决吗?,思考2,不可以,只有能按照一定规则解决的、明确的、有限的操作步骤的问题才可以设计算法,其他的问题一般是不可以的,答案,梳理,1.算法的设计要求 (1)写出的算法,必须能解决一类问题,并且能够重复使用. (2)要使算法尽量简单、通俗易懂. (3)要保证算法正确,且计算机能够执行.,2.算法的描述 描述算法可以有不同的方式,常用的有自然语言、框图(流程图)、程序设计语言等. (1)自然语言 自然语言就是人们日常使用的语言,可以是汉语、英语或数学语言等,用自然语言描述算法的优点是 ,当算法中的操作步骤按顺序执行时比较容易理解,缺点是如果算法中包含判断和转向,并且操作步
5、骤较多时,就不那么直观清晰了.,通俗易懂,(2)框图(流程图) 所谓框图,就是指用规定的 来描述算法(这在下一节中将学习).用框图描述算法,具有直观、结构清晰、条理分明、通俗易懂、便于检查、修改及交流等优点. (3)程序设计语言 算法可以通过程序语言编写出来,并在计算机上执行.程序设计语言可分为低级语言和高级语言,低级语言包括机器语言和汇编语言.,图形符号,题型探究,例1 下列描述不能看作算法的是 A.做米饭需要刷锅,淘米,添水,加热这些步骤 B.洗衣机的使用说明书 C.解方程2x2x10 D.利用公式Sr2,计算半径为4的圆的面积,就是计算42,答案,解析,类型一 算法概念理解,A、B、D都
6、描述了解决问题的过程,可以看作算法,而C只描述了一个事实,没说明怎么解决问题,不是算法.,算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或看成是设计好的、有限的、确切的计算序列,并且这样的步骤或序列能够解决某一类问题.,反思与感悟,跟踪训练1 下列关于算法的描述正确的是 A.算法与求解一个问题的方法相同 B.算法只能解决一个问题,不能重复使用 C.算法过程要一步一步执行,每步执行的操作必须确切 D.有的算法执行完后,可能无结果,答案,解析,算法与求解一个问题的方法既有区别又有联系,故A项不对; 算法能重复使用,故B项不对; 每个算法执行后必须有结果,故D项不对; 由算法的有序
7、性和确定性,可知C项正确.,例2 下面算法要解决的问题是_ _. S1 输入三个数,并分别用a、b、c表示. S2 比较a与b的大小,如果ab,则交换a与b的值. S3 比较a与c的大小,如果ac,则交换a与c的值. S4 比较b与c的大小,如果bb. 第三步运行后ac. 第四步运行后bc,所以abc. 第五步运行后,显示a、b、c的值,且从大到小排列.,一个算法的作用往往并不显而易见,这需要我们结合具体数值去执行一下才知道.,反思与感悟,跟踪训练2 下面给出了一个问题的算法: S1 输入a. S2 若a4,则执行第三步,否则执行第四步. S3 输出2a1. S4 输出a22a3. 这个算法解
8、决的问题是_ _.,时的函数值f(a),答案,如图,先给r1,r2,h赋值,计算l,再根据圆台表面积公式S表r r (r1r2)l计算S表,然后输出结果. S1 令r12,r24,h4.S4 输出运算结果.,命题角度1 直接应用数学公式设计算法 例3 有一个两底面半径分别为2和4,高为4的圆台,写出求该圆台表面积的算法.,类型三 算法的步骤设计,解答,利用公式解决问题时,必须先求出公式中的各个量,在设计算法时,应优先考虑未知量的求法.,反思与感悟,跟踪训练3 已知一个等边三角形的周长为a,求这个三角形的面积.设计一个算法解决这个问题.,解答,S1 输入a的值.S4 输出S的值.,S1 输入xa
9、. S2 若a2,则执行第三步;若a2,则执行第四步. S3 输出f(a)a2a1. S4 输出f(a)a1.,命题角度2 函数求值问题的算法设计例4 已知函数f(x) 设计一个算法求函数的任一函数值.,解答,首先结合函数的表达式的特征,然后选择恰当的算法语言进行描述.,反思与感悟,跟踪训练4 已知函数f(x)|x2|1, 设计一个算法求函数的任一函数值.,解答,S1 输入xa. S2 若a2,则执行第三步,否则执行第四步. S3 输出f(a)3a. S4 输出f(a)a1.,S1 先假定这些正整数中的第一个数为“最大数”. S2 将这些正整数中的下一个数与“最大数”比较.如果它大于此“最大数
10、”,那么就假定它是“最大数”. S3 如果还有其他正整数,那么重复第二步. S4 一直到没有可比较的数为止,这时假定的“最大数”就是这有限个正整数中的最大数.,命题角度3 非数值性计算问题的算法 例5 现有有限个正整数,试设计一个求这些正整数中的最大数的算法.,解答,首先认真分析问题,找到解决此类问题的一般方法.然后,再将解决该类问题划分为若干个先后可执行的步骤,最后用简炼的语言表达出来.,反思与感悟,跟踪训练5 已知一个三角形的三边边长分别为2,3,4,设计一个算法,求出它的面积.,解答,S1 令a2,b3,c4.S4 输出S.,当堂训练,1.下列关于算法的说法正确的是 A.一个算法的步骤是
11、可逆的 B.描述算法可以有不同的方式 C.算法可以看成是按照要求设计好的、有限的、确切的计算序列,并且这样的步骤或序列只能解决当前问题 D.算法只能用一种方式显示,2,3,4,5,1,由算法的定义知A、C、D错.,答案,解析,2.计算下列各式中S的值,能设计算法求解的是,由算法的有限性知不能设计算法求解,都能通过有限步输出确定结果.,答案,解析,A. B. C. D.,2,3,4,5,1,2,3,4,5,1,3.已知一个学生的语文成绩为89分,数学成绩为96分,外语成绩为99分.求他的总分和平均分的一个算法为 S1 取A89,B96,C99. S2 _.S3 _. S4 输出计算的结果.,答案
12、,计算总分DABC,2,3,4,5,1,4.求过P(a1,b1),Q(a2,b2)两点的直线的斜率有如下的算法,请在横线上填上适当步骤. S1 令x1a1,y1b1,x2a2,y2b2. S2 判断“x1x2”是否成立.若是,则输出“斜率不存在”;否则,执行第三步.S3 _. S4 输出k.,由题意可知,“第三步”应根据直线斜率公式计算斜率k的值.,答案,解析,2,3,4,5,1,解答,规律与方法,1.算法的特点:有限性、确定性、逻辑性、不唯一性、普遍性. 2.算法设计的要求: (1)写出的算法必须能够解决一类问题(如判断一个整数是否为质数,求任意一个方程的近似解等),并且能够重复使用. (2)要使算法尽量简单,步骤尽量少. (3)要保证算法正确,且算法步骤能够一步一步执行,每步执行的操作必须确切,不能含混不清,而且在有限步后能得到结果.,本课结束,