§1.2.2 条件语句
授课
时间
第 周 星期 第 节
课型
新授课
主备课人
学习
目标
1.正确理解条件语句的步骤、结构及功能;
2.能正确地使用条件语句表示条件结构.
重点难点
重点:1.条件语句的步骤及功能
2.体会算法思想,发展有条理的思考与表达能力,提高逻辑思维能力.
难点:1.灵活使用条件语句表示条件结构
2.条件语句的语法结构
学习
过程
与方
法
自主学习
一、复习回顾:
条件结构的流程图为:
二、认真自学课本P25-29, 完成下列问题
①指出条件语句的格式及功能:
流程图: 条件语句:
② 对于条件结构框图中没有语句2的结构图,如何用语句描述。
IF 条件 THEN
语句
END IF
自我检测:加快文明社会的发展,加强对老年人的关爱”,景区规定对年龄超过50岁(含50岁)的游客可以免费提供“旅游拐杖”一根,其它游客购买“旅游拐杖”则需 2元/根。根据结构框图,使用基本语句设计一个游客购买“旅游拐杖”费用的程序。
根据结构图写出程序:
程序如下:
合作探究;
1.已知算法结构图,使用基本语句写出相应的程序。
2.课本例5,6
达标训练
课本练习1、2.
作业
布置
课本练习3,4
学习小结/教学
反思
1.2.2 条件语句
整体设计
教学分析
通过上一节的学习,学生学会了输入语句、输出语句和赋值语句的基本用法,本节介绍条件语句的用法. 程序中的条件语句与程序框图中的条件结构存在一一对应关系,这种对应关系对于学生理解条件语句的结构,进一步理解算法中的条件结构都是很有帮助的.我们可以给出条件语句的一般格式,让学生自己画出相应的程序框图,也可以给出程序框图,让学生写出算法语句.
三维目标
1.理解学习基本算法语句的意义.
2.学会条件语句的基本用法.
3.理解算法步骤、程序框图和算法语句的关系,学会算法语句的写法.
重点难点
教学重点:条件语句的基本用法.
教学难点:算法语句的写法.
课时安排
1课时
教学过程
导入新课
思路1(情境导入)
一位老农平整了一块良田,种瓜好呢,还是种豆好呢,他面临着一个选择.如果他选择种瓜,他会得瓜,如果他选择种豆,他会得豆.人的一生面临许多选择,我们要做出正确的选择.前面我们学习了条件结构,今天我们学习条件语句.
思路2(直接导入)
前面我们学习了程序框图的画法,为了让计算机能够理解算法步骤、程序框图,上一节我们学习了输入语句、输出语句、赋值语句,今天我们开始学习条件语句.
推进新课
新知探究
提出问题
(1)回忆程序框图中的两种条件结构.
(2)指出条件语句的格式及功能.
(3)指出两种条件语句的相同点与不同点.
(4)揭示程序中的条件语句与程序框图中的条件结构存在一一对应关系.
讨论结果:
(1)一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构.
用程序框图表示条件结构如下图:
(2)条件语句
1°“IF—THEN—ELSE”语句
格式:
IF 条件 THEN
语句体1
ELSE
语句体2
END IF
功能:在“IF—THEN—ELSE”语句中,“条件”表示判断的条件,“语句体1”表示满足条件时执行的操作内容;“语句体2”表示不满足条件时执行的操作内容;END IF表示条件语句的结束.计算机在执行“IF—THEN—ELSE”语句时,首先对IF后的条件进行判断,如果符合条件,则执行THEN后面的“语句1”;若不符合条件,则执行ELSE后面的“语句2”.
2°“IF—THEN”语句
格式:
IF 条件 THEN
语句体
END IF
功能:“条件”表示判断的条件;“语句”表示满足条件时执行的操作内容,条件不满足时,直接结束判断过程;END IF表示条件语句的结束.计算机在执行“IF—THEN”语句时,首先对IF后的条件进行判断,如果符合条件就执行THEN后边的语句,若不符合条件则直接结束该条件语句,转而执行其他后面的语句.
(3)相同点:首先对IF后的条件进行判断,如果符合条件就执行THEN后边的语句.
不同点:对于“IF—THEN—ELSE”语句,若不符合条件,则执行ELSE后面的“语句体2”.
对于“IF—THEN”语句,若不符合条件则直接结束该条件语句,转而执行其他后面的语句.
(4)程序中的条件语句与程序框图中的条件结构存在一一对应关系如下图:
应用示例
思路1
例1 编写一个程序,求实数x的绝对值.
算法分析:首先,我们来设计求实数x的绝对值的算法,因为实数x的绝对值为
|x|=
所以算法步骤可以写成:
第一步,输入一个实数x.
第二步,判断x的符号.若x≥0,则输出x;否则,输出-x.
显然,“第二步”可以用条件结构来实现.
程序框图如下图:
程序:
INPUT x
IF x>=0 THEN
PRINT x
ELSE
PRINT -x
END IF
END
点评:通过本题我们看到算法步骤可以转化为程序框图,程序框图可以转化为算法语句.本题揭示了它们之间的内在联系,只要理解了程序框图与算法语句的对应关系,把程序框图转化为算法语句就很容易了.
变式训练
阅读下面的程序,你能得出什么结论?
INPUT x
IF x<0 THEN
x=-x
END IF
PRINT x
END
解:由程序得出,该程序是输出x的绝对值.
例2 把前面求解一元二次方程ax2+bx+c=0的程序框图转化为程序.
解:由程序框图可以发现,其中包含着两个条件结构,而且内层的条件结构是外层的条件结构的一个分支,所以,可以用“IF—THEN—ELSE—END IF”来完成转化.
程序:
INPUT “a,b,c=”;a,b,c
d=b︿2-4*a*c
IF d>=0 THEN
p=-b/(2*a)
q=SQR(d)/(2*a)
IF d=0 THEN
PRINT “x1=x2=”;p
ELSE
PRINT “x1,x2=”;p+q,p-q
END IF
ELSE
PRINT“No real root”
END IF
END
例3 编写程序,使任意输入的3个整数按从大到小的顺序输出.
算法分析:用a,b,c表示输入的3个整数.为了节约变量,把它们重新排列后,仍用a,b,c表示,并使a≥b≥c.具体操作步骤如下:
第一步,输入3个整数a,b,c.
第二步,将a与b比较,并把小者赋给b,大者赋给a.
第三步,将a与c比较,并把小者赋给c,大者赋给a(此时a已是三者中最大的).
第四步,将b与c比较,并把小者赋给c,大者赋给b(此时a,b,c已按从大到小的顺序排列好).
第五步,按顺序输出a,b,c.
如下图所示,上述操作步骤可以用程序框图更直观地表达出来.
根据程序框图,写出相应的计算机程序.
INPUT “a,b,c=”;a,b,c
IF b>a THEN
t=a
a=b
b=t
END IF
IF c>a THEN
t=a
a=c
c=t
END IF
IF c>b THEN
t=b
b=c
c=t
END IF
PRINT a,b,c
END
思路2
例1 编写程序,输出两个不相等的实数a、b的最大值.
分析:要输出两个不相等的实数a、b的最大值,从而想到对a,b的大小关系进行判断,a,b的大小关系有两种情况:(1)a>b;(2)b>a.这也就用到了我们经常提及的分类讨论的方式,找出两个数的最大值.
解:算法一:
第一步,输入a, b的数值.
第二步,判断a,b的大小关系,若a>b,则输出a的值,否则,输出b的值.
(程序框图如下图)
程序如下:(“IF—THEN—ELSE”语句)
INPUT “a,b”;a,b
IF a>b THEN
PRINT a
ELSE
PRINT b
END IF
END
算法二:
第一步,输入a,b的数值.
第二步,判断a,b的大小关系,若b>a,则将b的值赋予a;否则,直接执行第三步.
第三步,输出a的值,结束.
(程序框图如下图)
程序如下:(“IF—THEN”语句)
INPUT “a,b”;a,b
IF b>a THEN
a=b
END IF
PRINT a
END
点评:设计一个“好”的算法需要在大量的算法设计中积累经验.我们也可以先根据自己的思路设计算法,再与 “成形”的、高效的、优秀的算法比较,改进思路,改进算法,以避免重复计算等问题,提高算法设计的水平.
(2)我们在平常的训练中尽可能地少引用变量,过多的变量不仅会使得算法和程序变得复杂,而且不利于计算机的执行.为此,我们在练习中要尽可能少引入变量并且要积极思考才能少引入变量.
例2 高等数学中经常用到符号函数,符号函数的定义为y=试编写程序输入x的值,输出y的值.
解:程序一:(嵌套结构)
程序框图:(下图)
程序如下:
INPUT x
IF x>0 THEN
y=1
ELSE
IF x=0 THEN
y=0
ELSE
y=-1
END IF
END IF
PRINT y
END
程序二:(叠加结构)
程序框图(右图):
程序如下:
INPUT x
IF x>0 THEN
y=1
END IF
IF x=0 THEN
y=0
END IF
IF x<0 THEN
y=-1
END IF
PRINT y
END
点评:(1)条件结构的差异,造成程序执行的不同.当代入x的数值时,“程序一”先判断外层的条件,依次执行不同的分支,随后再判断内层的条件;而“程序二”中执行了对“条件1”的判断,同时也对“条件2”进行判断,是按程序中条件语句的先后依次判断所有的条件,满足哪个条件就执行哪个语句.
(2)条件语句的嵌套可多于两层,可以表达算法步骤中的多重限制条件.
知能训练
中国网通规定:拨打市内电话时,如果不超过3分钟,则收取话费0.22元;如果通话时间超过3分钟,则超出部分按每分钟0.1元收取通话费,不足一分钟按以一分钟计算.设通话时间为t(分钟),通话费用y(元),如何设计一个程序,计算通话的费用.
解:算法程序如下:
INPUT “请输入通话时间:”;t
IF t<=3 THEN
y=0.22
ELSE
IF INT(t)=t THEN
y=0.22+0.1*(t-3)
ELSE
y=0.22+0.1*(INT(t-3)+1)
END IF
END IF
PRINT “通话费用为:”;y
END
拓展提升
函数y=写出求函数的函数值的程序.
解:INPUT x=”;x
IF x>=0 and x<=4 THEN
y=2*x
ELSE IF x<=8 THEN
y=8
ELSE y=2*(12-x)
END IF
1.2 基本算法语句
1.2.2 条件语句
双基达标 ?限时20分钟?
1.给出下列四个问题:
①输入一个数x,输出它的绝对值;
②求函数f(x)=的函数值;
③求面积为6的正方形的周长;
④求三个数a,b,c中的最大数.
其中需要用条件语句来描述其算法的个数是 ( ).
A.1 B.2 C.3 D.4
解析 在算法中需要逻辑判断的都要用到条件语句,其中①②④都需要进行逻辑判断,故都要用到条件语句,③只需用顺序结构就能描述算法.
答案 C
2.当输入x=-3.2时,程序
INPUT x
IF x<0 THEN
x=-x
END IF
PRINT x
END
输出的结果为 ( ).
A.-3.2 B.3.2 C.3 D.-3
答案 B
3.给出下列程序:
INPUT x1,x2
IF x1=x2 THEN
x1=x1+x2
END IF
y=x1+x2
PRINT y
END
如果输入x1=2,x2=3,那么执行此程序后,输出的结果是 ( ).
A.7 B.10 C.5 D.8
解析 ∵x1=2,x2=3,
∴x1≠x2,
∴y=x1+x2=2+3=5.
答案 C
4.给出下列程序:
INPUT a,b,c
IF a>b THEN
a=b
END IF
IF a>c THEN
a=c
END IF
PRINT a
END
如果输入-10,-26,8,那么输出的是________.
解析 由题知,输出的将是最小的数.
答案 -26
5.已知程序如下:
INPUT a
IF a>=0 THEN
PRINT a
ELSE
PRINT -a
END IF
END
若输入9,其运行结果是________.
解析 因为9≥0,所以输出9.
答案 9
6.函数y=写出求函数的函数值的程序.
解 程序:
综合提高 ?限时25分钟?
7.阅读下列程序,
则该程序运行后,变量y的值为 ( ).
A.4 B.16 C.6 D.8
解析 因x=4满足“x>3”的条件,所以执行的是THEN后面的y=4×4=16.
答案 B
8.阅读下列程序:
如果输入x=-2,则输出结果为 ( ).
A.2 B.-12 C.10 D.-4
解析 输入x=-2,则x<0,执行“y=7]
答案 D
9.阅读下面的程序:
INPUT “x=”;x
IF x<0 THEN
y=x+3
ELSE
IF x>0 THEN
y=x+5
ELSE
y=0
END IF
END IF
PRINT y
END
如果输入x=-2,则输出的结果y为________.
解析 本程序是求分段函数y=的值.
输入x=-2,输出y=-2+3=1.
答案 1
10.为了在运行下面的程序之后输出y=25,键盘输入x应该是________.
INPUT x
IF x<0 THEN
y=(x+1)*(x+1)
ELSE
y=(x-1)*(x-1)
END IF
PRINT y
END
解析 程序对应的函数是y=
由或得x=-6或x=6.
答案 -6或6
11.已知函数y=
根据输入x的值,计算y的值,设计一个算法并写出相应程序.
解 算法分析:
第一步,输入x的值.
第二步,判断x的范围:若x>2.5,则用y=x2-1求函数值.
若x≤2.5,则用y=x2+1求函数值.
第三步,输出y的值.
程序如下:
INPUT“x=”;x
IF x>2.5 THEN
y=x︿2-1
ELSE
y=x︿2+1
END IF
PRINT“y=”;y
END
12.(创新拓展)读下面的程序,并回答问题.
该程序的作用是输入x的值,输出y的值.
(1)画出该程序对应的程序框图;
(2)若要使输入的x值与输出的y值相等,问这样的x值有几个?
解 (1)程序对应的程序框图如图所示.
(2)若x=x2,则x=0或x=1.此时均满足x≤2;若2x-3=x,则x=3,满足2<x≤5;若=x,
则x=±1,不满足x>5.
综上可知,满足题设条件的x值有3个.
即x=0,或x=1或x=3.
课件24张PPT。【课标要求】
1.理解条件语句.
2.能够用条件语句编写条件结构的程序.
【核心扫描】
1.条件语句与条件结构的关系.(重点)
2.用条件语句编写程序.(重难点)
1.2.2 条件语句条件语句的格式、功能及与条件结构的对应关系
自学导引语句体语句体1语句体2条件语句体ENDIF语句体1语句体2条件 1.什么情况下条件语句中的ELSE及其后的语句体可以省略?
提示 当条件成立时执行某项操作,而条件不成立时,不需进行任何操作时,ELSE及其后的语句体可以省略.
2.两种语句有什么区别和联系?
提示 (1)区别:第一种条件语句只有一个语句体,是满足条件时执行的语句体;而第二种条件语句含有两个语句体,满足条件时执行一个语句体,不满足条件时执行另一个语句体.
(2)联系:两种语句首先都要对条件进行判断,然后才执行相应的语句体;执行完语句体后,程序都交汇于一点完成条件语句;都以IF开始,以END IF结束.IF-THEN语句
(1)IF-THEN语句的一般格式是
(2)“条件”表示判断的条件,“语句体”表示满足条件时执行的操作内容,条件不满足时,结束程序,END IF表示条件语句的结束.计算机在执行时首先对IF后的条件进行判断,如果条件符合,就执行THEN后边的语句体;若条件不符合,则直接结束该条件语句,转而执行其他语句.1.IF 条件 THEN
语句体
END IF
名师点睛(3)该语句对应的程序框图如图所示:
IF-THEN-ELSE语句
(1)IF-THEN-ELSE语句的一般格式为
IF 条件 THEN
语句体1
ELSE
语句体2
END IF
(2)在IF-THEN-ELSE语句中,“条件”表示判断的条件,“语句体1”表示满足条件时执行的操作内容,“语句体2”表示不满足条件时执行的操作内容,END IF表示条件语句的结束.计算机在执行时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后面的语句体1;若条件不符合,就执行ELSE后面的语句.2.(3)该语句对应的程序框图如图所示:题型一 读程序、说功能 以下给出的是用条件语句编写的一个程序,根据该程序回答问题:
程序:
【例1】INPUT x
IF x<3 THEN
y=2*x
ELSE
y=x^ 2-1
END IF
PRINT y
END
(1)若输入-4,则输出结果是________;
(2)若输入3,则输出结果是________;
(3)该程序的功能是求函数________的值.根据x的取值,选择相应的语句执行.
[思路探索] 正确理解IF—THEN—ELSE语句的含义是解题关键.
解析 (1)因为-4<3,所以y=2×(-4)=-8.
(2)因为x=3,所以y=32-1=8.
规律方法 条件语句特别适合处理分段函数的问题.本题中当输入-4时,由于x=-4满足条件“x<3”,故计算机执行THEN后面的语句体y=2x;当输入3时,由于3不满足条件“x<3”,故计算机执行ELSE之后的语句体. 下列程序输入x=5,y=-20后,输出的结果为________.
【变式1】INPUT x,y
IF x<0 THEN
x=y-3
y=y
ELSE
x=x
y=y+3
END IF
PRINT x*y,y+x
END
解析 x*y=5×(-20+3)=-85.
y+x=-17+5=-12.
答案 -85,-12 题型二 条件语句的简单应用【例2】编写一个程序,
使输入的每一个x值都得到相应的函数值.
[思路探索] 本题是已知分段函数的解析式求函数值的问题,当输入一个x的值时,由于x所在的范围不同,因而用来计算函数值的解析式也因范围不同而有所不同,因此要计算函数值必须先判断x的范围,要设计求函数值的算法必须用条件结构.相应程序的书写也应用条件语句书写.
解 用变量x,y分别表示自变量和函数值.步骤如下:
第一步,输入x值.
第二步,判断x的范围.若x≥0,则用解析式y=x2-1求函数值;否则,用y=2x2-5求函数值.
第三步,输出y值.程序框图如图所示.
程序如下:INPUT “x=”;x
IF x>=0 THEN
y=x^ 2-1
ELSE
y=2*^ 2-5
END IF
PRINT “y=”;y
END
规律方法 (1)算法中需要判断情况、分类执行时,如判断一个数的正负、比较两个数的大小、求分段函数的函数值等,都需要用到条件语句.
(2)条件语句是一个整体,IF THEN ELSE END IF都是语句的一部分,且“IF END IF”必须成对出现.
(3)若程序只对条件满足时作处理,不用处理条件不满足时的情况,则可以省略ELSE分支.
编写程序并画出程序框图,任意输入3个实数,输出这三个实数中的最小数.
解 程序如下: 程序框图如图所示:
【变式2】INPUT a,b,c
IF a>b THEN
a=b
END IF
IF a>c THEN
a=c
END IF
PRINT a
END
题型三 条件语句的嵌套【例3】自变量x的值,输出相应的函数值,并画出程序框图.
[规范解答] 程序框图如图所示: 程序如下:(6分)INPUT x
IF x<0 THEN
y=-x+1
ELSE
IF x=0 THEN
y=0
ELSE
y=x+1
END IF
END IF
PRINT y
END(12分)【题后反思】 (1)适用范围:
已知分段函数的解析式求函数值的问题,须用条件语句书写程序,当条件的判断有两个以上的结果时,可以选择条件结构嵌套去解决.
(2)解此类问题的步骤:
①构思出解决问题的一个算法(可用自然语言).
②画出程序框图,形象直观地描述算法.
③根据框图编写程序,即逐步把框图中的算法步骤用算法语句表达出来. 【变式3】的x值输出对应的y值.
解 程序如下:
INPUT x
IF x>0 THEN
y=2*x^ 2-1
ELSE
IF x=0 THEN
y=-2*x^ 2+4
END IF
END IF
PRINT y
END
写出解关于x的方程ax+b=0的程序.
[错解] 程序如下:误区警示 条件语句的应用不能忽视参数的讨论【示例】INPUT a,b
IF a=0 THEN
PRINT “方程的根是任意实数”
ELSE
PRINT -b/a
END
①分类讨论不全面,没有考虑b=0的情况;②漏掉END IF.
[正解] 程序如下:INPUT “a,b=”;a,b
IF a< >0 THEN
x=-b/a
PRINT x
ELSE
IF b=0 THEN
PRINT “方程的根是任意实数”
ELSE
PRINT “方程无解”
END IF
END IF
END
①对参数进行分类讨论时,要考虑全面,不重不漏,分类情况较多时,一般要用到条件语句的嵌套.②一个IF语句必须和一个END IF对应,不要漏掉END IF.
单击此处进入 活页规范训练