版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句Word下载.docx
《版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句Word下载.docx》由会员分享,可在线阅读,更多相关《版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句Word下载.docx(31页珍藏版)》请在冰豆网上搜索。
![版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句Word下载.docx](https://file1.bdocx.com/fileroot1/2023-2/3/184e5564-4473-4e84-9c58-92c43f75ae6f/184e5564-4473-4e84-9c58-92c43f75ae6f1.gif)
(3)算法中的循环结构由循环语句来实现.( )
解析:
循环结构包含两种基本类型:
WHILE语句和UNTIL语句,故
(1)×
;
(2)(3)都对.
答案:
(1)×
(2)√ (3)√
2.求下列函数的函数值的算法中需要用到条件语句的函数为( )
A.f(x)=x2-1
B.f(x)=x3-1
C.f(x)=
D.f(x)=2x
选C.A、B、D只需要用顺序结构就能描述算法.C需要对自变量进行判断,要用条件语句,故选C.
3.当x=3时,下面算法的输出结果是________.
INPUT x
IF x<
10 THEN
y=2*x
ELSE
y=x∧2
ENDIF
PRINT y
END
由x=3<
10,则执行y=2×
3=6.
6
4.求出下面语句的输出结果.
i=4
S=0
WHILE i<
i=i+2
S=S+i∧2
PRINT S
解:
该程序的执行过程是
i=4<
6成立
i=4+2=6
S=0+62=36
i=6<
6不成立
输出S=36.
1.条件语句的嵌套可多于两层,可以表达算法步骤中的多重限制条件.
条件语句一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套.
2.解决具体的构造循环语句的算法问题,引入循环变量要尽可能地少,否则较多的变量会使得设计程序比较麻烦,并且较多的变量会使得计算机占用大量的系统资源,致使系统缓慢.另外,也尽可能使得循环嵌套的层数少,否则也浪费计算机的系统资源.
条件语句的简单应用
已知函数f(x)=
对任意的x,求函数值,请画出程序框图并写出程序语句.
(链接教材P25例5)
[解] 程序框图如图所示:
程序如下:
INPUT “x=”;
x
IF x>
=0 THEN
y=x∧2-1
y=2*x∧2-5
PRINT “y=”;
y
方法归纳
(1)对于分段函数的求值问题,由于计算之前,需要对自变量进行判断,因此需要用到条件结构,并且本例还是一个两个分支的条件结构,所以可运用条件语句的IF—THEN—ELSE—ENDIF格式来表示算法.
(2)条件语句是一个整体,IF THEN ELSE ENDIF都是语句的一部分,且“IF ENDIF”必须成对出现.
1.
(1)输入一个数x,如果它是正数,则输出它;
否则不输出.画出解决该问题的程序框图,并写出对应的程序.
程序框图如图所示:
程序如下:
0 THEN
PRINT x
(2)根据以下程序框图写出程序:
INPUT “输入正整数”;
n
IF n>
0 AND n<
=2 THEN
PRINT “获得一等奖学金”
2 AND n<
=6 THEN
PRINT “获得二等奖学金”
6 AND n<
=12 THEN
PRINT “获得三等奖学金”
WHILE语句的应用
设计计算1+2+3+4+…+99的值的一个算法,画出程序框图,并编写程序.
i=1
WHILE i<=99
S=S+i
i=i+1
[互动探究] 如果本例的“加”改为“乘”,框图及程序有哪些变化?
框图中
和
分别改为
,程序中“S=0”改为“S=1”,“S=S+i”改为“S=S*i”.
累加、累乘问题一般都要应用循环语句来设计算法程序,应用循环语句时,关键是设计循环条件及循环体.本例的循环体为S=S+i,i=i+1.
2.编写一个程序计算1+1×
2+1×
2×
3+…+1×
3×
…×
100,并画出程序框图.
s=0
m=1
WHILE i<=100
m=m*i
s=s+m
PRINT s
UNTIL语句的应用
编写一个程序计算
+
+…+
的值,并画出程序框图.
(链接教材P30例8)
[解] 程序框图如图:
s=s+1/(i*(i+1))
LOOPUNTIL i>2015
(1)这是一个累加求和问题,共1008项相加,可设计一个计数变量,一个累加变量,用循环结构实现这一算法.
(2)UNTIL语句是先执行了一次循环体,再进行条件判断.
3.
(1)用UNTIL语句写出求1-
-
的程序.
s=s+((-1)∧(i-1))/i
i=i+1
LOOPUNTIL i>1000
(2)根据下列程序,画出相应的程序框图.
k=1
s=s+1/(k*(k+1))
k=k+1
LOOPUNTIL k>
99
PRINT s
程序框图如图所示.
条件语句与循环语句的综合应用
输入100个数,将其中的正数输出,写出计算正数个数的程序.
[解] 程序如下:
i=0
m=0
INPUT x
IF x>0 THEN
PRINT x
m=m+1
ENDIF
LOOPUNTIL i>=100
PRINT m
本例引入了两个变量:
i是计数变量,初值为0,作用是记录输入的实数个数,故循环的条件为i≥100,若改用当型循环,则改为i<100.m也是计数变量,初值为0,作用是记录输入的正数个数.
4.
(1)输入20个实数,统计并输出其中正数、零和负数的个数,写出算法语句.
num1=0
num2=0
num3=0
=20
INPUT “请输入实数:
”;
IF x>
num1=num1+1
IF x=0 THEN
num2=num2+1
num3=num3+1
PRINT “正数的个数为:
num1
PRINT “零的个数为:
num2
PRINT “负数的个数为:
num3
(2)给出某班50名学生的数学测试成绩,60分及以上为及格,要求统计及格人数、及格人数的平均分、全班同学的平均分,画出程序框图,并写出程序.
程序如下:
M=0,i=1,S=0,T=0
IF x>=60 THEN
S=S+x
M=M+1
T=T+x
LOOPUNTIL i>50
P=S/M
T=T/50
PRINT M,P,T
规范解答
条件嵌套型问题的程序编写
(本题满分12分)元旦期间,某商城搞挂历促销活动:
原价每本20元,购买5到9本按9折收费,买10本及其以上按8折收费,请帮商场设计收费的程序.
[解] 设某人所购挂历本数为x,商场应收其y元,则y关于x的函数关系式为:
y=
4分
IF x>0 AND x<5 THEN
8分
y=20*x
IF x<=9 THEN
y=20*0.9*x
ELSE
y=20*0.8*x
12分
[规范与警示]
正确写出y关于x的分段函数的关系式是解本题的关键.
注意语言符号的规范.
(1)写程序一定要按要求的符号书写,要与我们平时的手写区分开.
(2)首先,对程序中条件的书写格式要熟练规范,如果要多个条件同时成立,应用“AND”连接,而不能是连续的不等式.其次,对条件语句要理解清楚,实际上第一个IF语句不成立时,已经隐含了“x>=5”这个条件.
(3)要熟悉条件语句的嵌套形式,任何时候,条件语句中的“IF”与“ENDIF”一定成对出现.
1.下列需用循环语句编写程序的是( )
A.输入x的值,输出y=x2-3x的值
B.y=
输入x的值,输出对应的函数值
C.求x的立方根
D.求1+2+3+…+2015的值
选D.D项中是求多项数值的和,需用到循环语句.
2.给出以下四个问题,①输入一个数x,输出它的算术平方根;
②求函数f(x)=
的函数值;
③求周长为6的正方形的面积;
④求三个数a,b,c中的最小数.其中不需要用条件语句来描述其算法的有( )
A.1个B.2个
C.3个D.4个
选A.①需判断这个数是否为非负数;
②是分段函数求值问题;
④需判断这三个数的大小.①②④均需用到条件语句,只有③不需要.
3.如果下列程序执行后输出的结果是132,那么在程序UNTIL后面的“条件”应为( )
i=12
s=1
s=s*i
i=i-1
LOOPUNTIL ________
A.i>
11B.i>=11
C.i<=11D.i<
11
选D.当i=12时,s=1×
12=12;
当i=11时,s=11×
12=132.故应填i<
11.
4.下列语句
IF i<
100 THEN
i=i+3
执行完毕后i的值是________.
i的初始值为0,满足条件i<
100成立,执行语句i=i+3,有i=0+3=3.
3
[A.基础达标]
1.下列对条件语句的描述正确的是( )
A.ELSE后面的语句不可以是条件语句
B.两个条件语句可以共用一个ENDIF语句
C.条件语句可以没有ELSE后的语句
D.条件语句中IF—THEN和ELSE后的语句必须都有
选C.条件语句有两种格式:
分别是IF—THEN格式和IF—THEN—ELSE格式.对于一个分支的条件语句可以没有ELSE后的语句.
2.下面程序输出的结果为( )
S=2*i+3
LOOPUNITL i>=8
A.17B.19
C.21D.23
选C.当i=9时,S=2×
9+3=21,判断条件9≥8成立,跳出循环,输出S.
3.(2015·
临沂高一检测)下列程序的功能是:
判断任意输入的数x是否为正数,若是,输出它的平方值;
若不是,输出它的相反数.
IF ________ THEN
y=-x
y=x*x
则填入的条件应该是( )
A.x>0B.x<0
C.x>=0D.x<=0
选D.因为条件真则执行y=-x,条件假则执行y=x*x,由程序功能知条件应为x<=0.
4.如下程序的循环次数为( )
x=0
WHILE x<20
x=x+1
x=x∧2
A.1B.2
C.3D.4
选C.程序执行如下:
(1)x<20,x=0+1=1,x=12=1;
(2)x<20,x=1+1=2,x=22=4,
(3)x<20,x=4+1=5,x=52=25,此时跳出循环,并输出x.
∴一共进行3次循环,故选C.
5.(2013·
高考陕西卷)根据下列算法语句,当输入x为60时,输出y的值为( )
输入x;
Ifx≤50Then
y=0.5*x
Else
y=25+0.6*(x-50)
EndIf
输出y.
A.25B.30
C.31D.61
选C.由题意,
得y=
当x=60时,y=25+0.6×
(60-50)=31.
∴输出y的值为31.
6.若a=11,下面的程序段输出的结果是________.
INPUT a
IF a<10 THEN
y=2*(a-1)
y=aMOD10
由于当a=11时,不满足条件a<10,所以执行y=aMOD10,得到的结果是y=1.注意“aMOD10”是a除以10的余数.
1
7.已知下列程序:
IF x<=-1 THEN
y=-x-1
IF x>1 THEN
y=-x∧2+1
y=x-1
如果输出的是y=0.75,则输入的x是________.
由程序可知本题为根据输入的x,求函数y=
的函数值.我们可以分段令y=0.75,并验证,可求得x=-1.75.
-1.75
8.(2015·
吉林高一检测)已知有下面的程序,如果程序执行后输出的结果是360,那么在程序UNTIL后面的“条件”应为________.
i=6
LOOPUNTIL 条件
因为输出的结果是360,即s=1×
6×
5×
4×
3,需执行4次,s需乘到3,i<3后结束算法.所以,程序中UNTIL后面的“条件”应为i<3(或i<=2).
i<3(或i<=2)
9.(2015·
罗源高一检测)编写一个程序计算12+32+52+…+992,并画出相应的程序框图.
S=S+i∧2
LOOPUNTIL i>99
10.给出一个算法的程序框图(如图所示).
(1)说明该程序的功能;
(2)请用WHILE型循环语句写出程序.
(1)该程序的功能是求1+
的值.
(2)程序如下:
K=1
WHILE K<=99
S=S+1/K
K=K+1
[B.能力提升]
1.(2015·
衡阳检测)下面程序运行后输出的结果为( )
a=0
j=1
WHILE j<=5
a=(a+j)MOD5
j=j+1
PRINT a
A.50B.5
C.25D.0
选D.本程序的功能是求a+j被5除所得的余数,从而循环体在执行的过程中a与j的对应值如下表:
a
j
2
4
5
2.读程序:
甲:
=1000
S=S+i
乙:
i=1000
LOOPUNTIL i<
对甲、乙程序和输出结果判断正确的是( )
A.程序不同,结果不同
B.程序不同,结果相同
C.程序相同,结果不同
D.程序相同,结果相同
选B.执行甲、乙程序后,可知都是计算1+2+3+…+1000的值.
滨州质检)读程序,完成下列题目:
程序如图:
=1 THEN
y=x+1
y=2*x+1
(1)若执行程序时,没有执行语句y=x+1,则输入的x的范围是________;
(2)若执行结果为3,则执行的赋值语句是________,输入的x的值是________.
(1)不执行y=x+1语句,
说明不满足条件x≥1,故有x<
1.
(2)当x<
1时,y<
1+1=3,
只有x+1=3,x=2.
(1)x<
1
(2)y=x+1 2
4.下面是一个用于计算
的程序,则①处应填的语句是________,②处应填的语句是________.
WHILE i<=20
①__
②__
PRINT “s=”;
s
累加求和需用赋值语句“s=s+1/(i*(i+1))”,控制执行循环条件需要用赋值语句“i=i+1”.
s=s+1/(i*(i+1)) i=i+1
5.儿童乘坐火车时,若身高不超过1.1m,则无需购票;
若身高超过1.1m但不超过1.4m,可买半票;
若超过1.4m,应买全票.试写出一个购票算法程序.
INPUT “身高h(h>0)”;
h
IF h<=1.1 THEN
PRINT “免费乘车”
IF h<=1.4 THEN
PRINT “半票乘车”
PRINT “全票乘车”
6.(选做题)一个小朋友在一次玩皮球时,偶然发现一个现象:
球从某高度落下后,每次都反弹回原高度的
,再落下,再反弹回上次高度的
,如此反复.假如球从100cm处落下,那么第10次下落的高度是多少?
在第10次落地时共经过多少路程?
试用程序语言表示其算法.
h=100
s=s+h
i=2
WHILE i<=10
h=h/3
s=s+2*h
PRINT “第10次下落的高度为”;
PRINT “第10次落地时共经过的路程为”;