1、第九章 算法初步、统计、统计案例第一节 算法与程序框图、基本算法语句【知识梳理】1.常用程序框及其功能起始和结束输入和输出的信息赋值、计算成立与否先后顺序2.三种基本逻辑结构及相应语句名称示意图相应语句顺序结构输入语句:INPUT“提示内容”;变量输出语句:PRINT“提示内容”;表达式赋值语句:变量=表达式名称示意图相应语句条件结构_语句体_语句体1_语句体2ENDIFIF 条件THENEND IFIF 条件THENELSE名称示意图相应语句循环结构当型循环结构_ 条件 循环体_直到型循环结构_ 循环体_条件WHILEWENDDOLOOP UNTIL【特别提醒】1.当型循环与直到型循环的区别
2、直到型循环是“先循环,后判断,条件满足时终止循环”;而当型循环则是“先判断,后循环,条件满足时执行循环”;两者的判断框内的条件表述在解决同一问题时是不同的,它们恰好相反.2.解决程序框图问题要注意几个常用变量(1)计数变量:用来记录某个事件发生的次数,如i=i+1.(2)累加变量:用来计算数据之和,如S=S+i.(3)累乘变量:用来计算数据之积,如p=pi.【小题快练】链接教材练一练1.(必修3P25例5改编)给出如图程序框图,其功能是()A.求a-b的值B.求b-a的值C.求|a-b|的值D.以上都不对【解析】选C.当ab时,输出结果为a-b;当a0.005;执行第二次循环体a=n=3;此时
3、|a-1.414|=|1.4-1.414|=0.0140.005;执行第三次循环体a=n=4;此时|a-1.414|b成立,故将b的值赋给a得a=5,又ac不成立,故直接输出a的值为5,再结合选项知B成立.【母题变式】1.若本例题(2)条件“是与否”互换位置如图,其他条件不变,试解答本题.【解析】选A.两个条件结构都是挑选较大的值.故输出a的值是三个数中的最大值.2.若本例题(2)程序框图变为如图所示,求输出的y的值.【解析】由程序框图知a=2,b=1,因此y=21=2,故输出y的值为2.【规律方法】应用顺序结构与条件结构的注意点(1)顺序结构:顺序结构是最简单的算法结构,语句与语句之间、框与
4、框之间是按从上到下的顺序进行的.(2)条件结构:利用条件结构解决算法问题时,重点是判断框,判断框内的条件不同,对应的下一程序框中的内容和操作要相应地进行变化,故要重点分析判断框内的条件是否满足.【变式训练】(2015福建高考)阅读如图所示的程序框图,运行相应的程序,若输入x的值为1,则输出y的值为()A.2 B.7 C.8 D.128【解析】选C.x=1x2?(否)代入y=9-xy=8.【加固训练】1.给出一个如图所示的程序框图,若要使输入的x值与输出的y值相等,则这样的x值的个数是()A.1 B.2 C.3 D.4【解析】选C.由程序框图知由已知得解得x=0或x=1或x=3,这样的x值的个数
5、是3.2.(2016安庆模拟)阅读如图所示程序框图.若输入x为3,则输出的y的值为()A.24 B.25 C.30 D.40【解析】选D.a=32-1=8,b=8-3=5,y=85=40.3.(2016成都模拟)如图所示的程序框图的输入值x-1,3,则输出值y的取值范围为()A.1,2 B.0,2C.0,1 D.-1,2【解析】选B.当0 x3时,1x+14,所以,0log2(x+1)2,当-1x0时,0-x112-x2,所以,01时,输出b=x3.当x1时,由a=x2=8,解得当x1时,b=x3=8,解得x=2.所以输入的数为2或答案:2或5.(2016宁德模拟)运行如图所示程序框图的相应程
6、序,若输入a,b的值分别为则输出M的值是.【解析】因为ab,所以执行M=ab+1,所以M=答案:2考向二 循环结构【考情快递】命题方向命题视角求程序运行后的结果以程序框图为载体,考查数列的通项与求和等问题、考查程序框图的运行确定控制循环的变量已知程序运行结果,考查控制循环的变量的值或范围【考题例析】命题方向1:求程序运行后的结果【典例2】(2015全国卷)执行如图所示的程序框图,如果输入的t=0.01,则输出的n=()A.5 B.6 C.7 D.8【解题导引】依次求出S,m,n的值,S与t比较大小,再判断是否循环.【规范解答】选C.执行第一次,t=0.01,S=1,n=0,m=0.5,S=S-
7、m=0.5,m=0.25,n=1,S=0.5t=0.01,是,执行循环;执行第二次,S=S-m=0.25,m=0.125,n=2,S=0.25t=0.01,是,执行循环;执行第三次,S=S-m=0.125,m=0.0625,n=3,S=0.125t=0.01,是,执行循环;执行第四次,S=S-m=0.0625,m=0.03125,n=4,S=0.0625t=0.01,是,执行循环;执行第五次,S=S-m=0.03125,m=0.015625,n=5,S=0.03125t=0.01,是,执行循环;执行第六次,S=S-m=0.015625,m=0.0078125,n=6,S=0.015625t=0
8、.01,是,执行循环;执行第七次,S=S-m=0.0078125,m=0.00390625,n=7,S=0.0078125t=0.01,否,输出n=7.命题方向2:确定控制循环的变量【典例3】(2015重庆高考)执行如图所示的程序框图,若输出k的值为8,则判断框内可填入的条件是()【解题导引】根据循环结构中输出k的值以及循环结束时s的值,结合各选项可以判断出判断框中的条件.【规范解答】选C.执行第一次循环时,k=2,执行第二次循环时,k=4,执行第三次循环时,k=6,执行第四次循环时,k=8,此时结束循环,故判断框中应填入的条件为【技法感悟】1.求程序运行结果的思路(1)要明确程序框图的顺序结
9、构、条件结构和循环结构.(2)要识别运行程序框图,理解框图所解决的实际问题.(3)按照题目的要求完成解答并验证.易错提醒:解决程序框图问题时应注意的问题(1)注意区分当型循环和直到型循环.(2)循环结构中要正确控制循环次数.(3)要注意各个框的顺序.2.确定控制循环变量的思路结合初始条件和输出结果,分析控制循环的变量应满足的条件或累加、累乘的变量的表达式.【题组通关】1.(2016青岛模拟)阅读如图所示的程序框图,运行相应的程序后,输出i的值为()A.3 B.4 C.5 D.6【解析】选B.运行程序a=1,i=0,i=1,a=11+1=2,因为250不满足,所以执行循环体,i=2,a=5,因为
10、550不满足,所以执行循环体,i=3,a=16,因为1650不满足,所以执行循环体,i=4,a=65,因为6550满足,输出i=4.2.(2016淄博模拟)如果执行如图所示的程序框图,输入N=5,则输出的数等于()【解析】选D.根据程序框图可知,该程序框图的功能是计算S=现在输入的N=5,所以不满足条件k7?B.k6?C.k5?D.k4?【解析】选C.第一次循环:k=1+1=2,S=20+2=2;第二次循环:k=2+1=3,S=22+3=7;第三次循环:k=3+1=4,S=27+4=18;第四次循环:k=4+1=5,S=218+5=41;第五次循环:k=5+1=6,S=241+6=88,满足条
11、件,则输出S的值,而此时k=6,故判断框内应填入的条件是“k5?”.考向三 基本算法语句【典例4】(1)下面程序运行的结果是()A.5,8 B.8,5 C.8,13 D.5,13(2)(2015江苏高考改编)根据如图所示的算法语句,可知输出的结果s为.【解题导引】(1)赋值语句的功能是将后面的值赋给前面的变量,根据赋值语句的功能求解.(2)由已知中的算法语句,可得程序的功能是利用循环计算变量s的值,模拟程序的运行过程,即可得到答案.【规范解答】(1)选C.此程序先将A的值赋给X,故X=5;再将B的值赋给A,故A=8;再将X+A的值赋给B,即将原来的A与B的和赋给B,故B=5+8=13.(2)由
12、已知中的算法语句,模拟程序的运行过程可得:i=1时,i8,s增大为3,i增大为4;当i=4时,i8,s增大为5,i增大为7;当i=7时,i8,s增大为7,i增大为10;当i=10时,i8不成立,不满足继续循环的条件,故输出结果为7.答案:7【易错警示】解答本例题(1)会出现以下错误:认为程序运行后A=5,B=8,结果选A.错误原因是对赋值语句的替换功能不理解.【规律方法】算法语句应用的三个关注点(1)赋值语句:赋值号仅仅表示把右边的表达式的值赋给了左边的变量,且变量的值始终等于最近一次赋给它的值,先前的值将被替换.(2)条件语句:计算机在执行“IFTHENELSE”语句时,首先对IF后的条件进
13、行判断,如果符合条件,则执行THEN后面的“语句”;若不符合条件,则执行ELSE后面的“语句”.(3)循环语句:分清WHILE-WEND和DO-LOOP UNTIL的格式,不能混用.【变式训练】如果运行下面的程序之后得到结果y=16,则键盘输入的x应该是.【解析】由程序可得:当x0时y=(x+1)2.所以若y=16,则(x+1)2=16.所以x+1=4.所以x=-5或3(舍去),所以x=-5.当x0时y=(x-1)2.若y=16,则(x-1)2=16,所以x-1=4.所以x=5或-3(舍去).所以x=5.综上所述:x=5.答案:5【加固训练】1.(2016湖北八市联考)按照如图程序运行,则输出K的值是.【解析】第一次循环,X=7,K=1;第二次循环,X=15,K=2;第三次循环,X=31,K=3;终止循环,输出K的值是3.答案:32.请写出下面程序运行后输出的结果【解析】语句c=a+b是将a,b的和赋值给c,故c=2+3=5;语句b=a+c-b是将a+c-b的值赋给b.故b=2+5-3=4.所以输出的结果是a=2,b=4,c=5.