2020版高中数学新人教B版必修3第一章算法初步1.2.2条件语句学案(含解析)

文档属性

名称 2020版高中数学新人教B版必修3第一章算法初步1.2.2条件语句学案(含解析)
格式 zip
文件大小 231.2KB
资源类型 教案
版本资源 人教新课标B版
科目 数学
更新时间 2019-06-03 17:00:59

图片预览

文档简介

1.2.2 条件语句
学习目标 1.了解条件语句和条件分支结构之间的对应关系.2.理解条件语句的语法规则和用算法解决问题的一般步骤.3.能够用条件语句编写条件分支结构的程序.
知识点一 条件语句的概念
处理条件分支逻辑结构的算法语句,叫做条件语句.
知识点二 条件语句的类型、格式、功能
格式一
格式二
条件语句
if 表达式
??语句序列1;
end
if 表达式
语句序列1;
else
语句序列2;
end
语句功能
如果表达式的结果为真,则执行语句序列1,否则跳过语句序列1.
如果表达式结果为真,则执行语句序列1;如果表达式结果为假,则执行语句序列2
对应条件结构框图
1.条件语句中必须有else和end.( × )
2.条件语句中可以没有end.( × )
3.条件语句中可以没有else,但是必须有end.( √ )
4.条件语句中可以没有end,但是必须有else.( × )
题型一 条件语句的理解
例1 编写程序,输入两个不等的实数,由大到小输出这两个数.
解 程序如下:
a=input?“a=”?;
b=input?“b=”?;
if a<b
 t=a;
 a=b;
 b=t;
end
a
b
反思与感悟 (1)条件语句的执行顺序与算法框图中的选择结构的执行顺序一致,先对条件进行判断,满足条件,则执行该条件下的语句,不满足条件,则执行下一步.
(2)条件语句一般用在需要对条件进行判断的算法设计中,这与逻辑结构中的选择结构一致.
(3)if代表条件语句的开始,end代表条件语句的结束,这两点是判断一个语句是否是条件语句的关键.
跟踪训练1 根据输入的x值计算y的值,y=利用条件语句编写程序,并画出相应的程序框图.
解 程序如下:
x=input?“x=”?;
if x<=2.5
y=x^2+1;
else
y=x^2-1;
end
print?%io?2?,y?;
程序框图如图所示.
题型二 条件语句的编写
例2 编写程序,根据输入的x值,计算y的值,并输出y的值,y=
解 程序如下:
x=input(“x=”);
if x<1
 y=-2*x+1;
else
y=2*x-1;
end
print?%io?2??y);
引申探究
若本例中条件不变,请画出相应的程序框图.
解 程序框图如图所示.
反思与感悟 使用条件语句时的三个关注点
(1)条件语句是一个语句,if,else,end都是语句的一部分.
(2)条件语句必须是以if开始,以end结束,一个if必须与一个end相对应.
(3)为了程序的可读性,一般if,else,end顶格书写,其他的语句体前面空两格.
跟踪训练2 设计一个程序,输入一个学生的成绩S,根据该成绩的不同值进行以下输出:若S<60,则输出“不及格”;若60≤S≤90,则输出“及格”;若S>90,则输出“优秀”.
解 程序如下:
S=input?“S=”?;
if S<60
  disp?“不及格”?;
else
  if S>90
 disp?“优秀”?;
  else
disp?“及格”?;
 end
end
题型三 条件语句的嵌套
例3 若有以下程序:
x=input?“x=”?;
if x<=-1
f?x?=x+2;
else
if x<=1
 f?x?=x^2;
else
 f?x?=-x+2;
end
end
print?%io?2?,f?x??;
根据上面的程序,若函数g(x)=f(x)-m在R上有且只有两个零点,则实数m的取值范围为________.
答案 (-∞,0)∪{1}
解析 由题意知,该程序的作用是计算分段函数
f(x)=的函数值.
其函数图象如图.
又∵函数g(x)=f(x)-m在R上有且只有两个零点,
∴由图象可得m<0或m=1.
反思与感悟 在某些较为复杂的算法中,有时需要按条件要求执行的某一语句(特别是else后的语句序列2)继续按照另一条件进行判断,这时可以再利用一个条件语句完成这一要求,这就形成了条件语句的嵌套,其一般形式是:
if 表达式1
 语句序列1;
else
if 表达式2
 语句序列2;
else
 语句序列3;
end
end
注意:end是“出口”,是条件语句的结束符号,在书写程序时不要漏掉.当出现条件语句的嵌套时,每一个if对应着一个end.
跟踪训练3 已知程序:
x=input?“x=”?;
if x>-1 and x<0
 y=-x;
else
 if x>=0 and x<1
 y=x^2;
 else
if x>=1 and x<=2
 y=x;
end
 end
end
print?%io?2?,y?;
如果分别输入x=,x=,则输出的结果分别为________.
答案 ,
解析 当-1<x<0时,y=-x;当0≤x<1时,y=x2;当1≤x≤2时,y=x,
即函数的解析式为y=
当x=时,y=;当x=时,y=.
1.当a=1,b=3时,执行完下面一段程序后x的值是(  )
if a<b
 x=a+b;
else
 x=a-b;
end
x
A.1B.3C.4D.-2
答案 C
解析 因为1<3满足a<b,故x=1+3=4,故选C.
2.给出下列程序:
x1=input?“x1=”?;
x2=input?“x2=”?;
if x1=x2
x1=x1+x2;
end
 y=x1+x2;
print?%io?2?,y?;
如果输入x1=2,x2=3,那么执行程序后,输出的结果是(  )
A.7B.10C.5D.8
答案 C
解析 因为x1=2,x2=3,故x1≠x2,得y=x1+x2=2+3=5.
3.根据下列算法语句,当输入x为60时,输出y的值为(  )
x=input(“x=”);
if x≤50
y=0.5*x;
else
y=25+0.6*(x-50);
end
print?%io?2?? y???
A.25 B.30 C.31 D.61
答案 C
解析 由题意,得y=
当x=60时,y=25+0.6×(60-50)=31.
∴输出y的值为31.
4.下面的程序运行后输出的结果为______.
x=5;
y=-20;
if x<0
 x=y-3;
else
 y=y+3;
end
print?%io?2?,x-y,y-x?;
答案 -22,22
解析 因为x=5>0,根据题意,
执行y=y+3,y=-20+3=-17,
因此x-y=5-(-17)=22,y-x=-17-5=-22.
输出的结果y-x在前,x-y在后,
所以答案为-22,22.
5.儿童乘坐火车时,若身高不超过1.1m,则无需购票;若身高超过1.1m不超过1.4 m,只需买半票;若身高超过1.4 m,则买全票.试写出一个购票算法程序.
解 程序如下:
h=input(“h=”);
if h<=1.1
 print(%io(2),“免费乘车”);
else
if h<=1.4
 print(%io(2),“半票乘车”);
else
 print(%io(2),“全票乘车”);
end
end
使用条件语句时应注意的问题:
(1)对于条件语句,要先看输入的值是否符合条件,再进一步执行合适的步骤;
(2)如果程序中只需对条件为真的情况作出处理,不用处理条件为假的情况时,else分支可以省略,此时条件语句就由双支变为单支;
(3)分段函数需要多重判断,可以利用条件语句的嵌套式结构.
一、选择题
1.当a=3时,下面的程序段输出的结果是(  )
a=input?“a=”??
if a<10
y=a;
else
y=a*a;
end
print?%io?2?,y?;
A.9 B.3 C.10 D.6
答案 B
解析 此程序段的功能是求分段函数y=的函数值,当a=3时,y=3.故选B.
2.已知程序如下:
x=3;
if x>3
 y=x^2;
else
 y=2*x;
end
print?%io?2?,y?;
该程序运行后,y的值是(  )
A.3 B.6
C.9 D.27
答案 B
解析 依题意知,x=3,得y=2x=2×3=6.
3.给出以下四个问题,其中不需要用条件语句来描述其算法的有(  )
①输入一个数x,输出它的绝对值;
②求函数f(x)=的函数值;
③求面积为6的正方形的周长;
④求三个数a,b,c中的最大数.
A.1个 B.2个
C.3个 D.4个
答案 A
解析 在算法中需要逻辑判断的都要用到条件语句,其中①②④都需要进行逻辑判断,故都要用到条件语句,③只要顺序结构就能描述其算法.
4.阅读下列程序,
x=4;
if x>3
y=x*x;
else
y=2*x;
end
print?%io?2?,y?;
则该程序运行后,变量y的值为(  )
A.4 B.16
C.6 D.8
答案 B
解析 因为x=4满足“x>3”的条件,所以执行的是y=x2=4×4=16.
5.下面程序输入“x=π”时的运算结果是(  )
x=input?“x=”?;
if x>0
y=-2;
else
if x=0
y=0;
else
  y=2;
end
end
print?%io?2?,y?;
A.-2 B.1
C.π D.2
答案 A
解析 此程序表示的函数为分段函数y=故x=π时,y=-2.
6.为了在运行下面的程序之后得到输出y=9,x输入的值应该是(  )
x=input?“x=”?;
if x<0
 y=?x+1?*?x+1?;
else
 y=?x-1?*?x-1?;
end
print?%io?2?,y?;
A.-4 B.-2
C.4或-4 D.2或-2
答案 C
解析 此程序表示的函数为分段函数,
y=
若x<0,则由(x+1)2=9得x=-4;
若x≥0,则由(x-1)2=9得x=4.
7.下列程序语句是求函数y=|x-4|+1的函数值,则①处为(  )
x=input?“x=”?;
if x>=4
 y=x-3;
else
   ①  
end
print?%io?2?,y?;
A.y=3-x B.y=x-5
C.y=5-x D.y=ABS(x-4)+1
答案 C
解析 ∵y=|x-4|+1=故选C.
8.下面程序在开始运行后,通过键盘输入三个值a=3,b=24,c=7,则输出的结果是(  )
程序:
a=input?“a=”?;
b=input?“b=”?;
c=input?“c=”?;
if b>a
 t=a,a=b,b=t;
end
if c>a
 t=a,a=b,b=t;
end
if c>b
 t=b,b=c,c=t;
end
print?%io?2?,a,b,c?;
A.3,24,7 B.3,7,24
C.24,7,3 D.7,3,24
答案 B
解析 当a=3,b=24,c=7时,此时b>a,
首先是a,b交换数值即a=24,b=3,c=7,
又此时c>b,执行的程序是b,c交换数值,
即b=7,c=3,所以a=24,b=7,c=3.
二、填空题
9.给出如下程序,运行后输出的结果为________.
x=5;
y=-12;
if x<0
 x=y-3;
else
 x=y+3;
end
 S=x-y;
print?%io?2?,S?;
答案 3
解析 ∵x=5不满足x<0,∴x=y+3=-12+3=-9,
∴S=x-y=-9-(-12)=3.
10.给出下列程序:
x=input(“x=”);
if x<10
p=x*5;
else
p=1010*5+(x-15)*7;
end
print?%io?2?,P?;
若输入x=6,则p=____,若输入x=18,则p=______.
答案 30 71
解析 此程序是求函数p=的值,
当x=6时,p=6×5=30;
当x=18时,p=10×5+(18-15)×7=50+21=71.
11.若下面程序执行的结果是5,则输入的x值是__________________________.
x=input?“x=”?;
if x>=0
y=x;
else
y=-x;
end
print?%io?2?,y?;
答案 5或-5
解析 由程序语句知,该程序的功能是输入一个x,
输出函数y=的值,若输出5,则应输入5或-5.
12.下列程序语句的算法功能是________.
a=input?“a=”?;
b=input?“b=”?;
c=input?“c=”?;
if a<b
a=b;
end
if a<c
a=c;
end
print?%io?2?,a?;
答案 输出a,b,c三个数中的最大数
解析 由程序语句可知,当比较a,b的大小后,选择较大的数赋给a;当比较a,c的大小后,选择较大的数赋给a;最后输出a,所以此程序的作用是输出a,b,c中最大的数.
13.下面的程序是求一个函数的函数值的程序:
x=input?“x=”?;
if x<=0
 y=-x;
else
if x>0 and x<=1
 y=0;
else
 y=x-1;
end
end
print?%io?2?,y?;
若执行此程序的结果为3,则输入的x值为________.
答案 4或-3
解析 此程序是求函数y=的值.
若输出的结果为3,则有可能x-1=3即x=4,或-x=3即x=-3.
三、解答题
14.已知函数y=试写出程序,根据输入的x值,输出相应的y值.
解 程序为
x=input?“x=”?;
if x<0
??y=x^2-3;
else
if x>0
y=x/2+5;
else
 y=0;
end
end
print?%io?2?,y?;
四、探究与拓展
15.如图所示,在边长为16的正方形ABCD的边上有一动点P,点P沿边线由B→C→D→A(B为起点,A为终点)运动.若设P运动的路程为x,△APB的面积为y,试写出程序,根据输入的x值,输出相应的y值.
解 由题意可得函数关系式为y=
程序如下:
x=input(“x=”);?
if?x>0 and x<=16?
??y=8*x;?
else?
??if?x<=32?
????y=128;?
??else?
????y=8*(48-x);?
??end?
end?
print(%io(2),y);