- 743.00 KB
- 2021-06-11 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
§12.4 算法与程序框图
考纲展示►
1.了解算法的含义,了解算法的思想.
2.理解程序框图的三种基本逻辑结构:顺序结构、条件结构、循环结构.
3.理解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句的含义.
考点1 顺序结构和条件结构
1.算法的定义
算法通常是指按照一定规则解决某一类问题的明确和有限的步骤.
2.程序框图
(1)程序框图又称流程图,是一种用________、流程线及文字说明来表示算法的图形.
(2)基本的程序框有终端框(起止框)、输入、输出框、________________、判断框.
答案:(1)程序框 (2)处理框(执行框)
3.三种基本逻辑结构
名称内容
顺序结构
条件结构
循环结构
定义
由若干个按先后顺序执行的步骤组成,这是任何一个算法都离不开的基本结构
算法的流程根据条件是否成立而选择执行不同的流向的结构形式
从某处开始,按照一定的条件反复执行某些步骤的情况,反复执行的步骤称为循环体
程序
框图
(1)
(2)
(1)
(2)
[典题1] (1)[2015·福建卷]阅读如图所示的程序框图,运行相应的程序,若输入x的值为1,则输出y的值为( )
A.2 B.7
C.8 D.128
[答案] C
[解析] 由程序框图知,
y=
∵输入x的值为1,比2小,∴执行的程序要实现的功能为9-1=8,故输出y的值为8.
(2)执行如图所示的程序框图,如果输入的x,y∈R,那么输出的S的最大值为( )
A.0 B.1
C.2 D.3
[答案] C
[解析] 当时,由线性规划的图解法知,目标函数S=2x+y的最大值为2;当x≥0,y≥0,x+y≤1不成立时,S的值为1.所以输出的S的最大值为2.
[题点发散1] 若将本例(1)中“x≥2?”改为“x<2?”,则y为何值?
解:由程序框图可知,y=21=2.
[题点发散2] 在本例(1)中,能否输入一个数x,使输出的y值与x值相等?
解:当x≥2时,2x=x,显然无解;
当x<2时,9-x=x,
解得x=>2,与x<2矛盾.
综上可知,不存在这样的x使输出的y值与x值相等.
[题点发散3] 在本例(1)中,若将“输入x的值为1”改为“输入x∈[-1,3]”,求y的取值范围.
解:由程序框图可知,y=
又x∈[-1,3],
所以当x∈[-1,2)时,y=9-x,
此时y∈(7,10].
当x∈[2,3]时,y=2x∈[4,8].
故y的取值范围为[4,10].
[点石成金] 1.顺序结构是最简单的算法结构,语句
与语句之间、框与框之间是按从上到下的顺序进行的.
2.解决此类问题,只需分清运算步骤、赋值量及其范围,进行逐步运算即可.
3.条件结构中条件的判断关键是明确条件结构的功能,然后根据“是”的分支成立的条件进行判断.
4.对条件结构,无论判断框中的条件是否成立,都只能执行两个分支中的一个,不能同时执行两个分支.
定义一种运算“*”:a*b=s,其运算原理是如图所示的程序框图,阅读程序框图,则式子A=
答案:1 560
解析:A=
考点2 循环结构
[考情聚焦] 循环结构是高考命题的一个热点问题,多以选择题、填空题的形式呈现,试题难度不大,多为容易题或中档题.
主要有以下几个命题角度:
角度一
由程序框图求输出结果
[典题2] (1)[2016·四川卷] 秦九韶是我国南宋时期的数学家,普州(现四川省安岳县)人,他在所著的《数书九章》中提出的多项式求值的秦九韶算法,至今仍是比较先进的算法.如图所示的程序框图给出了利用秦九韶算法求某多项式值的一个实例.若输入n,x的值分别为3,2,则输出v的值为( )
A.9 B.18 C.20 D.35
[答案] B
[解析] 执行程序框图,n=3,x=2,v=1,i=2≥0;v=1×2+2=4,i=1≥0;v=4×2+1=9,i=0≥0;v=9×2+0=18,i=-1<0,结束循环,输出v=18.故选B.
(2)[2015·新课标全国卷Ⅱ]下边程序框图的算法思路源于我国古代数学名著《九章算术》中的“更相减损术”.执行该程序框图,若输入的a,b分别为14,18,则输出的a=( )
A.0 B.2 C.4 D.14
[答案] B
[解析] a=14,b=18.
第一次循环:14≠18且14<18,b=18-14=4;
第二次循环:14≠4且14>4,a=14-4=10;
第三次循环:10≠4且10>4,a=10-4=6;
第四次循环:6≠4且6>4,a=6-4=2;
第五次循环:2≠4且2<4,b=4-2=2;
第六次循环:a=b=2,跳出循环,输出a=2,故选B.
[点石成金] 利用循环结构表示算法,第一要确定是利用当型还是直到型循环结构;第二要准确表示累计变量;第三要注意从哪一步开始循环.弄清进入或终止的循环条件、循环次数是做题的关键.
角度二
完善程序框图
[典题3] (1)如图所示程序框图的功能是:给出以下十个数:5,9,80,43,95,73,28,17,60,36,把大于60的数找出来,则框图中的①②应分别填入的是( )
A.x>60?,i=i-1 B.x<60?,i=i+1
C.x>60?,i=i+1 D.x<60?,i=i-1
[答案] C
[解析] 对于A,D,由于i=i-1,则会进入死循环,而对于B,选出的数小于60.
(2)如图,给出的是计算++…+的值的一个程序框图,则图中判断框内①处和执行框中的②处应填的语句是( )
A.i>100?,n=n+1 B.i>100?,n=n+2
C.i>50?,n=n+2 D.i≤50?,n=n+2
[答案] C
[解析] 经第一次循环得到的结果是
经第二次循环得到的结果是
经第三次循环得到的结果是
据观察S中最后一项的分母与i的关系是分母=2(i-1),
令2(i-1)=100,解得i=51,即需要i=51时输出.
故图中判断框内①处和执行框中的②处应填的语句分别是i>50?,n=n+2.
[点石成金] 解决程序框图填充问题的思路
(1)要明确程序框图的顺序结构、条件结构和循环结构.
(2)要识别、运行程序框图,理解框图所解决的实际问题.
(3)按照题目的要求完成解答并验证.
角度三
与统计的交汇问题
[典题4] 某地区为了了解70~80岁老人的平均日睡眠时间(单位:h),随机选择了50位老人进行调查.如下表所示是这50位老人日睡眠时间的频率分布表.
序号(i)
分组(睡
眠时间)
组中值
(Gi)
频数
(人数)
频率
(Fi)
1
[4,5)
4.5
6
0.12
2
[5,6)
5.5
10
0.20
3
[6,7)
6.5
20
0.40
4
[7,8)
7.5
10
0.20
5
[8,9]
8.5
4
0.08
在上述统计数据的分析中,一部分计算见如下程序框图,则输出的S的值是________.
[答案] 6.42
[解析] 由程序框图知,S为5组数据中的组中值(Gi)与对应频率(Fi)之积的和,则S=G1F1+G2F2+G3F3+G4F4+G5F5=4.5×0.12+5.5×0.20+6.5×0.40+7.5×0.20+8.5×0.08=6.42.
[点石成金] 解决此类问题的关键是读懂程序框图,明晰循环结构的程序框图的真正含义.对于本题,要认清程序框图运算的意义,即求5组数据中的组中值(Gi)与对应频率(Fi)之积的和.
考点3 基本算法语句
基本算法语句
(1)输入、输出、赋值语句的格式与功能
语句
一般格式
功能
输入语句
INPUT “提示内容”;________
输入信息
输出语句
PRINT “提示内容”;________
输出常量、变量的值和系统信息
赋值语句
变量=________
将表达式的值赋给变量
(2)条件语句的格式及框图
①IF-THEN格式
②IF-THEN-ELSE格式
(3)循环语句的格式及框图
①UNTIL语句
②WHILE语句
答案:(1)变量 表达式 表达式
(2)①语句体 ②语句体1
[典题5] (1)按照如图所示程序运行,则输出K的值是________.
[答案] 3
[解析] (1)第一次循环,X=7,K=1;
第二次循环,X=15,K=2;
第三次循环,X=31,K=3.
终止循环,输出K的值是3.
(2)执行下边的程序,输出的结果是________.
[答案] 11
[解析] 根据循环结构,可得
第一次:S=1×3=3,i=3+2=5,由3<200,则循环;
第二次:S=3×5=15,i=5+2=7,由15<200,则循环;
第三次:S=15×7=105,i=7+2=9,由105<200,则循环;
第四次:S=105×9=945,i=9+2=11,由945>200,则循环结束,故此时i=11.
[点石成金] 解决算法问题的三个步骤
已知程序如下:
该程序运行后,y的值是( )
A.3 B.6
C.9 D.27
答案:B
解析:∵x=3,∴y=2×3=6.
[方法技巧] 在画程序框图时首先要进行结构的选择.若所要解决的问题不需要分情况讨论,只用顺序结构就能解决;若所要解决的问题要分若干种情况讨论时,就必须引入条件结构;若所要解决的问题要进行许多重复的步骤,且这些步骤之间又有相同的规律时,就必须引入变量,应用循环结构.
[易错防范] 1.循环结构三注意
(1)注意是利用当型循环结构,还是直到型循环结构.
(2)注意选择准确的表示累计的变量.
(3)注意在哪一步开始循环,满足什么条件不再执行循环体.
2.赋值语句中的易错点
(1)赋值号左边只能是变量名字,而不是表达式,如3=m是错误的.
(2)赋值号左右两边不能对换,赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量,如Y=x,表示用x的值替代变量Y的原先的取值,不能改写为x=Y,因为后者表示用
Y的值替代变量x的原先的值.
(3)在一个赋值语句中只能给一个变量赋值,不能出现两个或多个“=”.
真题演练集训
1.[2016·新课标全国卷Ⅰ]执行下面的程序框图,如果输入的x=0,y=1,n=1,则输出x,y的值满足( )
A.y=2x B.y=3x
C.y=4x D.y=5x
答案:C
解析:运行程序,第1次循环得x=0,y=1,n=2;
第2次循环得x=,y=2,n=3;
第3次循环得x=,y=6,
此时x2+y2>36,
输出x=,y=6,满足y=4x.
故选C.
2.[2016·新课标全国卷Ⅱ]中国古代有计算多项式值的秦九韶算法,下图是实现该算法的程序框图.执行该程序框图,若输入的x=2,n=2,依次输入的a为2,2,5,则输出的s=( )
A.7 B.12
C.17 D.34
答案:C
解析:k=0,s=0,输入a=2,s=0×2+2=2,k=1;输入a=2,s=2×2+2=6,k=2;输入a=5,s=6×2+5=17,k=3>2,输出s=17.故选C.
3.[2016·新课标全国卷Ⅲ]执行下面的程序框图,如果输入的a=4,b=6,那么输出的n=( )
A.3 B.4 C.5 D.6
答案:B
解析:第一次循环:a=2,b=4,a=6,s=6,n=1;
第二次循环:a=-2,b=6,a=4,s=10,n=2;
第三次循环:a=2,b=4,a=6,s=16,n=3;
第四次循环:a=-2,b=6,a=4,s=20,n=4.
结束循环,输出n的值为4,故选B.
4.[2016·北京卷]执行如图所示的程序框图,若输入的a值为1,则输出的k值为( )
A.1 B.2 C.3 D.4
答案:B
解析:输入a=1,则b=1,第一次循环,a=
=-,k=1;第二次循环,a==-2,k=2;第三次循环,a==1,此时a=b,结束循环,输出k=2.故选B.
5.[2015·新课标全国卷Ⅰ]执行如图所示的程序框图,如果输入的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.
课外拓展阅读
循环结构的条件判断不准确致误分析
[典例1]
如图所示是一算法的程序框图,若此程序运行结果为S=720,则在判断框中应填入关于k的判断条件是( )
A.k≥6?
B.k≥7?
C.k≥8?
D.k≥9?
[易错分析] 本题可以按照开始的输入值、程序执行的规律和输出结果进行综合分析.容易出错的地方是不清楚这个判断条件是什么,本题是当不满足判断框中的条件时结束循环,当判断框中的条件满足时执行循环,故应该从k=10开始按照递减的方式逐步进行,直到S的输出结果为720.
[解析] 第一次运行结果为S=10,k=9;第二次运行结果为S=10×9=90,k=8;第三次运行结果为S=720,k=7.这个程序满足判断框的条件时执行循环,故判断条件是k≥8?.故选C.
[温馨提醒] 考生应注意本例中“否”对应着输出框,所以只有不满足判断框内的条件时,循环才能结束.另外,计数变量k在本例中不仅体现了循环的次数,而且还参与了累乘变量的变化过程,如果计数变量k的变化与累乘变量的变化的先后顺序改变,那么k的初始值和判断框中的条件也要发生变化.
[答案] C
[典例2] [2016·浙江金华十校联考]如图是输出的值为1+++…+的一个程序框图,框内应填入的条件是( )
A.i≤99? B.i<99?
C.i≥99? D.i>99?
[易错分析] (1)题意读错,误认为1++++…+.
(2)区分不开A与B的结果,错选为B.
(3)弄不清程序的功能,不能应用其他知识点求解.
(4)不能准确把握判断框中的条件,对条件结构中的流向和循环结构中循环次数的确定不准确.
[解析] S=0,i=1;S=1,i=3;S=1+,i=5;…;S=1++…+,i=101,输出结果,故填入i≤99?.
[答案] A
[温馨提醒] (1)此程序框图的功能是求数列的和:1++++…+;i有两个作用:计数变量和被加的数,可以试运行几次归纳出答案.
(2)在解决循环结构问题时,一定要弄明白计数变量和累加变量是用什么字母表示的,再把这两个变量的变化规律弄明白,就能理解这个程序框图的功能了,问题也就清楚了.