1、算法与程序框图编稿:丁会敏审稿: 【学习目标】1.初步建立算法的概念; 2.让学生通过丰富的实例体会算法的思想;3.让学生通过对具体问题的探究,初步了解算法的含义;4.掌握程序框图的概念;5.会用通用的图形符号表示算法,掌握算法的三个基本逻辑结构;6.掌握画程序框图的基本规则,能正确画出程序框图.【要点梳理】【高清课堂:算法与程序框图 397425 知识讲解1】要点一、算法的概念1、算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等.在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必
2、须是明确和有效的,而且能够在有限步之内完成.2、算法的特征:(1)确定性:算法的每一步都应当做到准确无误、“不重不漏”.“不重”是指不是可有可无的、甚至无用的步骤,“不漏”是指缺少哪一步都无法完成任务.(2)逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣,分工明确,“前一步”是“后一步”的前提,“后一步”是“前一步”的继续.(3)有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制的持续进行.(4)不唯一性:求解某一个问题的算法不一定是唯一的,对于一个问题可以有不同的算法3、设计算法的要求(1)写出的算法,
3、必须能解决一类问题(如:判断一个整数35是否为质数;求任意一个方程的近似解),并且能够重复使用(2)要使算法尽量简单、步骤尽量少(3)要保证算法正确且计算机能够执行,如:让计算机计算12345是可以做到的4、算法的描述:(1)自然语言:自然语言就是人们日常使用的语言,可以是汉语、英语或数学语言等.用自然语言描述算法的优点是通俗易懂,当算法中的操作步骤都是顺序执行时比较容易理解.缺点是如果算法中包含判断和转向,并且操作步骤较多时,就不那么直观清晰了.(2)程序框图:所谓框图,就是指用规定的图形符号来描述算法,用框图描述算法具有直观、结构清晰、条理分明、通俗易懂、便于检查修改及交流等特点.(3)程
4、序语言:算法最终可以通过程序的形式编写出来,并在计算机上执行.要点诠释:算法的特点:思路简单清晰,叙述复杂,步骤繁琐,计算量大,完全依靠人力难以完成,而这些恰恰就是计算机的特长,它能不厌其烦地完成枯燥的、重复的繁琐的工作,正因为这些,现代算法的作用之一就是使计算机代替人完成某些工作,这也是我们学习算法的重要原因之一.事实上,算法中出现的程序只是用基本的语句把程序的主要结构描述出来,与真正的程序还有差距,所以算法描述的许多程序并不能直接运行,要运行程序,还要把程序按照某种语言的严格要求重新改写才行.【高清课堂:算法与程序框图 397425 知识讲解2】要点二、程序框图1、程序框图的概念:程序框图
5、又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形.2、构成程序框的图形符号及其作用程序框名称功能起止框表示一个算法的起始和结束,是任何算法程序框图不可缺少的.输入、输出框表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置.处理框赋值、计算.算法中处理数据需要的算式、公式等,它们分别写在不同的用以处理数据的处理框内.判断框判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时在出口处则标明“否”或“N”.流程线算法进行的前进方向以及先后顺序连结点连接另一页或另一部分的框图3、程序框图的构成一个程序框图包括以下几部分:实现不同算法功能的相对应的
6、程序框;带箭头的流程线;程序框内必要的说明文字.4、算法的三种基本逻辑结构(1)顺序结构顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的.它是由若干个依次执行的步骤组成的,它是任何一个算法都离不开的一种基本算法结构.见示意图和实例: 顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤.如在示意图中,A框和B框是依次执行的,只有在执行完A框指定的操作后,才能接着执行B框所指定的操作.(2)条件结构如下面图示中虚线框内是一个条件结构,此结构中含有一个判断框,算法执行到此判断给定的条件P是否成立,选择不同的执行框(A框、B框).无论P条
7、件是否成立,只能执行A框或B框之一,不可能既执行A框又执行B框,也不可能A框、B框都不执行.A框或B框中可以有一个是空的,即不执行任何操作.见示意图要点诠释:条件结构中的条件要准确,不能含混不清,要清楚在什么情况下需要作怎样的判断,用什么条件来区分(3)循环结构在一些算法中要求重复执行同一操作的结构称为循环结构.即从算法某处开始,按照一定条件重复执行某一处理过程.重复执行的处理步骤称为循环体.循环结构有两种形式:当型循环结构和直到型循环结构.当型循环结构,如左下图所示,它的功能是当给定的条件P成立时,执行A框,A框执行完毕后,返回来再判断条件P是否成立,如果仍然成立,返回来再执行A框,如此反复
8、执行A框,直到某一次返回来判断条件P不成立时为止,此时不再执行A框,离开循环结构,继续执行下面的框图.直到型循环结构,如右下图所示,它的功能是先执行重复执行的A框,然后判断给定的条件P是否成立,如果P仍然不成立,则返回来继续执行A框,再判断条件P是否成立,依次重复操作,直到某一次给定的判断条件P成立为止,此时不再返回来执行A框,离开循环结构,继续执行下面的框图.见示意图要点诠释:循环结构中使用什么样的条件控制循环的开始和结束,要清楚满足某个条件的变量的次数与循环次数的联系与区别.误区提醒1、框图中的流程线不能出现交叉的现象.若有交叉,则程序语句无法写出;2、各种框图有其固定的格式和作用,不要乱
9、用.如条件结构中不要忘了“是”与“否”,流程线不要忘记画箭头;3、条件分支结构的方向要准确;4、循环结构中,计数变量要赋初值,计数变量的自加不要忘记,自加多少不能弄错.另外计数变量一般只负责计数任务;5、循环结构中循环的次数要严格把握,区分“”与“”等.循环变量的取值与循环结构(当型与直到型)有关,需区分清楚.另外,同一问题用两种不同的结构解决时,其判断条件恰是相反的;6、程序框图不要出现死循环(无限步的循环).【典型例题】类型一:算法的概念例1(1)下列描述不能看作算法的是( ) A做米饭需要刷锅,淘米,添水,加热这些步骤 B洗衣机的使用说明书 C解方程2x2+x1=0 D利用公式S=r2,
10、计算半径为4的圆的面积,就是计算42 (2)下列关于算法的说法: 求解某一类问题的算法是唯一的;算法必须在有限步操作之后停止;算法的每一步操作必须是明确的,不能有歧义或模糊;算法执行后一定产生明确的结果 其中正确的有( )A1个 B2个 C3个 D4个【答案】(1)C (2)C 【解析】 (1)A、B、D都描述了解决问题的过程,可以看作算法而C只描述了一个事实,没说明怎么解决问题,不是算法(2)根据算法的特征可以知道,算法要有明确的开始与结束,每一步操作都必须是明确而有效的,必须在有限步内得到明确的结果,所以正确而解决某一类问题的算法不一定是唯一的,故错误【点评】算法一般是机械的,有时需要进行
11、大量的重复计算,只要按部就班去做,总能算出结果.通常把算法过程称为“数学机械化”,数学机械化的最大优点是它可以借助计算机来完成.实际上处理任何问题都需要算法,如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则;而国际象棋有国际象棋的棋谱、走法、胜负的评判准则;再比如申请出国有一系列的先后手续,购买物品也有相关的手续.举一反三: 【变式1】我们已学过的算法有求解一元二次方程的求根公式,加减消元法求二元一次方程组的解,二分法求出函数的零点等,对算法的描述有:对一类问题都有效;算法可执行的步骤必须是有限的;算法可以一步一步地进行,每一步都有确切的含义;是一种通法,只要按部就班地做,总能得到结果以上算
12、法的描述正确的有( ) A1个 B2个 C3个 D4个 【答案】D类型二:算法的描述例2写出求方程组的解的算法 【解析】 可利用消元法或代入法求解 算法一:第一步:2+,得到5x=144 第二步,解方程,可得x=2 第三步,将代入,可得2+y=2 第四步,解得y=4 第五步,得到方程组的解为 算法二:第一步,由式移项可以得到x=2y 第二步,把代入,得y=4 第三步,把代入,得x=2 第四步,得到方程组的解为【点评】 通过求解二元一次方程组可知,求解某个问题的算法不一定唯一对于具体的实例可以选择合适的算法,尽量做到“省时省力”,使所用的算法是最优算法举一反三: 【变式1】试描述求解三元一次方程
13、组的算法步骤【解析】算法1:第一步,+,得x=5 第二步,将分别代入式和式可得 第三步,得y=4 第四步,将代入可得 z=11 第五步,得到方程组的解为 算法2:第一步,+,得2xy=14 第二步,得xy=9 第三步,得x=5 第四步,将代入式,得y=4 第五步,将和代入式,得z=11 第六步,得到方程组的解为类型三:算法的设计【高清课堂:算法与程序框图 397425 算法中的例1】例3设计一个算法,从3个互不相等的数中选出最小的一个数,并用数学语言表达【解析】第一步:假定这3个数中第一个是“最小值”;第二步:将第二个数与“最小值”比较,如果它小于此“最小值”,那么就用这个数取代“最小值”;第
14、三步:再重复第二步,将第三个数与最小值比较,如果它小于此“最小值”,那么就用这个数取代“最小值”;第四步:此时的“最小值”就是三个数中的最小值,输出最小值 所谓的算法,就是解决该类问题的一般步骤.举一反三: 【变式1】一位商人有9枚银元,其中有1枚略轻的是假银元你能用天平(不用砝码)将假银元找出来吗? 【解析】第一步:任取2枚银元分别放在天平的两边,如果天平左右不平衡,则轻的一边就是假银元;如果天平平衡,则进行第二步 第二步:取下右边的银元放在一边,然后把剩余的7枚银元依次放在右边进行称量,直到天平不平衡,偏轻的那一边就是假银元(注意:算法不唯一)类型四:顺序结构的应用【高清课堂:算法与程序框
15、图 397425 程序框图中的例1】例4对于一个二次函数,求出顶点坐标【解析】算法步骤:S1 用户输入二次函数的系数a,b,c;S2 计算顶点坐标(赋值);S3 输出顶点坐标开始结束计算顶点坐标输出顶点坐标输入a,b,c的值算法框图: 举一反三:【变式1】已知x=40,y=3画出计算z=15x+8y的值的程序框图【答案】程序框图如下图所示 类型五:条件结构的应用例5已知函数,写出求该函数的函数值的算法,并画出程序框图【解析】 该函数是分段函数,因此当给出一个自变量x的值时,需先判断x的范围,然后确定利用哪一段的解析式求函数值画程序框图时,必须采用条件分支结构,因为函数解析式分了三段,所以需要两
16、个判断框,即进行两次判断算法如下:第一步,输入x 第二步,如果x0,那么使y=2x1,输出y;否则,执行第三步 第三步,如果0x1,那么使y=x2+1,输出y;否则,执行第四步第四步,y=x2+2x第五步,输出y程序框图如下图所示 【点评】 凡是必须先根据条件作出判断,然后再决定进行哪一个步骤的问题,在画程序框图时,必须引入判断框,采用条件结构而像本题求分段函数的函数值的程序框图的画法,如果是分两段的函数,只需引入一个判断框;如果是分三段的函数,需引入两个判断框;分四段的函数需引入三个判断框,依此类推判断框内的内容是没有固定顺序的举一反三: 【变式1】已知函数, 写出求函数的任一函数值的一个算
17、法并画出程序框图【解析】记y=f (x)算法:第一步:输入x第二步:如果x0,那么使y=1;如果x=0,那么使y=0;如果x0,那么使y=1第三步:输出函数值y程序框图如下图所示 【变式2】如果学生的成绩大于或等于60分,则输出“及格”,否则输出“不及格”.用程序框图表示这一算法过程.【答案】类型六:循环结构的应用例6设计一个计算1+3+5+7+999的值的算法,并画出程序框图【解析】 算法一:当型循环:第一步,令S=0,i=1第二步,若i999成立,则执行第三步;否则输出S,结束算法第三步,S=S+i第四步,i=i+2,返回第二步,程序框图如图(1) 算法二:直到型循环:第一步,令S=0,i
18、=1第二步,S=S+i第三步,i=i+2第四步,若i不大于999,转第二步;否则,输出S,结束算法程序框图如图1-1-8(2)【点评】 注意直到型循环和当型循环的区别直到型循环先执行i=i+2,再判断i999是否成立,若成立才输出S;而当型循环先判断i999是否成立,若成立,则执行i=i+2,直到条件i999不成立才结束循环,输出S举一反三:【变式1】已知函数下图表示的是给定x的值,求其对应的函数值y的程序框图,处应填写_;处应填写_【答案】;【解析】分段函数中x的范围对应程序框图中的判断条件,填;解析式对应赋值框的内容,填【变式2】画出计算的值的一个程序框图【解析】所求程序框图如下图所示类型
19、七:利用算法和程序框图解决实际问题例7北京获得了2008年第29届奥运会主办权你知道在申办奥运会的最后阶段,国际奥委会是如何通过投票决定主办权归属的吗? 对选出的5个申办城市进行表决的操作程序是:首先进行第一轮投票,如果有一个城市得票超过总票数的一半,那么该城市就获得主办权;如果所有申办城市得票数都不超过总票数的一半,则将得票最少的城市淘汰,然后重复上述过程,直到选出一个申办城市为止试画出该过程的程序框图 【解析】 本题为算法中与现实生活相联系的题目,从选举的方法看,应选择循环结构来描述算法 如图所示: 【点评】 解决与现实相关的问题时首先要理清题意,此循环结构中对用哪一个步骤控制循环,哪一个
20、步骤作为循环体,要有清晰的思路举一反三:【变式1】儿童乘坐火车时,若身高不超过1.1 m,则无需购票;若身高超过1.1 m,但不超过1.4 m,可买半票;若超过1.4 m,应买全票,请设计一个算法,并画出程序框图【解析】 根据题意,该题的算法中应用条件结构,首先以身高为标准,分成买和免票,在买票中再分出半票和全票买票的算法步骤如下:第一步:测量儿童身高h第二步:如果h1.1 m,那么免费乘车,否则若h1.4 m,则买半票,否则买全票程序框图如下图所示 【点评】本题的程序框图中有两个判断点,一个是以1.1 m为判断点,1.1 m把身高分为两段,在大于1.1 m的一段中,1.4 m又将其分两段,因此1.4 m这个判断是套在1.1 m的判断里的所以我们用到两个条件结构