11.2算法结构与程序框图
第一课时 顺序结构
1.程序框图
(1)定义:程序框图是一种用程序框、流程线以及文字符号说明等基本元件的组合来表示算法的图形.
(2)基本元件及其功能
名 称
图 形
功 能
终端框(起止框)
表示一个算法的起始和结束
输入、输出框
数据的输入或者结果的输出
处理框(执行框)
赋值、计算,传送结果
判断框(选择框)
根据给定条件判断,成立时出口为“是”,否则为“否”
流程线
连接程序框,表示流程方向
连接点
连接需分页的程序框图的两部分
2.顺序结构
(1)概念:依次进行多个处理步骤的结构称为顺序结构,它是一种最简单、任何算法都不可缺少的基本结构.
(2)一般形式:顺序结构的一般形式可以用程序框图表示(如图),其中A,B是两个依次执行的步骤.
1.程序框图通常由哪些基本元件组成?
提示:(1)表示相应操作的程序框(开始和结束必须要有终端框);
(2)带箭头的流程线(画流程线时不要忘记箭头,因为箭头代表程序执行的走向);
(3)框内(框外)必要的文字说明.
2.顺序结构的应用有哪些?
提示:(1)顺序结构描述的是最简单、最基本的算法结构.语句与语句之间,框与框之间是按从上到下的顺序进行的;
(2)顺序结构对同一问题,往往途径并不唯一,要体会不同方法的优劣,从中选出最优的、最简单的、最易于计算机执行、人工操作尽量少的算法.
对程序框图的认识和理解
下列关于程序框图的框图符号的理解,正确的个数有( )
①任何一个程序框图都必须有起止框;
②输入框、输出框可以在算法中任何需要输入、输出的位置出现;
③判断框是唯一具有超过一个退出点的框图符号;
④对于一个程序来说,判断框内的条件是唯一的.
A.1 B.2
C.3 D.4
[解析] 任何一个程序都有开始和结束,从而必须有起止框;输入、输出框可以在算法中任何需要输入、输出的位置出现;判断框是唯一具有超过一个退出点的框图符号;判断框内的条件不是唯一的,如a>b也可以写为a≤b.故①②③正确,④错误.
[答案] C
画程序框图必须遵守的规则
(1)使用标准的框图符号;
(2)框图一般按从上到下、从左到右的方向画;
(3)除判断框外,其他框图符号只有一个进入点和一个退出点,判断框是具有超过一个退出点的唯一符号;
(4)一种判断框是二择一形式的判断,且仅有两个可能结果;另一种是多分支判断,可能有几种不同的结果;
(5)在图形符号内描述的语言要非常简练清楚.
1.下列关于程序框图的说法正确的是( )
①程序框图只有一个入口,也只有一个出口;
②程序框图中的每一部分都应有一条从入口到出口的路径通过它;
③流程线只要是上下方向就表示上下执行,可以不要箭头;
④连接点是用来连接两个程序框图的.
A.①②③ B.②③
C.①④ D.①②
解析:选D 由框图符号及作用可知③④错误,流程线表示算法步骤执行的顺序,用来连接程序框,是带箭头的直线或折线,应用时必须带箭头;连接点是连接同一个程序框图的不同部分的.
利用顺序结构表达算法
求两底半径分别为1和4,且高为4的圆台的表面积及体积.写出该问题的一个算法,并画出程序框图.
[解] 算法:
S1:取r1=1,r2=4,h=4;
S2:计算l=;
S3:计算S1=πr,S2=πr,S3=π(r1+r2)l;
S4:计算S=S1+S2+S3,V=(S1++S2)h;
S5: 输出S和V.
该算法的程序框图如图所示.
应用顺序结构表达算法的步骤
(1)认真审题,理清题意,明确解决方法;
(2)明确解题步骤;
(3)数学语言描述算法,明确输入量、计算过程、输出量;
(4)用程序框图表示算法过程.
2.已知一个圆柱的底面半径为R,高为h,求圆柱的体积.设计一个解决该问题的算法,并画出相应的程序框图.
解:算法如下:
第一步,输入R,h.
第二步,计算V=πR2h.
第三步,输出V.
程序框图如图所示:
程序框图的功能识别
如图所示是解决某个问题而绘制的算法框图,仔细分析各程序框内的内容及程序框之间的关系,回答下面的问题:
(1)该算法框图解决的是怎样的一个问题?
(2)若最终输出的结果y1=3,y2=-2,当x取5时输出的结果5a+b的值应该是多大?
(3)在(2)的前提下,输入的x值越大,输出的ax+b是不是越大?为什么?
(4)在(2)的前提下,当输入的x值为多大时,输出结果ax+b等于0?
[解] (1)该算法框图解决的是求函数f(x)=ax+b的函数值的问题.
其中输入的是自变量x的值,输出的是x对应的函数值.
(2)y1=3,即2a+b=3, ①
y2=-2,即-3a+b=-2. ②
由①②得a=1,b=1.
∴f(x)=x+1.
∴当x取5时,5a+b=f(5)=5+1=6.
(3)输入的x值越大,输出的函数值ax+b越大,
因为f(x)=x+1是R上的增函数.
(4)令f(x)=x+1=0,得x=-1,所以当输入的x值为-1时,输出的函数值为0.
顺序结构的框与框之间是按从上到下的顺序进行的,准确理解框图符号的定义及作用是解决此类问题的关键.
3.如图所示的程序框图的运行结果是( )
A.2 B.
C. D.4
解析:选B 由a=2,b=4,得S=+=.
[随堂体验落实]
1.一个完整的程序框图至少包含( )
A.终端框和输入、输出框
B.终端框和处理框
C.终端框和判断框
D.终端框、处理框和输入、输出框
解析:选A 完整的程序框图必须有终端框,用来表示程序的开始与结束,还要包括输入、输出框,用来处理程序的执行,故选A.
2.下列说法中正确的是( )
A.程序框图中的图形符号可以由个人来确定
B.也可以用来执行计算的语句
C.输入框只能紧接在起始框之后
D.用程序框图表示算法,其优点是使算法表示得非常直观、清晰
解析:选D 程序框图中的符号有严格标准,不能由个人确定,故A错误;只能执行判断问题,不能执行计算语句,故B错误;输入框不一定紧接在起始框之后,也可在赋值框之后,故C错误.
3.阅读下列程序框图:
若输出结果为0,则①处的执行框内应填的是( )
A.x=-1 B.b=0
C.x=1 D.a=
解析:选A 先确定执行框内是给x赋值然后倒着推,b=0时,2a-3=0,a=,a=时,2x+1=,x=-1.
4.下面程序框图表示的算法的运行结果是________.
解析:由题意P==9,S==6.
答案:6
5.已知点P0(x0,y0)和直线l:Ax+By+C=0,求点P0到直线l的距离d,设计算法,并画出程序框图.
解:S1:输入x0,y0,A,B,C;
S2:计算z1=Ax0+By0+C;
S3:计算z2=A2+B2;
S4:计算d=;
S5:输出d.
按照以上所描述,画出程序框图如图.
[感悟高手解题]
[易错题]
已知f(x)=x2-2x-3.画出求f(3)、f(-5)、f(5)的值的一个算法程序框图.
[错解] 程序框图如图所示.
[错因] 从框图可以看出一开始对x同时赋了三个数值,
但计算y的值时实际上只计算了一次,
即只计算了当x=3时,y=32-2×3-3,
输出y的值也只能是一个y=0,即f(3)=0.而f(-5)、
f(5)虽然也赋了值,但计算机却只执行了x=3时的计算.
本算法错在对x赋值3次,相应的没有分别对y值替换3次,
违背了算法过程中要一步一步执行且每一步不可逆的规则.
[正解] 程序框图如图所示.
一、选择题
1.在程序框图中,算法中间要处理数据或计算,可分别写在不同的( )
A.处理框内 B.判断框内
C.输入、输出框内 D.终端框内
解析:选A 由处理框的意义可知,对变量进行赋值,执行计算语句,处理数据,结果的传送等都可以放在处理框内.
2.如图所示的程序框图表示的算法意义是( )
A.边长为3,4,5的直角三角形面积
B.边长为3,4,5的直角三角形内切圆面积
C.边长为3,4,5的直角三角形外接圆面积
D.以3,4,5为弦的圆面积
解析:选B 由直角三角形内切圆半径r=,故选B.
3.如图所示的程序框图表示的算法描述不准确的是( )
A.可用来判断a,b,c是否是一组勾股数
B.可用来判断a,b,c之间的大小顺序
C.可用来判断(a,b)是否在直线x=c上
D.可用来判断(a,b)与圆心在原点,半径为的圆的位置关系
解析:选B 从所给的程序框图可以看出此算法不能执行比较a,b,c三者大小的功能.
4.给出如图所示的程序框图:若输出的结果为2,则①处的执行框内应填的是( )
A.x=2 B.b=2
C.x=1 D.a=5
解析:选C ∵结果是b=2,
∴2=a-3,
即a=5.
当2x+3=5时,得x=1.
二、填空题
5.基本的程序框有________、________、________、________,其中________是任何程序框图中不可缺少的.
答案:起止框 输入、输出框 执行框 判断框 起止框
6.根据如图所示的程序框图所表示的算法,输出的结果是________.
解析:该算法的S1分别将X,Y,Z赋于1,2,3三个数,
S2使X取Y的值,即X取值变成2,
S3使Y取X的值,即Y的值也是2,
S4使Z取Y的值,即Z的取值也是2,
从而S5输出时,Z的值是2.
答案:2
7.如图所示的是一个算法的程序框图,已知a1=3,输出的结果为7,则a2的值是________.
解析:由a1=3,则b=3+a2,=7,∴a2=11.
答案:11
8.图1是计算图2中阴影部分面积的一个程序框图,则图1中①处应填________.
解析:正方形的面积为S1=a2,扇形的面积为S2=πa2,
则阴影部分的面积为S=S1-S2=a2-a2=a2.
因此①处应填S=a2.
答案:S=a2
三、解答题
9.画出用消去法求解方程组的程序框图.
解:程序框图为:
10.如图所示的程序框图,当输入的x的值为0和4时,输出的值相等,根据该图和下列各小题的条件回答下面的几个问题.
(1)该程序框图解决的是一个什么问题?
(2)当输入的x的值为3时,求输出的f(x)的值.
(3)要想使输出的值最大,求输入的x的值.
解:(1)该程序框图解决的是求二次函数
f(x)=-x2+mx的函数值的问题.
(2)当输入的x的值为0和4时,输出的值相等,
即f(0)=f(4).
因为f(0)=0,f(4)=-16+4m,
所以-16+4m=0,
所以m=4.
所以f(x)=-x2+4x.
因为f(3)=-32+4×3=3,
所以当输入的x的值为3时,输出的f(x)的值为3.
(3)因为f(x)=-x2+4x=-(x-2)2+4,
当x=2时,f(x)max=4,
所以要想使输出的值最大,输入的x的值应为2.
第二课时 条 件 结 构
1.条件结构
在一个算法中,先根据条件是否成立作出判断,再决定执行哪一种操作,从而使算法流程产生不同流向的结构称为条件结构.
2.条件结构的两种形式
1.条件结构的两种形式有什么区别?
提示:一种是在两个分支中都包含算法的步骤,符合条件就执行步骤A,否则执行步骤B;另一种是在一个分支中包含算法的步骤A,而在另一个分支上不包含算法的任何步骤,符合条件就执行步骤A,否则执行这个条件结构后的步骤.
2.条件结构与顺序结构有哪些共性?
提示:(1)执行时,一个入口,一个出口.注意:一个判断框有两个出口,但只有一个起作用,因此我们说在执行时,一个条件结构本质上只有一个出口.
(2)结构中每个程序框都有从入口进、出口出的路径.
简单条件结构的程序框图设计
已知分段函数f(x)=设计一个算法,对输入的x的值,输出相应的函数值,并画出程序框图.
[解] 算法步骤如下:
S1:输入x;
S2:判断x,若x≥2,则y=x2-x+1;否则y=x+1;
S3:输出y.
程序框图如图所示.
解决求分段函数的函数值的问题,
一般采用条件结构来设计算法,由于自变量取不同范围内的值时,函数表达式不同,因此解决这类问题时,首先设置好判断框内的条件,然后根据条件是否成立选择不同的流向.
1.设计一个算法计算函数y=|x-1|的函数值,并画出程序框图.
解:算法如下:
S1:输入x;
S2:判断x,若x≥1,
则y=x-1,否则执行S3;
S3:y=1-x;
S4:输出y.
程序框图如图所示.
与条件结构有关的读图问题
阅读程序框图,回答问题:若a=50.6,b=0.65,c=log0.55,则输出的结果为________.
[解析] 我们根据框图可以按顺序从上到下分析.
S1:输入a,b,c三个数;
S2:判断a与b,a与c的大小,如果a同时大于b,c,则输出a,否则执行S3;
S3:判断b与c的大小,因为a已小于b或c,则只需比较b与c的大小就能得出a,b,c中谁是最大的了,如果b>c,就输出b,否则输出c.
通过上面的分析,框图表示的算法是:给任意三个数a,b,c,输出最大的一个数.题中a>1,0[答案] 50.6
条件结构读图注意的两点
(1)理清所要实现的算法的结构特点和流程规则,分析其功能.
(2)结合框图判断所要填入的内容或计算所要输出或输入的值.
2.已知M=ln 2,N=lg 10,执行如图所示的程序框图,则输出S的值为________.
解析:依题意,可得M答案:ln 2
条件结构的实际应用
为了加强居民的节水意识,某市制定了以下生活用水收费标准:每户每月用水未超过7立方米时,每立方米收费1.0元,并加收每立方米0.2元的城市污水处理费;超过7立方米的部分,每立方米收费1.5元,并加收每立方米0.4元的城市污水处理费.设某户每月用水量为x立方米,应缴纳水费y元,请你设计一个输入用水量、输出应缴水费额的算法,画出程序框图.
[解] y与x之间的函数关系式为
y=
算法设计如下:
第一步,输入每月用水量x(x≥0).
第二步,判断输入的x是否超过7,若x>7,则应缴纳水费y=1.9x-4.9;否则应缴纳水费y=1.2x.
第三步,输出应缴水费y.
程序框图如图所示:
算法问题经常涉及到与现实生活有关的题目,解答时,首先根据题意写出函数的表达式,然后选择合适的结构设计程序框图,因此,解题的关键是写出函数解析式.
3.在音乐唱片超市里,每张唱片售价25元.顾客如果购买5张以上(含5张)唱片,则按九折收费;如果顾客买10张以上(含10张)唱片,则按照八五折收费,请设计一个完成计费工作的算法,画出程序框图.
解:本题是一个实际问题,应先建立数学模型.假设用变量a表示顾客买的唱片数,用c表示顾客要缴纳的现金款,依题意应有:
c=
算法步骤如下:
S1:输入a;
S2:若0≤a<5,则c=25a,否则执行S3;
S3:若a<10,则c=22.5a,否则(a≥10)c=21.25a;
S4:输出c.
程序框图如图:
[随堂体验落实]
1.下列问题的算法宜用条件结构表示的是( )
A.求点P(-1,3)到直线3x-2y+1=0的距离
B.由直角三角形的两条直角边求斜边
C.解不等式ax+b>0(a≠0)
D.计算100个数的平均数
解析:选C A、B、D只需顺序结构即可.
2.阅读下面的程序框图,若输入a,b,c分别是21,32,75,则输出的值是( )
A.96 B.53
C.107 D.128
解析:选A ∵21<32,∴m=21+75=96.即输出96.
3.若输入-5,按图中所示程序框图运行后,输出的结果是( )
A.-5 B.0
C.-1 D.1
解析:选D 因x=-5,不满足x>0,所以在第一个判断框中执行“否”,在第二个判断框中,由于-5<0,执行“是”,所以得y=1.
4.阅读程序框图,当x=6时,输出的结果为________.
解析:由程序框图可得:f(x)=∴当x=6时,f(6)=4.
答案:4
5.已知y=|x-3|,下列程序框图表示的是给定x值,求其相应函数值的算法.请将该程序框图补充完整,其中①处应填________;②处应填________.
解析:由y=|x-3|,需对x-3的正负进行判断.故判断框内应为x<3,
因为“是”时,为y=3-x,故“否”时,即x≥3时,为y=x-3.
答案:x<3 y=x-3
6.画出解不等式ax>b(b≥0)的程序框图.
解:程序框图如图:
[感悟高手解题]
[多解题]
已知函数y=设计算法程序框图,要求输入自变量后输出相应的 函数值.
[解] 法一:算法程序框图如图所示:
法二:算法程序框图如图所示:
[点评] 一般地在遇到含有分类讨论问题时,框图的结构设计都要用到条件结构,但应注意,不同的分类标准会画出不同的框图.
一、选择题
1.求下列函数的函数值的算法中需要用到条件结构的是( )
A.f(x)=x2-1 B.f(x)=2x+1
C.f(x)= D.f(x)=2x
解析:选C C项中函数f(x)是分段函数,需分类讨论x的取值范围,要用条件结构来设计算法,A,B,D项中均不需要用条件结构.
2.如图所示,给出一个程序框图,其作用是输入x的值,输出相应的y的值.若要使输入的x的值与输出的y的值相等,则输入这样的x值的个数有( )
A.1 B.2
C.3 D.4
解析:选C 当x≤2时,x=1或x=0,则x=y;
当2当x>5时,x=不成立,所以满足题意的x的值有1,0,3.
3.对任意的非零实数a,b,若a?b的运算原理如图所示,且min{a,b,c}表示a,b,c中的最小值,则2?min{1,log0.30.1,30.1}的值为( )
A.0 B.1
C.2-log0.30.1 D.2-30.1
解析:选B 由程序框图知a?b=
∵log0.30.1>log0.30.3=1,30.1>1,
∴min{1,log0.30.1,30.1}=1,
故2?min{1,log0.30.1,30.1}=2?1=2-1=1.
4.如图中,x1,x2,x3为某次考试三个评阅人对同一道题的独立评分,p为该题的最终得分,当x1=6,x2=9,p=8.5时,x3等于( )
A.10 B.7
C.8 D.11
解析:选C x1=6,x2=9,|x1-x2|=3≤2不成立,即为“否”,所以再输入x3;由绝对值的意义(一个点到另一个点的距离)和不等式|x3-x1|<|x3-x2|知,点x3到点x1的距离小于点x3到x2的距离,所以当x3<7.5时,|x3-x1|<|x3-x2|成立,即为“是”,此时x2=x3,所以p=,即=8.5,解得x3=11>7.5,不合题意;当x3>7.5时,|x3-x1|<|x3-x2|不成立,即为“否”,此时x1=x3,所以p=,即=8.5,解得x3=8>7.5,符合题意.
二、填空题
5.如图所示的程序框图,若a=5,则输出b=________.
解析:这是一个分段函数b=的求值问题,
根据条件易知b=52+1=26.
答案:26
6.如图所示的程序框图运行后输出结果为,则输入的x值为________.
解析:程序框图表示的是求分段函数
y=的函数值,
由得x=;
由得x=-1.
又由无解,故x=-1或x=.
答案:-1或
7.已知函数y=如图表示的是给定x的值,求其对应的函数值y的程序框图.①处应填写______;②处应填写________.
解析:∵满足判断框中的条件执行y=2-x,
∴①处应填x<2.
不满足x<2即x≥2时,y=log2x,
故②处应填y=log2x.
答案:x<2 y=log2x
8.定义某种新运算“?”:S=a?b的运算原理为如图的程序框图所示,则式子 5?4-3?6=________.
解析:由题意知5?4=5×(4+1)=25,3?6=6×(3+1)=24,
所以5?4-3?6=1.
答案:1
三、解答题
9.某快递公司规定甲、乙两地之间物品的托运费用根据下列方法计算:
f=
其中f(单位:元)为托运费,ω为托运物品的重量(单位:kg),试画出计算费用f的框图.
解:框图如下:
10.已知如图所示的程序框图,其功能是给出x的值,求函数y=f(x)对应的函数值.
(1)写出函数y=f(x)的解析式;
(2)若输入的x值分别为x1和x2(|x1|<|x2|)时,输出的y值相同,试简要分析x1与x2的取值范围.
解:(1)由程序框图知该程序框图的功能是求函数f(x)=|x2-1|的值,
故f(x)的解析式为f(x)=|x2-1|.
(2)画出f(x)=|x2-1|的图象,
由图象的对称性知,要使f(x1)=f(x2)且|x1|<|x2|,需-1同时1故x1的取值范围是(-1,1),x2的取值范围是[-,-1)∪(1,].
第三课时 循 环 结 构
1.循环结构的概念
在算法中,从某处开始按照一定的条件重复执行某些步骤的结构称为循环结构,其中 反复执行的步骤形成循环体.
2.循环结构的两种形式
名称
直到型循环结构
当型循环结构
结构
特征
先执行循环体,再判断条件p是否成立,若条件p不成立,就继续执行循环体,直到条件p成立时才终止循环.
在每次执行循环体前都先判断条件p是否成立,当条件p成立,就执行循环体,当条件p不成立时才终止循环.
1.循环结构中一定有条件结构吗?
提示:循环结构中一定包含有条件结构,用于确定何时终止执行循环体.
2.循环结构如何控制循环次数?
提示:有些算法,循环次数可以预先设定;而有些算法预先难以知道循环次数,通过设置某个条件,当条件满足时,就重复操作;当条件不满足时,就退出循环.
3.当型循环和直到型循环有什么区别?
提示:(1)执行情况不同.当型循环是先判断条件,当条件成立时才执行循环体,若循环条件一开始就不成立,则循环体一次也不执行.而直到型循环是先执行一次循环体,再判断循环条件,循环体至少要执行一次.
(2)退出循环的条件不同,当型循环结构是当条件成立时循环,条件不成立时停止循环,而直到型循环结构是条件不成立时循环,直到条件成立时结束循环.
用循环结构解决累加、累乘问题
设计一个算法求+++…+的值,并画出程序框图.
[解] 算法如下:
S1:令S=0,i=1;
S2:若i≤2 018成立,则执行S3;否则,输出S,结束算法;
S3:S=S+;
S4:i=i+1,返回S2.
程序框图:
法一:
法二:
1.如果算法问题里涉及的运算进行多次重复的操作,且先后参与运算的各数之间有相同的变化规律,就可以引入循环变量参与运算,构成循环结构.在循环结构中,要注意根据条件设置合理的计数变量,累加(乘)变量,同时条件的表述要恰当,精确.累加变量的初值一般为0,而累乘变量的初值一般为1.
2.利用循环结构表示算法时,在画出算法的框图之前就应该分析清楚循环结构的 三要素:
循环变量、循环体、循环终止条件,只有准确地把握了这三个要素,才能清楚地画出循环结构的算法框图.
(1)循环变量:一般分为累计变量和计数变量,应明确它的初始值、步式(指循环变量每次增加的值)、终值.
(2)循环体:也称循环表达式,它是算法中反复执行的部分.
(3)循环的终止条件:算法框图中用一个判断框来表示,用它判断是否继续执行循环体.
1.设计一个算法计算1+2+…+100的值,并画出程序框图.
解:算法如下:
S1:令i=1,S=0;
S2:若i≤100成立,则执行S3;否则,输出S结束算法;
S3:S=S+i;
S4:i=i+1,返回S2.
程序框图:
法一:
法二:
与循环结构有关的读图问题
某店一个月的收入和支出总共记录了N个数据a1,a2,…,aN,其中收入记为正数,支出记为负数.该店用下边的程序框图计算月总收入S和月净盈利V.那么在图中空白的判断框和处理框中,应填入下列四个选项中的( )
A.A>0,V=S-T
B.A<0,V=S-T
C.A>0,V=S+T
D.A<0,V=S+T
[解析] ∵S代表收入,T代表支出.程序框图执行到判断框时,需判定的是A被赋予的值代表的是收入还是支出,即A的正负,且当A代表收入时应累加到S,故填A>0,进而知T<0,∴V=S+T.
[答案] C
高考对程序框图考查的类型之一就是读图,因此考生需要明白程序框图的作用是什么,解决的是一个什么样的问题,这样才能解决相应的问题.
2.如图给出一个计算1+++…+的值的一个框图,其中①处应填________,②处应填________.
解析:∵开始时S=0,i=1,∴①处应为S=S+,
②处应为i=i+2.
答案:S=S+ i=i+2
循环结构的实际应用
某工厂2017年前6个月,销售收入逐月减少,6月份销售收入为3 000万元,受国家适度宽松的经济政策等有利因素的影响,工厂经济平稳回升,以后销售收入每月增长10%,那么2018年6月份该工厂月销售收入多少万元?试设计一个计算该工厂月销售收入的算法,并画出程序框图.
[解] 算法如下:
S1:令i=1,S=3 000;
S2:若i≤12成立,则执行S3;否则输出S,结束算法;
S3:S=S×(1+0.1);
S4:i=i+1,返回S2.
程序框图如图:
利用循环结构解决应用问题的方法
3.某工厂2017年的生产总值为200万元,技术革新后预计以后每年的生产总值比上一年增加5%,问最早到哪一年年生产总值超过300万元.写出计算的一个算法并画出相应的框图.
解:算法如下:
S1:赋初始值n=0,a=200,r=0.05;
S2:若a≤300,则执行S3,否则执行S6;
S3:T=ar(计算年增量);
S4:a=a+T(计算年产量);
S5:n=n+1,重复执行S2;
S6:N=2 017+n;
S7:输出N.
框图如图所示:
[随堂体验落实]
1.①算法可以无限的操作下去;②算法的每一步操作必须是明确的,可行的;③一个程序框图一定包含顺序结构;④一个程序框图不一定包含条件结构和循环结构.
以上说法正确的个数是( )
A.1 B.2
C.3 D.4
解析:选C ②③④是正确的,①不正确,算法步骤必须是有限的.
2.运行如图程序框图,输出的结果为( )
A.15 B.21
C.28 D.36
解析:选C n=1,S=1+0=1;n=2,S=3;n=3,S=6;n=4,S=10;n=5,S=15;n=6,S=21;n=7,S=28.n=8时,不满足n≤7,因此输出S=28.
3.如图所示的框图表示的算法的功能是( )
A.计算小于100的奇数的连乘积
B.计算从1开始的连续奇数的连乘积
C.从1开始的连续奇数的连乘积,当乘积大于100时,计算奇数的个数
D.计算1×3×5×…×n≥100时的最小的n值
解析:选D 该算法的功能是计算1×3×5×…×n≥100时的最小的n值.
4.如图所示,该程序运行后输出的结果为________.
解析:i=1时,S=2×1+1=3;
i=2时,S=2×3+1=7;
i=3时,S=2×7+1=15;
i=4时,S=2×15+1=31;
i=5时,S=2×31+1=63;
i=6时,退出循环;输出S=63.
答案:63
5.根据条件把图中的程序框图补充完整,求区间[1,1 000]内所有奇数的和,(1)处填________;(2)处填________.
解析:求[1,1 000]内所有奇数和,初始值i=1,S=0,并且i<1 000,
所以(1)应填S=S+i,(2)为i=i+2.
答案:(1)S=S+i (2)i=i+2
6.设计一个程序框图,求满足1+2+3+…+n>2 018的最小正整数n.
解:程序框图如图所示:
[感悟高手解题]
[妙解题]
已知小于10 000的正偶数,当它被3,4,5,6除时,余数都是2,写出求这样的正偶数的算法的程序框图.
[解] 偶数首先一定是整数,因此,我们应该在程序的开始定义一个变量,并设初值为2,最后输出的是一个偶数,这个偶数应满足的条件是分别被3,4,5,6除时,余数为2,而且应该是同时满足上述条件.所以条件判断式中几个条件应该是“且”的关系.因为是对偶数进行处理,所以每次变量的增值应该是2,而不是1,这样才能保证每次是对偶数进行的处理,程序框图如图所示.
一、选择题
1.执行如图所示的程序框图,输出的S值为( )
A.2 B.4
C.8 D.16
解析:选C 当k=0时,满足k<3,因此S=1×20=1;
当k=1时,满足k<3,因此S=1×21=2;
当k=2时,满足k<3,因此S=2×22=8;
当k=3时,不满足k<3,因此输出S=8.
2.如图所示的程序框图,其功能是计算数列{an}前n项和的最大值S,则( )
A.an=29-2n,S=225
B.an=31-2n,S=225
C.an=29-2n,S=256
D.an=31-2n,S=256
解析:选B 由程序框图可知,该等差数列的首项为29,公差为-2,
故an=29-(n-1)×2=31-2n,
因为a15=1,a16=-1,所以S=×15=225.
3.(山东高考)执行两次如图所示的程序框图,若第一次输入的x的值为7,第二次输入的x的值为9,则第一次、第二次输出的a的值分别为( )
A.0,0 B.1,1
C.0,1 D.1,0
解析:选D 当输入x=7时,b=2,因为b2>x不成立且x不能被b整除,故b=3,这时b2>x成立,故a=1,输出a的值为1.当输入x=9时,b=2,因为b2>x不成立且x不能被b整除,故b=3,这时b2>x不成立且x能被b整除,故a=0,输出a的值为0.
4.执行如图所示的程序框图,如果输入的t=0.01,则输出的n=( )
A.5 B.6
C.7 D.8
解析:选C 运行第一次:S=1-==0.5,m=0.25,n=1,S>0.01;
运行第二次:S=0.5-0.25=0.25,m=0.125,n=2,S>0.01;
运行第三次:S=0.25-0.125=0.125,m=0.062 5,n=3,S>0.01;
运行第四次:S=0.125-0.062 5=0.062 5,m=0.031 25,n=4,S>0.01;
运行第五次:S=0.031 25,m=0.015 625,n=5,S>0.01;
运行第六次:S=0.015 625,m=0.007 812 5,n=6,S>0.01;
运行第七次:S=0.007 812 5,m=0.003 906 25,n=7,S<0.01.
输出n=7.故选C.
二、填空题
5.阅读如图所示的程序框图,运行相应的程序,输出的S值等于________.
解析:第一次循环:S=1,k=1<4,S=2×1-1=1,k=1+1=2;
第二次循环:k=2<4,S=2×1-2=0,k=2+1=3;
第三次循环:k=3<4,S=2×0-3=-3,k=3+1=4;
当k=4时,k<4不成立,循环结束,此时S=-3.
答案:-3
6.如图所示是求函数y=-3x+5,当x∈{0,3,6…,60}时的函数值的一个程序框图,则在①处应填________.
解析:根据所提供的数据并结合程序框图,知①处填x=x+3.
答案:x=x+3
7.如图所示的程序框图的输出结果为________.
解析:运行程序,第一次循环后,k=3,S=2;
第二次循环后,k=5,S=4;
第三次循环后,k=7,S=8;
第四次循环后,k=9,S=16.
此时S≤8不成立,故输出的k=9.
答案:9
8.某城市缺水问题比较突出,为了制定节水管理办法,对全市居民某年的月均用水量进行了抽样调查,其中n位居民的月均用水量分别为x1,...,xn(单位:吨).根据如图所示的程序框图,若n=2,且x1,x2分别为1,2,则输出的结果S为________.
解析:当i=1时,S1=1,S2=1;
当i=2时,S1=1+2=3,S2=1+22=5,
此时S=×=.
i的值变成3,从循环体中跳出,输出S的值为.
答案:
三、解答题
9.画出求解1×3+2×4+3×5+4×6+5×7+6×8+7×9的值的程序框图.
解:题目所求的是一些乘积的和,设计一个循环结构,计数变量设为i,累加变量设为S,每次循环S加上i×(i+2).程序框图如图所示:
10.某高中男子体育小组50 m跑成绩(单位:s)为:6.4,6.5,7.0,6.8,7.1,7.3,6.9,7.4,7.5.
设计一个算法,从这些成绩中搜索出小于6.8 s的成绩,并画出程序框图.
解:算法:S1:把计数变量n的初始值设为1;
S2:输入一个成绩r,判断r与6.8的大小.若r≥6.8,则执行S3;若r<6.8,则输出r,并执行S3;
S3:使计数变量n的值增加1;
S4:判断计数变量n与成绩个数9的大小.若n≤9,则返回S2;若n>9,则结束.
程序框图如下: