算法的含义、程序框图
- 格式:doc
- 大小:112.00 KB
- 文档页数:13
高考总复习:算法与程序框图【考纲要求】1.算法的含义、程序框图(1)了解算法的含义,了解算法的思想;(2)理解程序框图的三种基本逻辑结构:顺序、条件、循环。
2.基本算法语句理解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句的含义。
【知识网络】【考点梳理】考点一、算法1.算法的概念(1)古代定义:指的是用阿拉伯数字进行算术运算的过程。
(2)现代定义:算法通常是指按照一定规则解决某一类问题的明确和有限的步骤。
(3)应用:算法通常可以编成计算机程序,让计算机执行并解决问题。
2.算法的特征:①指向性:能解决某一个或某一类问题;②精确性:每一步操作的内容和顺序必须是明确的;算法的每一步都应当做到准确无误,从开始的“第一步”直到“最后一步”之间做到环环相扣,分工明确.“前一步”是“后一步”的前提,“后一步”是“前一步”的继续.③有限性:必须在有限步内结束并返回一个结果;算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制的持续进行.④构造性:一个问题可以构造多个算法,算法有优劣之分。
3.算法的表示方法:(1) 用自然语言表示算法: 优点是使用日常用语, 通俗易懂;缺点是文字冗长, 容易出现歧义;(2) 用程序框图表示算法:用图框表示各种操作,优点是直观形象, 易于理解。
要点诠释:泛泛地谈算法是没有意义的,算法一定以问题为载体。
考点二:程序框图1. 程序框图的概念:程序框图又称流程图,是最常用的一种表示法,它是描述计算机一步一步完成任务的图表,直观地描述程序执行的控制流程,最便于初学者掌握。
2.程序框图常用符号:连接点用于连接另一页或另一部分的框图注释框框中内容是对某部分流程图做的解释说明3.画程序框图的规则:(1)使用标准的框图的符号;(2)框图一般按从上到下、从左到右的方向画;(3)除判断框图外,大多数框图符号只有一个进入点和一个退出点。
算法与程序框图一、基础知识1.算法(1)算法通常是指按照一定规则解决某一类问题的明确和有限的步骤. (2)应用:算法通常可以编成计算机程序,让计算机执行并解决问题. 2.程序框图程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形. 3.三种基本逻辑结构 (1)顺序结构(2)条件结构(3)循环结构三种基本逻辑结构的适用情境(1)顺序结构:要解决的问题不需要分类讨论. (2)条件结构:要解决的问题需要分类讨论.(3)循环结构:要解决的问题要进行许多重复的步骤,且这些步骤之间有相同的规律.考点一 顺序结构和条件结构[例1] (2019·沈阳质检)已知一个算法的程序框图如图所示,当输出的结果为0时,输入的实数x 的值为( )A .-3B .-3或9C .3或-9D .-3或-9[解析] 当x ≤0时,y =⎝⎛⎭⎫12x -8=0,x =-3;当x >0时,y =2-log 3x =0,x =9.故x =-3或x =9,选B.[答案] B[例2] 某程序框图如图所示,现输入如下四个函数,则可以输出的函数为( )A .f (x )=cos x x ⎝⎛⎭⎫-π2<x <π2,且x ≠0 B .f (x )=2x -12x +1C .f (x )=|x |xD .f (x )=x 2ln(x 2+1)[解析] 由程序框图知该程序输出的是存在零点的奇函数,选项A 、C 中的函数虽然是奇函数,但在给定区间上不存在零点,故排除A 、C.选项D 中的函数是偶函数,故排除D.选B.[答案] B[解题技法] 顺序结构和条件结构的运算方法(1)顺序结构是最简单的算法结构,语句与语句之间、框与框之间是按从上到下的顺序进行的.解决此类问题,只需分清运算步骤,赋值量及其范围进行逐步运算即可.(2)条件结构中条件的判断关键是明确条件结构的功能,然后根据“是”的分支成立的条件进行判断.(3)对于条件结构,无论判断框中的条件是否成立,都只能执行两个分支中的一个,不能同时执行两个分支.[题组训练]1.半径为r 的圆的面积公式为S =πr 2,当r =5时,计算面积的流程图为( )解析:选D 因为输入和输出框是平行四边形,故计算面积的流程图为D. 2.运行如图所示的程序框图,可输出B =______,C =______.解析:若直线x+By+C=0与直线x+3y-2=0平行,则B=3,且C≠-2,若直线x+3y+C=0与圆x2+y2=1相切,则|C|12+(3)2=1,解得C=±2,又C≠-2,所以C=2.答案:3 2考点二循环结构考法(一)由程序框图求输出(输入)结果[例1](2018·天津高考)阅读如图所示的程序框图,运行相应的程序,若输入N的值为20,则输出T的值为()A.1B.2C.3 D.4[解析]输入N的值为20,第一次执行条件语句,N=20,i =2,Ni =10是整数,∴T =0+1=1,i =3<5;第二次执行条件语句,N =20,i =3,N i =203不是整数,∴i =4<5;第三次执行条件语句,N =20,i =4,Ni =5是整数,∴T =1+1=2,i =5,此时i ≥5成立,∴输出T =2. [答案] B[例2] (2019·安徽知名示范高中联考)执行如图所示的程序框图,如果输出的n =2,那么输入的 a 的值可以为( )A .4B .5C .6D .7[解析] 执行程序框图,输入a ,P =0,Q =1,n =0,此时P ≤Q 成立,P =1,Q =3,n =1,此时P ≤Q 成立,P =1+a ,Q =7,n =2.因为输出的n 的值为2,所以应该退出循环,即P >Q ,所以1+a >7,结合选项,可知a 的值可以为7,故选D.[答案] D[解题技法] 循环结构的一般思维分析过程 (1)分析进入或退出循环体的条件,确定循环次数.(2)结合初始条件和输出结果,分析控制循环的变量应满足的条件或累加、累乘的变量的表达式.(3)辨析循环结构的功能. 考法(二) 完善程序框图[例1] (2018·武昌调研考试)执行如图所示的程序框图,如果输入的a 依次为2,2,5时,输出的s 为17,那么在判断框中可以填入( )A .k <n?B .k >n?C .k ≥n?D .k ≤n?[解析] 执行程序框图,输入的a =2,s =0×2+2=2,k =1;输入的a =2,s =2×2+2=6,k =2;输入的a =5,s =2×6+5=17,k =3,此时结束循环,又n =2,所以判断框中可以填“k >n ?”,故选B.[答案] B[例2] (2018·全国卷Ⅱ)为计算S =1-12+13-14+…+199-1100,设计了如图所示的程序框图,则在空白框中应填入( )A .i =i +1B .i =i +2C .i =i +3D .i =i +4[解析] 由题意可将S 变形为S =⎝⎛⎭⎫1+13+…+199-⎝⎛⎭⎫12+14+…+1100,则由S =N -T ,得N =1+13+…+199,T =12+14+…+1100.据此,结合N =N +1i ,T =T +1i +1易知在空白框中应填入i =i +2.故选B.[答案] B[解题技法] 程序框图完善问题的求解方法(1)先假设参数的判断条件满足或不满足;(2)运行循环结构,一直到运行结果与题目要求的输出结果相同为止; (3)根据此时各个变量的值,补全程序框图.[题组训练]1.(2018·凉山质检)执行如图所示的程序框图,设输出的数据构成的集合为A ,从集合A 中任取一个元素a ,则函数y =x a ,x ∈[0,+∞)是增函数的概率为( )A.47B.45C.35D.34解析:选C 执行程序框图,x =-3,y =3;x =-2,y =0;x =-1,y =-1;x =0,y =0;x =1,y =3;x =2,y =8;x =3,y =15;x =4,退出循环.则集合A 中的元素有-1,0,3,8,15,共5个,若函数y =x a ,x ∈[0,+∞)为增函数,则a >0,所以所求的概率为35.2.(2019·珠海三校联考)执行如图所示的程序框图,若输出的n 的值为4,则p 的取值范围是( )A.⎝⎛⎦⎤34,78B.⎝⎛⎭⎫516,+∞C.⎣⎡⎭⎫516,78D.⎝⎛⎦⎤516,78解析:选A S =0,n =1;S =12,n =2;S =12+122=34,n =3;满足条件,所以p >34,继续执行循环体;S =34+123=78,n =4;不满足条件,所以p ≤78.输出的n 的值为4,所以34<p ≤78,故选A.3.(2019·贵阳适应性考试)某程序框图如图所示,若该程序运行后输出的值是137,则整数a 的值为( )A .6B .7C .8D .9解析:选A 先不管a 的取值,直接运行程序.首先给变量S ,k 赋值,S =1,k =1,执行S =S +1k (k +1),得S =1+11×2,k =2;执行S =1+11×2+12×3,k =3;……继续执行,得S =1+11×2+12×3+…+1k (k +1)=1+⎝⎛⎭⎫1-12+⎝⎛⎭⎫12-13+…+⎝⎛⎭⎫1k -1k +1=2-1k +1,由2-1k +1=137得k =6,所以整数a =6,故选A.考点三 基本算法语句[典例] 执行如图程序语句,输入a =2cos 2 019π3,b =2tan 2 019π4,则输出y 的值是( )A .3B .4C .6D .-1[解析] 根据条件语句可知程序运行后是计算y =⎩⎪⎨⎪⎧a (a +b ),a <b ,a 2-b ,a ≥b ,且a =2cos 2 019π3=2cos π=-2,b =2tan 2 019π4=2tan 3π4=-2.因为a ≥b ,所以y =a 2-b =(-2)2-(-2)=6, 即输出y 的值是6. [答案] C[变透练清]1. 执行如图所示的程序,输出的结果是________.i =11S =1DOS =S*ii =i -1LOOP UNTIL i<9PRINT S END解析:程序反映出的算法过程为 i =11⇒S =11×1,i =10; i =10⇒S =11×10,i =9; i =9⇒S =11×10×9,i =8;i =8<9退出循环,执行“PRINT S ”. 故S =990. 答案:9902.阅读如图所示的程序.a 的值是________. 解析:由题意可得程序的功能是计算并输出a =⎩⎪⎨⎪⎧2+a ,a >2,a ×a ,a ≤2的值, 当a >2时,由2+a =9得a =7; 当a ≤2时,由a 2=9得a =-3, 综上知,a =7或a =-3. 答案:-3或7[课时跟踪检测]1.(2019·湖北八校联考)对任意非零实数a ,b ,定义a *b 的运算原理如图所示,则(log222)*⎝⎛⎭⎫18-23=( )A .1B .2C .3D .4解析:选A 因为log222=3,⎝⎛⎭⎫18-23=4,3<4,所以输出4-13=1,故选A. 2.执行如图所示的程序框图,则输出的x ,y 分别为( )A .90,86B .94,82C .98,78D .102,74解析:选C 第一次执行循环体,y =90,s =867+15,不满足退出循环的条件,故x =90;第二次执行循环体,y =86,s =907+433,不满足退出循环的条件,故x =94;第三次执行循环体,y =82,s =947+413,不满足退出循环的条件,故x =98;第四次执行循环体,y =78,s =27,满足退出循环的条件,故x =98,y =78.3.(2018·云南民族大学附属中学二模)执行如图所示的程序框图,若输出的k 的值为6,则判断框内可填入的条件是( )A .s >12?B .s >710?C .s >35?D .s >45?解析:选B s =1,k =9,满足条件;s =910,k =8,满足条件;s =45,k =7,满足条件;s =710,k =6,不满足条件.输出的k =6,所以判断框内可填入的条件是“s >710?”.故选B.4.(2019·合肥质检)执行如图所示的程序框图,如果输出的k 的值为3,则输入的a 的值可以是( )A .20B .21C .22D .23解析:选A 根据程序框图可知,若输出的k =3,则此时程序框图中的循环结构执行了3次,执行第1次时,S =2×0+3=3,执行第2次时,S =2×3+3=9,执行第3次时,S =2×9+3=21,因此符合题意的实数a 的取值范围是9≤a <21,故选A.5.(2019·重庆质检)执行如图所示的程序框图,如果输入的x =0,y =-1,n =1,则输出x ,y 的值满足( )A .y =-2xB .y =-3xC .y =-4xD .y =-8x解析:选C 初始值x =0,y =-1,n =1,x =0,y =-1,x 2+y 2<36,n =2,x =12,y=-2,x 2+y 2<36,n =3,x =32,y =-6,x 2+y 2>36,退出循环,输出x =32,y =-6,此时x ,y 满足y =-4x ,故选C.6.(2018·南宁二中、柳州高中联考)执行如图所示的程序框图,若输出的结果s =132,则判断框中可以填( )A.i≥10? B.i≥11?C.i≤11? D.i≥12?解析:选B执行程序框图,i=12,s=1;s=12×1=12,i=11;s=12×11=132,i =10.此时输出的s=132,则判断框中可以填“i≥11?”.7.(2019·漳州八校联考)执行如图所示的程序,若输出的y的值为1,则输入的x的值为() INPUT xIF x>=1THENy=x2ELSEy=-x2+1END IFPRINT yENDA.0 B.1C.0或1 D.-1,0或1解析:选C当x≥1时,由x2=1得x=1或x=-1(舍去);当x<1时,由-x2+1=1得x=0.∴输入的x的值为0或1.)8.执行如图所示的程序框图,若输入的n=4,则输出的s=(C.20 D.35解析:选C执行程序框图,第一次循环,得s=4,i=2;第二次循环,得s =10,i =3; 第三次循环,得s =16,i =4; 第四次循环,得s =20,i =5.不满足i ≤n ,退出循环,输出的s =20.9.(2018·洛阳第一次统考)已知某算法的程序框图如图所示,则该算法的功能是( )A .求首项为1,公差为2的等差数列的前2 018项和B .求首项为1,公差为2的等差数列的前2 019项和C .求首项为1,公差为4的等差数列的前1 009项和D .求首项为1,公差为4的等差数列的前1 010项和解析:选D 由程序框图得,输出的S =(2×1-1)+(2×3-1)+(2×5-1)+…+(2×2 019-1),可看作数列{2n -1}的前2 019项中所有奇数项的和,即首项为1,公差为4的等差数列的前1 010项和.故选D.10.(2018·郑州第一次质量测试)执行如图所示的程序框图,若输出的结果是7,则判断框内m 的取值范围是( )A .(30,42]B .(30,42)C .(42,56]D .(42,56)解析:选A k =1,S =2,k =2;S =2+4=6,k =3;S =6+6=12,k =4;S =12+8=20,k =5;S =20+10=30,k =6;S =30+12=42,k =7,此时不满足S =42<m ,退出循环,所以30<m ≤42,故选A.11.(2019·石家庄调研)20世纪70年代,流行一种游戏——角谷猜想,规则如下:任意写出一个自然数n ,按照以下的规律进行变换,如果n 是奇数,则下一步变成3n +1;如果n 是偶数,则下一步变成n2.这种游戏的魅力在于无论你写出一个多么庞大的数字,最后必然会落在谷底,更准确地说是落入底部的4-2-1循环,而永远也跳不出这个圈子,下列程序框图就是根据这个游戏而设计的,如果输出的i 值为6,则输入的n 值为( )A .5或16B .16C .5或32D .4或5或32解析:选C 若n =5,执行程序框图,n =16,i =2;n =8,i =3;n =4,i =4;n =2,i =5;n =1,i =6,结束循环,输出的i =6.若n =32,执行程序框图,n =16,i =2;n =8,i =3;n =4,i =4;n =2,i =5;n =1,i =6,结束循环,输出的i =6.当n =4或16时,检验可知不正确,故输入的n =5或32,故选C.12.(2018·贵阳第一学期检测)我国明朝数学家程大位著的《算法统宗》里有一道闻名世界的题目:“一百馒头一百僧,大僧三个更无争.小僧三人分一个,大小和尚各几丁?”如图所示的程序框图反映了对此题的一个求解算法,则输出的n 的值为( )A .20B .25C .30D .35解析:选B 法一:执行程序框图,n =20,m =80,S =60+803=8623≠100;n =21,m =79,S =63+793=8913≠100;n =22,m =78,S =66+783=92≠100;n =23,m =77,S =69+773=9423≠100;n =24,m =76,S =72+763=9713≠100;n =25,m =75,S =75+753=100,退出循环.所以输出的n =25.法二:设大和尚有x 个,小和尚有y 个, 则⎩⎪⎨⎪⎧x +y =100,3x +13y =100,解得⎩⎪⎨⎪⎧x =25,y =75, 根据程序框图可知,n 的值即大和尚的人数,所以n =25.13.已知函数y =lg|x -3|,如图所示程序框图表示的是给定x 值,求其相应函数值y 的算法.请将该程序框图补充完整.其中①处应填________,②处应填________.解析:由y =lg|x -3|=⎩⎪⎨⎪⎧lg (x -3),x >3,lg (3-x ),x <3及程序框图知,①处应填x <3?,②处应填y=lg(x -3).答案:x <3? y =lg(x -3)14.执行如图所示的程序框图,若输入的N =20,则输出的S =________.解析:依题意,结合题中的程序框图知,当输入的N =20时,输出S 的值是数列{2k -1}的前19项和,即19(1+37)2=361.答案:36115.执行如图所示的程序框图,则输出的λ是________.解析:依题意,若λa +b 与b 垂直,则有(λa +b )·b =4(λ+4)-2(-3λ-2)=0,解得λ=-2;若λa +b 与b 平行,则有-2(λ+4)=4(-3λ-2),解得λ=0.结合题中的程序框图可知,输出的λ是-2.答案:-216.执行如图所示的程序框图,如果输入的x ,y ∈R ,那么输出的S 的最大值为________.解析:当条件x ≥0,y ≥0,x +y ≤1不成立时,输出S 的值为1,当条件x ≥0,y ≥0,x +y ≤1成立时,输出S =2x +y ,下面用线性规划的方法求此时S 的最大值.作出不等式组⎩⎪⎨⎪⎧x ≥0,y ≥0,x +y ≤1表示的平面区域如图中阴影部分所示,由图可知当直线S =2x +y 经过点M (1,0)时S 最大,其最大值为2×1+0=2,故输出S 的最大值为2.答案:2。
第一章1.1算法与程序边框图1.算法的概念(1)算法概念的理解①算法是指可以用计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.②算法与一般意义上具体问题的解法既有联系,又有区别,它们之间是一般和特殊的关系,也是抽象与具体的关系.算法的获得要借助一般意义上具体问题的求解方法,而任何一个具体问题都可以利用这类问题的一般算法来解决.③算法一方面具有具体化、程序化、机械化的特点,同时又有高度的抽象性、概括性、精确性,所以算法在解决问题中更具有条理性、逻辑性的特点.(2)算法的四个特征:概括性、逻辑性、有穷性、不唯一性①概括性:写出的算法必须能解决某一类问题,并且能够重复使用.②逻辑性:算法从初始步骤开始,分为若干明确的步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,而且每一步都是正确无误的,从而组成了一个有着很强逻辑性的步骤序列.③有穷性:算法有一个清晰的起始步,终止步是表示问题得到解答或指出问题没有解答,所有序列必须在有限个步骤之内完成,不能无停止地执行下去.④不唯一性:求解某一个问题的算法不一定只有唯一的一个,可以有不同的算法,当然这些算法有简繁之分、优劣之别.(3)常见的算法类型①数值性计算问题.如:解方程(或方程组)、解不等式(或不等式组)、利用公式求值、累加或累乘等问题,可通过相应的数学模型借助一般的数学计算方法,分解成清晰的步骤,使之条理化.②非数值性计算问题.如:判断、排序、变量变换等需先建立过程模型,再通过模型进行算法设计与描述.注意:(ⅰ)注意算法与解法的区别:算法是解决一类问题所需要的程序或步骤的统称;而解法是解决某一个具体问题的过程或步骤,是具体的解题过程.(ⅱ)设计算法时要尽量选取简捷、快速、高效的解决问题的算法.对一个具体的问题,我们要对解决问题的途径进行透彻的研究,找出最优算法,做到“先思考后处理”.2.程序框图(1)程序框图又称为流程图,是一种用程序框、流程线及文字说明来准确、直观地表示算法的图形.(2)用程序框图表示算法,具有直观、形象的特点,能更清楚地展现算法的逻辑结构.(3)程序框图主要由程序框和流程线组成.基本的程序框有终端框、输入框、输出框、处理框、判断框,其中终端框是任何流程图不可缺少的,而输入、输出可以用在算法中任何需要输入、输出的位置.(4)画程序框图的规则①使用标准的框图符号;②框图一般按从上到下、从左到右的方向画;③终端框(起止框)是任何程序框图必不可缺少的,表示程序的开始和结束;④除判断框外,大多数程序框图符号只有一个进入点和一个退出点,判断框是具有超过一个退出点的唯一符号;⑤程序框图符号框内的文字要简洁精炼.注意:(ⅰ)每一种程序框图的图形符号都有特定的含义,在画程序框图时不能混用,并且所用图形符号一定要标准规范,起始框只有一条流出线(没有流入线),终止框只有一条流入线(没有流出线),输入、输出框只有一条流入线和一条流出线,判断框有一条流入线和两条流出线.(ⅱ)如果一个程序框图由于纸面等原因需要分开画,要在断开处画上连接点,并标出连接的号码.(ⅲ)判断框是“是”与“否”两分支的判断,有且仅有两个结果.(ⅳ)一般地,画程序框图时,先用自然语言编写算法,然后再画程序框图.3.算法的三种基本结构(1)顺序结构:顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的基本结构,其基本结构形式如图所示,其中A、B两框所指定的操作是依次执行的.顺序结构中所表达的逻辑关系是自然串行、上下连贯、线性排列的.(2)条件结构:先根据条件作出判断,再决定执行哪一种操作的结构就称为条件结构.条件结构用于进行逻辑判断,并根据判断的结果进行不同的处理.条件结构必含判断框.条件结构的结构形式如图2所示,此结构中包含一个判断框,算法执行到此判断框给定的条件P时,根据条件P是否成立选择不同的执行框(A框或B框).注意:无论P是否成立,下一步只能执行A框或B框之一,不能A框和B框同时执行,也不能A、B两框都不执行,但A框和B框中可以有一个是空的,如图3.(3)循环结构:根据条件是否成立,以决定是否重复执行某些操作,在算法中要求重复执行同一操作的结构称为循环结构,重复执行的处理步骤称为循环体.根据执行情况及循环结束条件的不同可以分为当型循环(WHILE型)和直到型循环(UNTIL型).当型循环的特点是“先判断,后执行”,即先判断条件,当条件满足时,反复执行循环体,当条件不满足时退出循环(也就是说直到条件不满足时退出循环).如图4.直到型循环的特点是先执行一次循环体,再判断条件,当条件不满足时执行循环体,当条件满足时退出循环(即直到条件满足时退出循环),即“先执行,后判断”.如图5.当型循环可能一次也不执行循环体,而直到型循环至少要执行一次循环体.当型循环与直到型循环可以相互转化,条件互补.循环结构中常用的变量有计数变量、累加变量及累乘变量.计数变量用来记录某个事件发生的次数(即执行循环体的次数),累加变量用来计算数据之和,累乘变量用来计算数据之积.对于这些变量,开始一般要先赋初值,一般地,计数变量初值可设为0或1,累加变量初值设为0,累乘变量初值设为1.注意:(ⅰ)正确理解顺序结构的特点及适用条件是作出顺序结构图的关键.(ⅱ)画条件结构的程序框图要用到判断框,判断框有两个出口,根据不同的条件输出不同的信息,这些不同的信息必须全部写出.(ⅲ)只有有规律的,能重复进行的算法过程才能用循环结构.题型一算法设计写出能找出a 、b 、c 三个数中最小值的一个算法.解 第一步:输入a 、b 、c .并且假定min =a ;第二步:若b <min 成立,则用b 的值替换min ;否则直接执行下一步;第三步:若c <min 成立,则用c 的值替换min ,否则直接执行下一步;第四步:输出min 的值,结束.点评 本题的思路是:将min 定义为最小值,并把a 的值赋给min ,然后依次与b 、c 比较大小,遇到小的就替换min 的值,最后输出min 的值,这种方法可以推广到从多个不同的数中找出最大或最小的一个.题型二 条件结构的程序框图已知函数y =⎩⎪⎨⎪⎧ -1 (x >0),0 (x =0),1 (x <0).写出求该函数值的算法及程序框图.解 算法如下:第一步:输入x ;第二步:如果x >0,那么使y =-1,如果x =0,那么使y =0,如果x <0,那么使y =1; 第三步:输出函数值y .程序框图如图所示.点评 该函数是分段函数,当x 取不同范围内的值时,函数的表达式不同,因此当给出一个自变量x 的值时,也必须先判断x 的范围,然后确定利用哪一段的表达式求函数值,因为函数分了三段,所以判断框需要两个,即进行两次判断.求分段函数的函数值的程序框图,如果是分两段的函数只需引入一个判断框,如果是分三段的函数,至少需要引入两个判断框,分四段的函数要引入三个判断框,以此类推,至于判断框内的内容是没有顺序的,比如:本题中的两个判断框内的内容可以交换,但对应的下一图框中的内容或操作也必须相应地进行变化,比如本题的程序框图也可以画成如图1所示或如图2所示.图1图2题型三循环结构的程序框图看下面的问题:1+2+3+…+()>10 000,这个问题的答案不唯一,我们只要确定出满足条件的最小正整数n0,括号内填写的数只要大于或等于n0即可.试写出满足条件的最小正整数n0的算法并画出相应的程序框图.解算法如下:第一步:p=0;第二步:i=0;第三步:i=i+1;第四步:p=p+i;第五步:如果p>10 000,则输出i,算法结束.否则,执行第六步;第六步:回到第三步,重新执行第三步、第四步和第五步.该算法的程序框图如图所示.点评本题属于累加问题,代表了一类相邻两数的差为常数的求和问题的解法,需引入计数变量和累加变量,应用循环结构解决问题.在设计算法时前后两个加数相差1,则i=i +1,若相差2,则i=i+2,要灵活改变算法中的相应部分.另外需注意判断框内的条件的正确写出,直到型和当型循环条件不同,本题解法用的是直到型循环,用当型循环结构时判断框内条件应为p≤10 000.如图所示.题型四程序框图在生活中的应用72,91,58,63,84,88,90,55,61,73,64,77,82,94,60.要求将80分以上的同学的平均分求出来.画出程序框图.解用条件分支结构来判断成绩是否高于80分,用循环结构控制输入的次数,同时引进两个累加变量,分别计算高于80分的成绩的总和和人数.程序框图如图所示.构和循环结构相结合的算法.【例1】如图所示是某一算法的程序框图,根据该框图指出这一算法的功能.错解 求S =12+14+16+…+110的值. 错解辨析 本题忽略了计数变量与循环次数,没有明确循环体在循环结构中的作用,以及循环终止条件决定是否继续执行循环体.正解 在该程序框图中,S 与n 为两个累加变量,k 为计数变量,所以该算法的功能是求12+14+16+…+120的值. 【例2】 试设计一个求1×2×3×4×…×n 的值的程序框图.错解 程序框图如图所示.错解辨析 本题程序框图看似当型循环结构,我们应当注意的是,当型循环结构是当条件满足时执行循环体,而本题显然是误解了当型循环结构条件.正解 程序框图如图所示.乘变量t和计数变量i,这里t与i每一次循环,它们的值都在改变.1.(海南、宁夏高考)如果执行下面的程序框图,那么输出的S为()A.2 450 B.2 500 C.2 550 D.2 652答案 C解析当k=1,S=0+2×1;当k=2,S=0+2×1+2×2;当k=3,S=0+2×1+2×2+2×3;…当k=50,S=0+2×1+2×2+2×3+…+2×50=2 550.2.(济宁模拟)在如图的程序框图中,输出结果是()A.5 B.6C.13 D.10答案 D解析a=5时,S=1+5=6;a=4时,S=6+4=10;a=3时,终止循环,输出S=10.3.(广东高考)阅读下图的程序框图.若输入m=4,n=6,则输出a=________,i=________.答案12 3解析输入m=4,n=6,则i=1时,a=m×i=4,n不能整除4;i=2时,a=m×i=8,n不能整除8;i=3时,a=m×i=12,6能整除12.∴a=12,i=3.一、选择题1.一个完整的程序框图至少包含()A.终端框和输入、输出框B.终端框和处理框C.终端框和判断框D.终端框、处理框和输入、输出框答案 A解析一个完整的程序框图至少需包括终端框和输入、输出框.2.下列关于条件结构的说法中正确的是()A.条件结构的程序框图有一个入口和两个出口B.无论条件结构中的条件是否满足,都只能执行两条路径之一C .条件结构中的两条路径可以同时执行D .对于一个算法来说,判断框中的条件是惟一的答案 B解析 由条件结构可知:根据所给条件是否成立,只能执行两条途径之一.3.下列问题的算法适宜用条件结构表示的是( )A .求点P (-1,3)到直线l :3x -2y +1=0的距离B .由直角三角形的两条直角边求斜边C .解不等式ax +b >0 (a ≠0)D .计算100个数的平均数答案 C解析 条件结构是处理逻辑判断并根据判断进行不同处理的结构.只有C 中含有判断a 的符号,其余选项都不含逻辑判断.4.下列程序框图表示的算法是( )A .输出c ,b ,aB .输出最大值C .输出最小值D .比较a ,b ,c 的大小答案 B解析 根据流程图可知,此图应表示求三个数中的最大数.5.用二分法求方程的近似根,精确度为δ,用直到型循环结构的终止条件是( )A .|x 1-x 2|>δB .|x 1-x 2|<δC .x 1<δ<x 2D .x 1=x 2=δ答案 B解析 直到型循环结构是先执行、再判断、再循环,是当条件满足时循环停止,因此用二分法求方程近似根时,用直到型循环结构的终止条件为|x 1-x 2|<δ.二、填空题6.下边的程序框图(如下图所示),能判断任意输入的整数x 是奇数或是偶数.其中判断框内的条件是________.答案 m =0?解析 根据程序框图中的处理框和输出的结果,寻找判断框内的条件.由于当判断框是正确时输出的是“x 是偶数”,而判断框前面的处理框是x 除以2的余数,因此判断框应填“m =0?”.7.下图是计算1+13+15+…+199的程序框图,判断框应填的内容是________,处理框应填的内容是________.答案 i ≤99? i =i +2解析 由题意知,该算法从i =1开始到99结束,循环变量依次加2.8.完成下面求1+2+3+…+10的值的算法:第一步,S =1.第二步,i =2.第三步,S =S +i .第四步,i =i +1.第五步,________________________________________________________________________. 第六步,输出S .答案 如果i =11,执行第六步;否则执行第三步解析 本题是用自然语言来描述的算法,实际上第五步是一个判断条件,根据题意,是循环是否终止的条件,因此应该为如果i =11,执行第六步;否则执行第三步.三、解答题9.画出求11×2+12×3+13×4+…+199×100的值的程序框图. 解 这是一个累加求和问题,共99项相加,可设计一个计数变量,一个累加变量,用循环结构实现这一算法.程序框图如下图所示:10.写出解方程ax +b =0 (a 、b 为常数)的算法,并画出程序框图.解 算法如下:第一步,判断a 是否等于零,若a ≠0,执行第二步,若a =0,执行第三步;第二步,计算-b a ,输出“方程的解为-b a”; 第三步,判断b 是否等于零,若b =0,输出“有无数个解”的信息,若b ≠0,输出“方程无解”的信息.程序框图如图所示:探 究 驿 站11.画出求12+12+…+12(共6个2)的值的程序框图. 分析 本题看上去非常烦琐,尤其是对于2的位置处理,容易让人产生错觉.本题只要把含有2的式子分离开来,用A 代替12,即令A =12,则不难分析出分母可化为12+A的形式,且此结构重复出现.解 方法一 当型循环结构程序框图如图所示.方法二 直到型循环结构程序框图如图所示.12.给出以下10个数:5,9,80,43,95,73,28,17,60,36,要求把大于40的数找出来并输出.试画出该问题的程序框图.解程序框图如下图:趣味一题13.相传,古印度的舍罕王打算重赏国际象棋的发明者——宰相西萨·班·达依尔.于是,这位宰相跪在国王面前说:“陛下,请您在这张棋盘的第一个小格内,赏给我一粒麦子;在第二个小格内给两粒,第三格内给四粒,照这样下去,每一小格都比前一小格加一倍.陛下啊,把这样摆满棋盘上所有64格的麦粒,都赏给您的仆人罢!”国王慷慨地答应了宰相的要求,他下令将一袋麦子拿到宝座前.计数麦粒的工作开始了.第一格内放一粒,第二格两粒,第三格四粒……还没到第二十格,袋子已经空了.一袋又一袋的麦子被扛到国王面前来,但是,麦粒数一格接一格地增长得那么迅速,很快就可以看出,即使拿来全印度的小麦,国王也无法兑现他对宰相许下的诺言!请你画出一个程序框图来求需要的麦粒数.分析由题意,我们可以看出第一格内放一粒,第二格两粒,第三格四粒,就是往后每一格是前一格的2倍,这样一共需要的麦粒数就是1+2+22+…+262+263.从而可以得出这是一个累加求和问题,可以利用循环结构来设计算法,计数变量i从1到64循环64次,每个求和的数可用一个累乘变量表示.解程序框图:。
--普通高中课程标准实验教科书—数学[人教版]高三新数学第一轮复习教案(讲座15)—算法的含义、程序框图一.课标要求:1.通过对解决具体问题过程与步骤的分析(如,二元一次方程组求解等问题),体会算法的思想,了解算法的含义;2.通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程。
在具体问题的解决过程中(如,三元一次方程组求解等问题),理解程序框图的三种基本逻辑结构:顺序、条件分支、循环。
二.命题走向算法是高中数学课程中的新内容,本章的重点是算法的概念和算法的三种逻辑结构。
预测2007年高考对本章的考察是:以选择题或填空题的形式出现,分值在5分左右,考察的热点是算法的概念。
三.要点精讲1.算法的概念(1)算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等。
在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。
(2)算法的特征:①确定性:算法的每一步都应当做到准确无误、“不重不漏”。
“不重”是指不是可有可无的、甚至无用的步骤,“不漏”是指缺少哪一步都无法完成任务。
②逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣。
分工明确,“前一步”是“后一步”的前提,“后一步”是“前一步”的继续。
③有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制的持续进行。
(3)算法的描述:自然语言、程序框图、程序语言。
2.程序框图(1)程序框图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形;(2)构成程序框的图形符号及其作用(3)程序框图的构成一个程序框图包括以下几部分:实现不同算法功能的相对应的程序框;带箭头的流程线;程序框内必要的说明文字。
算法与程序框图知识图谱算法与程序框图知识精讲一.算法的概念1.算法的定义由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照一定规则,解决某一类问题的明确的和有限的步骤,称为算法.通常可以编成计算机程序,让计算机执行并解决问题.2.算法的特征:(1)有穷性:算法必须在执行有限步后结束,通常还理解为实际上能够容忍的合理限度;(2)确定性:算法的每一个步骤必须有确定的含义;(3)可行性:组成算法的每个步骤和操作必须是相当基本的,原则上都是能精确地执行的;(4)输入:有零个或多个输入;(5)输出:有一个或多个输出.二.算法的描述1.用自然语言;2.用数学语言;3.用算法语言(程序设计语言);4.用程序框图(流程图).三.程序框图的概念:用一些通用的图形符号构成的一张图来表示算法,称为程序框图(简称框图).1.常用图形符号:图形符号名称符号表示的意义起、止框框图的开始或结束输入、输出框数据的输入或者结果的输出处理框赋值、执行计算语句、结果的传送判断框根据给定条件判断流程线流程进行的方向连结点连结另一页或另一部分的框图四.算法的三种基本逻辑结构:顺序结构、条件(分支)结构和循环结构.1.顺序结构:最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的.如下图,只有在执行完A 框指定的操作后,才能接着执行B 框指定的操作;2.条件(分支)结构:在一个算法中,用来处理需要根据条件是否成立有不同的流向的结构.常见的条件结构的程序框图有下面两种形式:否否是是BA A P PB A3.循环结构:从某处开始,按照一定的条件反复执行某些步骤的情况,就是循环结构,其中反复执行的步骤称为循环体.常见的循环结构的框图对应为:否是A P三点剖析一.注意事项:1.在画程序框图时,从开始框沿箭头必须能到达结束框,特别是条件分支结构应沿每条支路都能到达结束框,流程线必须加箭头表示顺序.2.对于循环结构有如下需要注意的情况:(1)循环结构非常适合计算机处理,因为计算机的运算速度非常快,执行成千上万次的重复计算,只不过是一瞬间的事,且能保证每次的结果都正确;(2)循环结构要有中止循环体的条件,不能无休止的运算下去,循环结构中一定包含条件结构,如i n ≤就是中止循环的条件;(3)循环结构的关键是,要理解“累加变量”和“用1i 代替i ”,S 是一个累加变量,i 是计数变量,每循环一次,S 和i 都要发生变化,这两步要重复计算若干次;(4)一种循环结构是先判断i n ≤是否成立,若是,执行循环体;若否,则中止循环,像这样,每次执行循环体前对控制循环条件进行判断,条件满足时执行循环体,不满足则停止,称为当型循环.除了当型循环外,常用的循环结构还有直到型循环.二.方法点拨1.画程序框图的规则:(1)使用标准的框图的符号;(2)框图一般按从上到下、从左到右的方向画;(3)除判断框外,大多数框图符号只有一个进入点和一个退出点.判断框是具有超过一个退出点的惟一符号;(4)一种判断框是“是”与“不是”两分支的判断,而且有且仅有两个结果;另一种是多分支判断,有几种不同的结果;(5)在图形符号内描述的语言要非常简练清楚.2.画程序框图要注意的几点:(1)起、止框是任何流程不可少的,表示程序的开始和结束;(2)输入、输出框可以用在算法中任何需要输入、输出的位置;(3)算法中间要处理数据或计算,可分别写在不同的处理框内;(4)当算法要求你对两个不同的结果进行判断时,要写在判断框内;(5)一个算法步骤到另一个算法步骤用流程线连结;(6)如果一个框图需要分开来画,要在断开处画上连结点,并标出连结的号码.程序框图例题1、下列说法正确的是()A.算法就是某个问题的解题过程;B.算法执行后可以产生不同的结果;C.解决某一个具体问题算法不同结果不同;D.算法执行步骤的次数不可以为很大,否则无法实施.例题2、指出下列哪一个不是算法()A.解方程260x -=的过程是移项和系数化为1B.从济南到温哥华需要先乘火车到北京,再从北京乘飞机到温哥华C.解方程2210x x +-=D.利用公式2πS r =,计算半径为3的圆的面积为2π3⨯例题3、下列语句中是算法的个数为()①从济南到巴黎:先从济南坐火车到北京,再坐飞机到巴黎;②统筹法中“烧水泡茶”的故事;③测量某棵树的高度,判断其是否是大树;④已知三角形的一部分边长和角,借助正余弦定理求得剩余的边角,再利用三角形的面积公式求出该三角形的面积A.1B.2C.3D.4随练1、下面四种叙述能称为算法的是()A.在家里一般是妈妈做饭B.做米饭要需要刷锅.添水.加热这些步骤C.在野外做饭叫野炊D.做饭必需要有米随练2、下列关于算法的说法正确的有()①求解某一类问题的算法是唯一的;②算法必须在有限步操作之后停止;③算法的每一步操作必须是明确的,不能有歧义或模糊;④算法执行后产生确定的结果.A.1个B.2个C.3个D.4个随练3、早上从起床到出门需要洗脸刷牙(5min).刷水壶(2min).烧水(8min).泡面(3min).吃饭(10min).听广播(8min)几个步骤,下列选项中最好的一种算法为()A.s1洗脸刷牙s2刷水壶s3烧水s4泡面s5吃饭s6听广播B.s1刷水壶s2烧水的同时洗脸刷牙s3泡面s4吃饭s5听广播C.s1刷水壶s2烧水的同时洗脸刷牙s3泡面s4吃饭的同时听广播D.s1吃饭的同时听广播s2泡面s3烧水的同时洗脸刷牙s4刷水壶算法的三种逻辑结构和框图表示例题1、如果执行如图所示的程序框图,那么输出的a=()A.2B.12 C.﹣1 D.以上都不正确例题2、如果执行如图所示的程序框图,那么输出的a=()A.2B.12 C.﹣1 D.以上都不正确例题3、阅读右边的程序框图,运行相应的程序,输出的S的值是()A.26B.40C.57D.无法确定随练1、如图是某算法的流程图,则执行该算法输出的结果是S=____.随练2、执行如图所示的程序框图,如果输入a=2,那么输出的a值为()A.4B.16C.256D.log316随练3、执行如图所示的程序框图,则输出的k=()A.4B.5C.6D.7拓展1、算法的有穷性是指()A.算法最后包含输出B.算法的每个操作步骤都是可执行的C.算法的步骤必须有限D.以上都不正确2、下面对算法描述正确的一项是()A.算法只能用自然语言来描述B.算法只能用图形方式来表示C.同一问题可以有不同的算法D.同一问题的算法不同,结果必然不同3、看下面的四段话,其中不是解决问题的算法的是()A.从上海到北京旅游,先坐火车,再坐飞机抵达B.解一元一次方程的步骤是去分母.去括号.移项.合并同类项.系数化为1C.方程210x -=有两个实根D.求12345++++的值,先计算123+=,再由于336+=,6410+=,10515+=,4、根据如图程序框图,输出k 的值为()A.3B.4C.5D.65、给出计算12+14+16+…+120的值的一个程序框图如图,其中判断框内应填入的条件是()A.i >10B.i <10C.i >20D.i <206、如图所示的流程图表示一函数,记作y=f (x ),若x 0满足f (x 0)<0,且f (f (x 0))=1,则x 0=____.。
普通高中课程标准实验教科书—数学[人教版]高三新数学第一轮复习教案(讲座15)—算法的含义、程序框图一.课标要求:1.通过对解决具体问题过程与步骤的分析(如,二元一次方程组求解等问题),体会算法的思想,了解算法的含义;2.通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程。
在具体问题的解决过程中(如,三元一次方程组求解等问题),理解程序框图的三种基本逻辑结构:顺序、条件分支、循环。
二.命题走向算法是高中数学课程中的新内容,本章的重点是算法的概念和算法的三种逻辑结构。
预测2007年高考对本章的考察是:以选择题或填空题的形式出现,分值在5分左右,考察的热点是算法的概念。
三.要点精讲1.算法的概念(1)算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等。
在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。
(2)算法的特征:①确定性:算法的每一步都应当做到准确无误、“不重不漏”。
“不重”是指不是可有可无的、甚至无用的步骤,“不漏”是指缺少哪一步都无法完成任务。
②逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣。
分工明确,“前一步”是“后一步”的前提,“后一步”是“前一步”的继续。
③有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制的持续进行。
(3)算法的描述:自然语言、程序框图、程序语言。
2.程序框图(1)程序框图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形;(2)构成程序框的图形符号及其作用(3)程序框图的构成一个程序框图包括以下几部分:实现不同算法功能的相对应的程序框;带箭头的流程线;程序框内必要的说明文字。
3.几种重要的结构 (1)顺序结构顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的。
它是由若干个依次执行的步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
见示意图和实例:顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤。
如在示意图中,A 框和B 框是依次执行的,只有在执行完A 框指定的操示意图作后,才能接着执行B 框所指定的操作。
(2)条件结构如下面图示中虚线框内是一个条件结构,此结构中含有一个判断框,算法执行到此判断给定的条件P 是否成立,选择不同的执行框(A 框、B 框)。
无论P 条件是否成立,只能执行A 框或B 框之一,不可能既执行A 框又执行B 框,也不可能A 框、B 框都不执行。
A 框或B 框中可以有一个是空的,即不执行任何操作。
见示意图(3)循环结构在一些算法中要求重复执行同一操作的结构称为循环结构。
即从算法某处开始,按照一定条件重复执行某一处理过程。
重复执行的处理步骤称为循环体。
循环结构有两种形式:当型循环结构和直到型循环结构。
①当型循环结构,如左下图所示,它的功能是当给定的条件P 成立时,执行A 框,A 框执行完毕后,返回来再判断条件P 是否成立,如果仍然成立,返回来再执行A 框,如此反复执行A 框,直到某一次返回来判断条件P 不成立时为止,此时不再执行A 框,离开循环结构。
继续执行下面的框图。
②直到型循环结构,如右下图所示,它的功能是先执行重复执行的A 框,然后判断给定的条件P 是否成立,如果P 仍然不成立,则返回来继续执行A 框,再判断条件P 是否成立。
以次重复操作,直到某一次给定的判断条件P 时成立为止,此时不再返回来执行A 框,离开循环结构。
继续执行下面的框图。
见示意图四.典例解析题型1:算法概念例1.下列说法正确的是( )当型循环结构 直到型循环结构A.算法就是某个问题的解题过程;B.算法执行后可以产生不同的结果;C.解决某一个具体问题算法不同结果不同;D.算法执行步骤的次数不可以为很大,否则无法实施。
解析:答案为选项B;选项B,例如:判断一个整数是否为偶数,结果为“是偶数”和“不是偶数”两种;选项A,算法不能等同于解法;选项C,解决某一个具体问题算法不同结果应该相同,否则算法构造的有问题;选项D,算法可以为很多次,但不可以无限次。
点评:算法一般是机械的,有时需要进行大量的重复计算。
只要按部就班去做,总能算出结果。
通常把算法过程称为“数学机械化”。
数学机械化的最大优点是它可以借助计算机来完成;实际上处理任何问题都需要算法。
如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则;而国际象棋有国际象棋的棋谱、走法、胜负的评判准则;再比如申请出国有一系列的先后手续,购买物品也有相关的手续……。
例2.下列语句中是算法的个数为()①从济南到巴黎:先从济南坐火车到北京,再坐飞机到巴黎;②统筹法中“烧水泡茶”的故事;③测量某棵树的高度,判断其是否是大树;④已知三角形的一部分边长和角,借助正余弦定理求得剩余的边角,再利用三角形的面积公式求出该三角形的面积。
A.1 B.2 C.3 D.4解析:正确选项为C,③中我们对“树的大小”没有明确的标准,无法完成任务,不是有效的算法构造。
①中,勾画了从济南到巴黎的行程安排,完成了任务;②中,节约时间,烧水泡茶完成了任务;④中,纯数学问题,借助正、余弦定理解三角形,进而求出三角形的面积。
点评:算法过程要做到能一步一步的执行,每一步执行的操作,必须确切,不能含混不清,且在有限步后的必须得到问题的结果。
题型2:经典算法例3.一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量就会吃羚羊。
该人如何将动物转移过河?请设计算法?解析:任何动物同船不用考虑动物的争斗但需考虑承载的数量,还应考虑到两岸的动物都得保证狼的数量要小于羚羊的数量,故在算法的构造过程中尽可能保证船里面有狼,这样才能使得两岸的羚羊数量占到优势,具体算法如下:算法步骤:第一步:人带两只狼过河,并自己返回;第二步:人带一只狼过河,自己返回;第三步:人带两只羚羊过河,并带两只狼返回;第四步:人带一只羊过河,自己返回; 第五步:人带两只狼过河。
点评:算法是解决某一类问题的精确描述,有些问题使用形式化、程序化的刻画是最恰当的。
这就要求我们在写算法时应精练、简练、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完整性。
本题型解决问题的算法中某些步骤重复进行多次才能解决,在现实生活中,很多较复杂的问题经常遇到这样的问题,设计算法的时候,如果能够合适地利用某些步骤的重复,不但可以使得问题变得简单,而且可以提高工作效率。
例4.这是中国古代的一个著名算法案例:一群小兔一群鸡,两群合到一群里,要数腿48,要数脑袋17,多少小兔多少鸡?解析:求解鸡兔的问题简单直观,却包含着深刻的算法思想。
应用解二元一次方程组的方法来求解鸡兔同笼问题。
第一步:设有小鸡x 只,小兔y 只,则有⎩⎨⎧=+=+)2(4842)1(17y x y x第二步:将方程组中的第一个方程两变乘-2加到第二个方程中去,得到⎩⎨⎧⨯-=-=+21748)24(17y y x ,得到y=7; 第三步:将y=7代入(1)得x=10。
点评:解决这些问题的基本思想并不复杂,很清晰,但叙述起来很烦琐,有的步骤非常多,有的计算量很大,有时候完全依靠人力完成这些工作很困难。
但是这些恰恰是计算机的长处,它能不厌其烦的枯燥的、重复的、繁琐的工作。
但算法也有优劣,我们要追求高效。
题型3:顺序结构例5.写出通过尺轨作图确定线段AB 一个5等分点的算法。
解析:我们借助于平行线定理,把位置的比例关系变成已知的比例关系,只要按照规则一步一步去做就能完成任务。
算法分析:第一步:从已知线段的左端点A 出发,任意作一条与AB 不平行的射线AP ; 第二步:在射线上任取一个不同于端点A 的点C ,得到线段AC ; 第三步:在射线上延AC 的方向截取线段CE=AC ; 第四步:在射线上延AC 的方向截取线段EF=AC ; 第五步:在射线上延AC 的方向截取线段FG=AC ;第六步:在射线上延AC 的方向截取线段GD=AC ,那么线段AD=5AB ; 第七步:连接DB ;第八步:过C 作BD 的平行线,交线段AB 于M ,这样点M 就是线段AB 的一个5等分点。
点评:这个算法步骤具有一般性,对于任意自然数n,都可以按照这个算法的思想,设计出确定线段的n等分点的步骤,解决问题。
例6.有关专家建议,在未来几年内,中国的通货膨胀率保持在3%左右,这将对我国经济的稳定有利无害。
所谓通货膨胀率为3%,指的是每年消费品的价格增长率为3%。
在这种情况下,某种品牌的钢琴2004年的价格是10 000元,请用流程图描述这种钢琴今后四年的价格变化情况,并输出四年后的价格。
解析:用P表示钢琴的价格,不难看出如下算法步骤:2005年P=10000×(1+3%)=10300;2006年P=10300×(1+3%)=10609;2007年P=10609×(1+3%)=10927.27;2008年P=10927.27×(1+3%)=11255.09;因此,价格的变化情况表为:程序框图为:点评:顺序结构只须严格按照传统的解决数学问题的解题思路,将问题解决掉。
最后将解题步骤 “细化”就可以。
“细化”指的是写出算法步骤、画出程序框图。
题型4:条件结构例7.设计算法判断一元二次方程02=++c bx ax 是否有实数根,并画出相应的程序框图。
解析:算法步骤如下:第一步:输入一元二次方程的系数:a ,b ,c ;第二步:计算△ac b 42-=的值;第三步:判断△≥0是否成立。
若△≥0成立,输出“方程有实根”;否则输出“方程无实根”。
结束算法。
相应的程序框图如下:点评:根据一元二次方程的意义,需要计算判别式△ac b 42-=的值。
再分成两种情况处理:(1)当△≥0时,一元二次方程有实数根;(2)当△<0时,一元二次方程无实数根。
该问题实际上是一个分类讨论问题,根据一元二次方程系数的不同情况,最后结果就不同。
因而当给出一个一元二次方程时,必须先确定判别式的值,然后再用判别式的值的取值情况确定方程是否有解。
该例仅用顺序结构是办不到的,要对判别式的值进行判断,需要用到条件结构。
例8.(1)设计算法,求0=+b ax 的解,并画出流程图。
解析:对于方程0=+b ax 来讲,应该分情况讨论方程的解。
我们要对一次项系数a 和常数项b 的取值情况进行分类,分类如下: (1)当a ≠0时,方程有唯一的实数解是ab -; (2)当a=0,b=0时,全体实数都是方程的解; (3)当a=0,b ≠0时,方程无解。