1、1算法与程序框图(1)算法算法通常是指按照一定规则解决某一类问题的明确和有限的步骤应用:算法通常可以编成计算机程序,让计算机执行并解决问题(2)程序框图定义:程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形2三种基本逻辑结构 名称内容顺序结构条件结构循环结构定义由若干个依次执行的步骤组成,这是任何一个算法都离不开的基本结构算法的流程根据给定的条件是否成立有不同的流向,条件结构就是处理这种过程的结构从某处开始,按照一定的条件反复执行某些步骤的结构,反复执行的步骤称为循环体程序框图3.算法语句(1)输入语句、输出语句、赋值语句的格式与功能语句一般格式功能输入语句INPUT “提
2、示内容”;变量输入信息输出语句PRINT_“提示内容”;表达式输出常量、变量的值和系统信息赋值语句变量表达式将表达式所代表的值赋给变量(2)条件语句程序框图中的条件结构与条件语句相对应条件语句的格式aIFTHEN格式 IF条件THEN 语句体ENDIFbIFTHENELSE格式IF条件THEN 语句体1ELSE 语句体2ENDIF(3)循环语句程序框图中的循环结构与循环语句相对应循环语句的格式aUNTIL语句DO循环体LOOP UNTIL条件bWHILE语句WHILE条件循环体WEND【思考辨析】判断下列结论是否正确(请在括号中打“”或“”)(1)算法只能解决一个问题,不能重复使用()(2)程
3、序框图中的图形符号可以由个人来确定()(3)输入框只能紧接开始框,输出框只能紧接结束框()(4)条件结构的出口有两个,但在执行时,只有一个出口是有效的()(5)5x是赋值语句()(6)输入语句可以同时给多个变量赋值()1已知一个算法:(1)ma.(2)如果bm,则mb,输出m;否则执行第(3)步(3)如果cm,则mc,输出m.否则执行第(4)步(4)输出m.如果a3,b6,c2,那么执行这个算法的结果是()A3 B6C2 Dm答案C解析当a3,b6,c2时,依据算法设计,本算法是求a、b、c三个数的最小值,故输出m的值为2,故选C.2(2016全国甲卷)中国古代有计算多项式值的秦九韶算法,如图
4、是实现该算法的程序框图,执行该程序框图,若输入的x2,n2,依次输入的a为2,2,5,则输出的s等于()A7 B12C17 D34答案C解析由框图可知,输入x2,n2,a2,s2,k1,不满足条件;a2,s426,k2,不满足条件;a5,s12517,k3,满足条件,输出s17,故选C.3(2017广州调研)下列赋值能使y的值为4的是()Ay26 B2*32y C.4yD.y2*32答案D解析赋值时把“”右边的值赋给左边的变量4(2017太原月考)如图是一算法的程序框图,若输出结果为S720,则在判断框中应填入的条件是()Ak6? Bk7?Ck8? Dk9?答案B解析第一次执行循环,得到S10
5、,k9;第二次执行循环,得到S90,k8;第三次执行循环,得到S720,k7,此时满足条件5执行下面的程序框图,若输入的的值为0.25,则输出的n的值为_答案3解析第一次循环:F13,F02,n2;第二次循环:F15,F03,n3.此时0.2满足0.25,故输出n3.题型一顺序结构与条件结构命题点1顺序结构例1如图所示的程序框图,根据该图和下列各小题的条件回答下面的几个小题(1)该程序框图解决的是一个什么问题?(2)当输入的x的值为0和4时,输出的值相等,问当输入的x的值为3时,输出的值为多大?(3)在(2)的条件下要想使输出的值最大,输入的x的值应为多大?解(1)该程序框图解决的是求二次函数
6、f(x)x2mx的函数值的问题(2)当输入的x的值为0和4时,输出的值相等,即f(0)f(4)因为f(0)0,f(4)164m,所以164m0,所以m4,f(x)x24x.则f(3)32433,所以当输入的x的值为3时,输出的f(x)的值为3.(3)因为f(x)x24x(x2)24,当x2时,f(x)最大值4,所以要想使输出的值最大,输入的x的值应为2.命题点2条件结构例2执行如图所示的程序框图,如果输入的t1,3,则输出的s属于()A3,4 B5,2C4,3 D2,5答案A解析根据程序框图可以得到分段函数s进而在函数的定义域1,3内分段求出函数的值域所以当1t1时,s3t3,3);当1t3时
7、,s4tt2(t2)24,所以此时3s4.综上可知,函数的值域为3,4,即输出的s属于3,4引申探究若将本例中判断框的条件改为“t1”,则输出的s的范围是什么?解根据程序框图可以得到,当1t1时,s4tt2(t2)24,此时5s3;当1t3时,s3t3,9综上可知,函数的值域为5,9,即输出的s属于5,9思维升华应用顺序结构与条件结构的注意点(1)顺序结构顺序结构是最简单的算法结构,语句与语句之间、框与框之间是按从上到下的顺序进行的(2)条件结构利用条件结构解决算法问题时,重点是判断框,判断框内的条件不同,对应的下一框中的内容和操作要相应地进行变化,故要重点分析判断框内的条件是否满足执行如图所
8、示的程序框图,如果输入的x,yR,那么输出的S的最大值为_答案2解析当条件x0,y0,xy1不成立时输出S的值为1;当条件x0,y0,xy1成立时S2xy,下面用线性规划的方法求此时S的最大值作出不等式组表示的平面区域如图中阴影部分(含边界),由图可知当直线S2xy经过点M(1,0)时S最大,其最大值为2102,故输出S的最大值为2.题型二循环结构命题点1由程序框图求输出结果例3(2016全国乙卷)执行下面的程序框图,如果输入的x0,y1,n1,则输出x,y的值满足()Ay2x By3xCy4x Dy5x答案C解析执行题中的程序框图,知第一次进入循环体:x00,y111,x2y236;第二次执
9、行循环体:n112,x0,y212,x2y236,满足x2y236,故退出循环,输出x,y6,满足y4x,故选C.命题点2完善程序框图例4(2017保定质检)如图给出的是计算的值的一个框图,其中菱形判断框内应填入的条件是()Ai10? Bi11? Di10?”命题点3辨析程序框图的功能例5根据下面框图,对大于2的整数N,输出的数列的通项公式是()Aan2n Ban2(n1)Can2n Dan2n1答案C解析由程序框图可知,第一次运行:i1,a12,S2;第二次运行:i2,a24,S4;第三次运行:i3,a38,S8;第四次运行:i4,a416,S16.故选C.思维升华与循环结构有关问题的常见类
10、型及解题策略(1)已知程序框图,求输出的结果,可按程序框图的流程依次执行,最后得出结果(2)完善程序框图问题,结合初始条件和输出结果,分析控制循环的变量应满足的条件或累加、累乘的变量的表达式(3)对于辨析程序框图功能问题,可将程序执行几次,即可根据结果作出判断(2016四川)秦九韶是我国南宋时期的数学家,普州(现四川省安岳县)人,他在所著的数书九章中提出的多项式求值的秦九韶算法,至今仍是比较先进的算法如图所示的程序框图给出了利用秦九韶算法求某多项式值的一个实例,若输入n,x的值分别为3,2,则输出v的值为()A9 B18 C20 D35答案B解析初始值n3,x2,程序运行过程如下:v1i2v1
11、224i1v4219i0v92018i1跳出循环,输出v18,故选B.题型三基本算法语句例6阅读下面两个算法语句:i1WHILEi*(i1)20ii1WENDPRINT“i”;i,END图1i1DOii1LOOPUNTILi*(i1)20PRINT“i”;iEND图2执行图1中语句的结果是输出_;执行图2中语句的结果是输出_答案i4i2解析执行图1中语句,得到(i,i(i1)的结果依次为(1,2),(2,6),(3,12),(4,20),故输出i4.执行图2中语句的情况如下:i1,ii12,i(i1)61;第二次循环:i3,Slglglglg 51;第三次循环:i5,Slglglglg 71;
12、第四次循环:i7,Slglglglg 91;第五次循环:i9,Slglglglg 111.故输出i9.5(2017成都调研)定义某种运算,ab的运算原理如图所示设S1x,x2,2,则输出的S的最大值与最小值的差为()A2 B1 C4 D3答案A解析由题意可得,S(x)S(x)max2,S(x)min0,S(x)maxS(x)min2.6给出一个算法的程序框图(如图所示),该程序框图的功能是()A输出a,b,c三数中的最大数B输出a,b,c三数中的最小数C将a,b,c按从小到大排列D将a,b,c按从大到小排列答案B解析先比较a,b的值,把较小的值赋值给a;再比较a,c的值,把较小的值赋值给a,输
13、出a.7公元263年左右,我国数学家刘徽发现当圆内接正多边形的边数无限增加时,多边形面积可无限逼近圆的面积,并创立了“割圆术”,利用“割圆术”刘徽得到了圆周率精确到小数点后两位的近似值3.14,这就是著名的“徽率”如图是利用刘徽的“割圆术”思想设计的一个程序框图,则输出n的值为_(参考数据:sin 150.258 8,sin 7.50.130 5)答案24解析n6,S6sin 602.5983.1,不满足条件,进入循环;n12,S12sin 3033.1,满足条件,退出循环,输出n的值为24.8以下给出了一个程序,根据该程序回答:INPUTxIFx3THENyx*x-1ELSEy2END IF
14、END IFPRINT yEND(1)若输入4,则输出的结果是_;(2)该程序的功能所表达的函数解析式为_答案(1)15(2)y解析(1)x4不满足x3,yx2142115.输出15.(2)当x3时,yx21;否则,即x3,y2.y9对一个作直线运动的质点的运动过程观测了8次,第i次观测得到的数据为ai,具体如下表所示:I12345678ai4041434344464748在对上述统计数据的分析中,一部分计算见如图所示的程序框图(其中是这8个数据的平均数),则输出的S的值是_答案7解析本题计算的是这8个数的方差,因为44,所以S7.10如图(1)(2)所示,它们都表示的是输出所有立方小于1 0
15、00的正整数的程序框图,那么应分别补充的条件为:(1)_;(2)_答案(1)n31 000(2)n31 000解析第一个图中,n不能取10,否则会把立方等于1 000的正整数也输出了,所以应该填写n31 000;第二个图中,当n10时,循环应该结束,所以填写n31 000.11给出一个如图所示的程序框图,若要使输入的x值与输出的y值相等,则这样的x值是_答案0,1,3解析根据题意,本程序框图表示分段函数:y由于输入的x值与输出的y值相等,由x2x解得x0或x1,都满足x2;由x2x3解得x3,也满足25内,舍去可见满足条件的x共三个:0,1,3.12(2016抚州质检)某框图所给的程序运行结果
16、为S20,那么判断框中应填入的关于k的条件是_答案k8?解析由题意可知输出结果为S20,第1次循环,S11,k9,第2次循环,S20,k8,此时S满足输出结果,退出循环,所以判断框中的条件为“k8?”13(2016长沙模拟)运行如图所示的程序框图,若输出的y值的范围是0,10,则输入的x值的范围是_答案7,9解析该程序的功能是计算分段函数的值,y当x1时,由03x10可得7x1时,由0x110可得1,则判断框中可以填入的关于n的判断条件是_(填序号)n2 015?n2 016?n2 015?n2 016?答案解析由题意得f(x)3ax2x,由f(1)0,得a,f(x)x2x,即g(x).由程序框图可知S0g(1)g(2)g(n)011,由1,得n2 015.故可填入.