- 1.39 MB
- 2021-06-16 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
第2讲 算法与程序框图
一、知识梳理
1.算法与程序框图
(1)算法
①算法通常是指按照一定规则解决某一类问题的明确和有限的步骤.
②应用:算法通常可以编成计算机程序,让计算机执行并解决问题.
(2)程序框图
定义:程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.
2.三种基本逻辑结构及相应语句
名称
示意图
相应语句
顺序结构
①输入语句:
INPUT “提示内容”;变量
②输出语句:
PRINT “提示内容”;表达式
③赋值语句:
变量=表达式
条件结构
IF 条件 THEN
语句体
END IF
IF 条件 THEN
语句体1
ELSE
语句体2
END IF
循环结构
当型循环结构
WHILE 条件
循环体
WEND
直到型循环结构
DO
循环体
LOOP UNTIL条件
常用结论
1.赋值号左边只能是变量(不能是表达式),在一个赋值语句中只能给一个变量赋值.
2.直到型循环是“先循环,后判断,条件满足时终止循环”;当型循环则是“先判断,后循环,条件满足时执行循环”;两者的判断框内的条件表述在解决同一问题时是不同的,它们恰好相反.
二、习题改编
1.(必修3P25例5改编)如图为计算y=|x|函数值的程序框图,则此程序框图中的判断框内应填 .
解析:输入x应判断x是否大于等于零,由图知判断框应填x<0?.
答案:x<0?
2.(必修3P30例8改编)执行如图所示的程序框图,则输出S的值为 .
解析:按照程序框图依次循环运算,当k=5时,停止循环,当k=5时,S=sin=.
答案:
一、思考辨析
判断正误(正确的打“√”,错误的打“×”)
(1)一个程序框图一定包含顺序结构,但不一定包含条件结构和循环结构.( )
(2)条件结构的出口有两个,但在执行时,只有一个出口是有效的.( )
(3)输入框只能紧接开始框,输出框只能紧接结束框.( )
(4)输入语句可以同时给多个变量赋值.( )
(5)在算法语句中,x=x+1是错误的.( )
答案:(1)√ (2)√ (3)× (4)√ (5)×
二、易错纠偏
(1)分不清程序框图是条件结构还是循环结构致错;
(2)把握不好循环结构中控制循环的条件致错.
1.执行如图所示的程序框图,其中t∈Z.若输入的n=5,则输出的结果为( )
A.48 B.58
C.68 D.78
解析:选B.输入的n=5,则a=5×5+3=28=7×4;n=7,a=38=7×5+3;n=9,
a=5×9+3=48=7×6+6;n=11,a=5×11+3=58=7×8+2.则退出循环,输出的结果为58.故选B.
2.如图所示的程序框图,当输入的x为1时,输出的结果为( )
A.3 B.4
C.5 D.6
解析:选C.执行程序框图;i=0,输入的x为1时,y=1+1=2,i=1,y=2<20,则x=2;y=4,i=2,y=4<20,则x=4;y=8,i=3,y=8<20,则x=8;y=16,i=4,y=16<20,则x=16;y=32,i=5,y=32>20,退出循环体.故输出的结果为5,选C.
顺序结构与条件结构(典例迁移)
执行如图所示的程序框图,如果输入的t∈[-1,3],则输出的s属于( )
A.[-3,4] B.[-5,2]
C.[-4,3] D.[-2,5]
【解析】 由程序框图得分段函数s=所以当-1≤t<1时,s=3t∈[-3,3);当1≤t≤3时,s=4t-t2=-(t-2)2+4,所以此时3≤s≤4.综上函数的值域为[-3,4
],即输出的s属于[-3,4].
【答案】 A
【迁移探究1】 (变条件)若本例的判断框中的条件改为“t≥1?”,则输出的s的范围是 .
解析:由程序框图得分段函数s=所以当1≤t≤3时,s=3t∈[3,9],当-1≤t<1时,s=4t-t2=-(t-2)2+4,所以此时-5≤s<3.综上函数的值域为[-5,9],即输出的s属于[-5,9].
答案:[-5,9]
【迁移探究2】 (变结论)本例框图不变,若输出s的值为3,求输入的t的值.
解:由本例解析知s=,
则3t=3,所以t=1(舍),
4t-t2=3,所以t=1或3.
应用顺序结构和条件结构的注意点
(1)顺序结构
顺序结构是最简单的算法结构,语句与语句之间、框与框之间是按从上到下的顺序进行的.
(2)条件结构
利用条件结构解决算法问题时,重点是判断框,判断框内的条件不同,对应的下一图框中的内容和操作要相应地进行变化,故要重点分析判断框内的条件是否满足.
[提醒] 条件结构的运用与数学的分类讨论有关.设计算法时,哪一步要分类讨论,哪一步就需要用条件结构.
1.阅读如图所示的程序框图,若输入的x为3,则输出的y的值为( )
A.24 B.25
C.30 D.40
解析:选D.a=32-1=8,b=8-3=5,y=8×5=40.
2.(2020·菏泽模拟)给出一个如图所示的程序框图,若要使输入的x值与输出的y值相等,则这样的x值的个数是( )
A.1 B.2
C.3 D.4
解析:选C.当x≤2时,y=x2=x,解得x1=0,x2=1;当25时,y==x,解得x=±1(舍去),故x可为0,1,3.故选C.
循环结构(多维探究)
角度一 由程序框图求输出的结果或输入的值
(1)(2019·高考北京卷)执行如图所示的程序框图,输出的s值为( )
A. 1 B. 2
C. 3 D. 4
(2)(2020·洛阳尖子生第二次联考)执行如图所示程序框图,如果输出的数是13,那么输入的正整数n的值是( )
A.5 B.6
C.7 D.8
【解析】 (1)执行程序框图,s=2,k=2;s=2,k=3;s=2,结束循环.输出的s值为2,故选B.
(2)由题意,可得A=1,B=1,k=3,满足条件k≤n;C=2,A=1,B=2,k=4,满足条件k≤n;C=3,A=2,B=3,k=5,满足条件k≤n;C=5,A=3,B=5,k=6,满足条件k≤n;C=8,A=5,B=8,k=7,满足条件k≤n;C=13,A=8,B=13,k=8,此时应该不满足条件k≤n,退出循环,输出的C的值为13.可得8>n≥7,所以输入的正整数n的值是7.故选C.
【答案】 (1)B (2)C
角度二 完善程序框图
(2019·高考全国卷Ⅰ)如图是求的程序框图,图中空白框中应填入( )
A.A=
B.A=2+
C.A=
D.A=1+
【解析】 法一:依次检验四个选项.第一次循环:A.A=;B.A=2+2;C.A=;D.A=2.分析知只有A符合题意.故选A.
法二:分析知,与一致的结构为,故可设A=,检验知符合题意,故选A.
【答案】 A
角度三 辨析程序框图的功能
(2020·唐山市摸底考试)已知程序框图如图所示,则该程序框图的功能是( )
A.求1++++...+的值
B.求1++++...+的值
C.求1-+-+...-的值
D.求1-+-+...+的值
【解析】 执行程序框图,S=1,a=-1,n=3;S=1-,a=1,n=5;S=1-+,a=-1,n=7;…;S=1-+-+…-,a=1,n=21>19满足条件,退出循环,输出S.故该程序框图的功能是求S=1-+-+…-的值,故选C.
【答案】 C
[提示] (1)几个常用变量:①计数变量,如i=i+1;
②累加变量,如S=S+i;③累乘变量,如p=p×i.
(2)当型循环与直到循环的区别.
1.(2020·武昌区调研考试)某程序框图如图所示,该程序运行后输出的s=( )
A.26 B.102
C.410 D.512
解析:选B.s=0,n=1,第一次运行,s=21-0=2,n=1+2=3;
第二次运行,s=23-2=6,n=3+2=5;
第三次运行,s=25-6=26,n=5+2=7;
第四次运行,s=27-26=102,n=7+2=9>8,终止循环.输出s=102,故选B.
2.(2020·湖南省湘东六校联考)执行如图所示的程序框图,为使输出的数据为63,则判断框中应填入的条件为( )
A.i≤4? B.i≤5?
C.i≤6? D.i≤7?
解析:选B.初始值,S=1,i=1,第一次循环,S=3,i=2;第二循环,S=7,i=3;第三次循环,S=15,i=4;第四次循环,S=31,i=5;第五次循环,S=63,i=6,此时退出循环,输出S=63.结合选项知判断框中应填入的条件为“i≤5?”,故选B.
3.(2020·东北三省三校一模)执行两次下图所示的程序框图,若第一次输入的x的值为4,第二次输入的x的值为5,记第一次输出的a的值为a1,第二次输出的a的值为a2,则a1-a2=( )
A.2
B.1
C.0
D.-1
解析:选D.当输入x的值为4时,不满足b2>x,但是满足x能被b整除,输出a=0=a1;当输入x的值为5时,不满足b2>x,也不满足x能被b整除,故b=3,此时满足b2>x,故输出a=1=a2,则a1-a2=-1.故选D.
基本算法语句(师生共研)
执行如图程序语句,输入a=2cos,b=2tan ,则输出y的值是( )
A.3 B.4
C.6 D.-1
【解析】 根据条件语句可知程序运行后是计算y=
且a=2cos=2cos =1,
b=2tan =2tan=2;
因为a0时,2-log3x=0,x=9.故x=-3或x=9,故选B.
2.(2020·石家庄模拟)执行如图所示的程序框图,若输入的a的值为1,则输出的k的值为( )
A.1 B.2
C.3 D.4
解析:选D.开始,k=0,a=1,所以b=1;第一次循环,a=-=-,此时a≠b;第二次循环,k=2,a=
-=-2,此时a≠b;第三次循环,k=4,a=-=1,此时a=b,结束循环,输出k的值为4,故选D.
3.(2020·陕西汉中重点中学联考)阅读下图所示的
程序框图,运行相应的程序,输出的结果是( )
A.5 B.26
C.667 D.677
解析:选D.根据程序框图,模拟程序的运行,可得a=1,满足条件a<100,执行循环体,
a=2,满足条件a<100,执行循环体,
a=5,满足条件a<100,执行循环体,
a=26,满足条件a<100,执行循环体,
a=677,不满足条件a<100,退出循环体,输出a的值为677,故选D.
4.(2020·武汉市调研测试)执行如图所示的程序框图,则输出s的值为( )
A.5 B.12
C.27 D.58
解析:选C.k=1,s=1,第一次循环,s=1+1=2,k=2×1+1=3;
第二次循环,s=2+3=5,k=2×3+1=7;
第三次循环,s=5+7=12,k=2×7+1=15;
第四次循环,s=12+15=27,k=2×15+1=31>30,终止循环.输出s=27,故选C.
5.(2020·黑龙江齐齐哈尔二模)如图所示的程序框图,若输出S=30,则输入的整数m的值为( )
A.7 B.8
C.9 D.10
解析:选C.执行程序框图,可得S=0,k=mm+2,退出循环,输出S=3m+3,由3m+3=30得m=9.故选C.
6.(2020·宁夏石嘴山三中一模)数学名著《算学启蒙》中有关于“松竹并生”的问题:松长四尺,竹长两尺,松日自半,竹日自倍,松竹何日而长等.下面是源于其思想的一个程序框图.若输入a,b的值分别为8,2,则输出的n=( )
A.2 B.3
C.5 D.4
解析:选C.输入a,b分别为8,2,n=1,a=12,b=4,不满足退出循环的条件;
n=2,a=18,b=8,不满足退出循环的条件;
n=3,a=27,b=16,不满足退出循环的条件;
n=4,a=,b=32,不满足退出循环的条件;
n=5,a=,b=64,满足退出循环的条件;故输出n=5,故选C.
7.(2020·重庆质量调研(一))执行如图所示的程序框图,如果输入的x=0,y=-1,n=1,则输出x,y的值满足( )
A.y=-2x
B.y=-3x
C.y=-4x
D.y=-8x
解析:选C.初始值x=0,y=-1,n=1,执行循环体,x=0,y=-1,x2+y2<36,n=2,x=,y=-2,x2+y2<36,n=3,x=,y=-6,x2+y2>36,退出循环,输出x=,y=-6,此时x,y满足y=-4x,故选C.
8.(2020·原创冲刺卷三)执行如图所示的程序框图,若输出结果为y=44.5,则循环体的判断框内应填( )
A.x<88? B.x≤89?
C.x<89? D.x≤90?
解析:选B.因为sin21°+sin22°+…+sin289°=44(sin21°+sin289°)+sin245°=44(sin21°+cos21°)+sin245°=44.5,所以判断框内应填“x≤89?”.
9.(2020·长春市质量监测(一))我国古代数学著作《九章算术》有如下问题:“今有器中米,不知其数,前人取半,中人三分取一,后人四分取一,余米一斗五升(注:一斗为十升).问,米几何?”如图是解决该问题的程序框图,执行该程序框图,若输出的S=15(单位:升),则输入的k的值为( )
A.45 B.60
C.75 D.100
解析:选B.依题意知,n=1,S=k,满足条件n<4,执行循环体,n=2,S=k-=;满足条件n<4,执行循环体,n=3,S=-=;满足条件n<4,执行循环体,n=4,S=-=,此时不满足条件n<4,退出循环,输出的S=.由题意可得=15,解得k=60,故选B.
10.(2020·河北省九校第二次联考)执行如图所示的程序框图,如果输入的a,b,k分别为1,2,4,输出的M=,那么判断框中应填入的条件为( )
A.n1 THEN
y=x-2
ELSE
y=2*x
END IF
PRINT y
END
解析:由程序可知,它解决的是求分段函数y=的函数值问题,显然,当x=时,y=-2;当x=0时,y=0.故输出的结果是-2和0.
答案:-2和0
[综合题组练]
1.(2020·石家庄市质量检测(二))20世纪70年代,流行一种游戏——角谷猜想,
规则如下:任意写出一个自然数n,按照以下的规律进行变换,如果n是奇数,则下一步变成3n+1;如果n是偶数,则下一步变成.这种游戏的魅力在于无论你写出一个多么庞大的数字,最后必然会落在谷底,更准确地说是落入底部的4-2-1循环,而永远也跳不出这个圈子,下列程序框图就是根据这个游戏而设计的,如果输出的i值为6,则输入的n值为( )
A.5 B.16
C.5或32 D.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.
2.(2020·河南开封一模)我国古代名著《庄子·天下篇》中有一句名言“一尺之棰,日取其半,万世不竭”,其意思是:一尺的木棍,每天截取一半,永远都截不完.现将该木棍依此规律截取,如图所示的程序框图的功能就是计算截取7天后所剩木棍的长度(单位:尺),则①②③处可分别填入的语句是( )
A.i<7,s=s-,i=2i
B.i≤7,s=s-,i=2i
C.i<7,s=,i=i+1
D.i≤7,s=,i=i+1
解析:选D.由题意可知第一天后剩下,第二天后剩下,…,由此得出第7天后剩下,则①应为i≤7,②应为s=,③应为i=i+1,故选D.
3.关于函数f(x)=的程序框图如图所示,现输入区间[a,b],则输出的区间是 .
解析:由程序框图的第一个判断条件为f(x)>0,当f(x)=cos x,x∈[-1,1]时满足.然后进入第二个判断框,需要解不等式f′(x)=-sin x≤0,即0≤x≤1.故输出区间为[0,1].
答案:[0,1]
4.执行如图所示的程序框图,若输入向量a=c=(-2,2),b=(1,0),则输出S的值是 .
解析:程序对应的运算:
a=c=(-2,2),则a·c=8,S=0+8=8,i=1,c=c+b=(-1,2);
a=(-2,2),b=(1,0),c=(-1,2),则a·c=6,S=8+6=14,i=2,c=c+b=(0,2);
a=(-2,2),b=(1,0),c=(0,2),则a·c=4,S=14+4=18,i=3,c=c+b=(1,2);
a=(-2,2),b=(1,0),c=(1,2),则a·c=2,S=18+2=20,i=4,c=c+b=(2,2);
a=(-2,2),b=(1,0),c=(2,2),则a·c=0,此时跳出循环体.故输出S的值为20.
答案:20