1.2.2条件语句
【明目标、知重点】
1.理解条件语句及其与条件结构的关系.
2.体验如何由程序框图转化为程序语句.
3.通过条件语句的学习,进一步体会算法的基本思想.
【填要点、记疑点】
条件语句的格式、功能及与条件结构的对应关系.
格式一格式二
条件语句IF条件THEN语句体END
IF
IF条件THEN
语句体1
ELSE
语句体2
END IF
功能首先对IF后的条件进行判断,如
果(IF)条件符合,那么(THEN)执行
语句体,否则执行END IF之后的
语句
首先对IF后的条件进行判断,如
果(IF)条件符合,那么(THEN)执行
语句体1,否则(ELSE)执行语句体
2
对应条件结构框
图
[情境导学]上节课我们学习的输入、输出和赋值语句,这些语句能够完成对算法的顺序结构的编程,对于算法的条件结构的编程,我们必须学习与之相适应的算法语句——条件语句.
探究点一条件语句(1)
思考1对于条件结构的算法或程序框图,要转化为计算机能够理解的算法语言,使用输入、输出和赋值语句还行吗?需要用怎样的语句?
答不行,要用与条件结构相适应的条件语句.
思考2阅读教材25页内容,想一想下图所示的条件结构对应的条件语句的一般格式是怎样的?计算机是如何执行该条件语句的?
答IF条件THEN
语句体
END IF
当计算机执行上述语句时,首先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体,否则执行END IF之后的语句.
思考3求实数x的绝对值有如下一个算法:
第一步,输入一个实数x.
第二步,判断x的符号.若x<0,则x=-x;否则,x=x.
第三步,输出x.
(1)该算法的程序框图如何表示?
(2)你能写出这个算法对应的程序吗?
答(1)程序框图如下.
(2)程序如下:
INPUT x
IF x<0 THEN
x=-x
END IF
PRINT x
END
例1阅读下面的程序,说明它是一个什么问题的算法,其中a≠b.
INPUT “a,b=”;a,b
IF a>b THEN
x=a
a=b
b=x
END IF
PRINT a,b
END
解由程序可知,当a>b时,程序执行语句体,语句体实现了a,b互换,此时a
a>b不成立时,即a
a,b按从小到大排序.
反思与感悟条件语句的作用是在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去.需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理.
跟踪训练1编写程序,使得任意输入的3个整数按从大到小的顺序输出.
解程序如下:
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(1)阅读教材25页内容,想一想下图所示的条件结构对应的条件语句的一般格式是怎样的?计算机又是如何执行该条件语句的?
答
If 条件THEN
语句体1
ELSE
语句体2
END IF
当计算机执行上述语句时,首先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)
执行语句体1,否则(ELSE)执行语句体2.
思考2(1)求实数x的绝对值又有如下一个算法:
第一步,输入一个实数x.
第二步,判断x的符号.若x≥0,则输出x;否则,输出-x.
该算法的程序框图如何表示?由得到的程序框图你能写出算法语句吗?
答
(2)由程序框图你能写出算法语句吗?
答
INPUT“x=”;x
IF x>=0 THEN
PRINT x
ELSE
PRINT-x
END IF
END
例2编写程序,输入一元二次方程ax+bx+c=0(a≠0)的系数,输出它的实数根.解
INPUT a,b,c d=b*b-4*a*c IF d>=0 THEN
p=-b/(2*a)
q=SQR(d)/(2*a) IF d=0 THEN
PRINT “x1,x2=”;p-q,p+q
END IF
ELSE
PRINT “No real root!” END IF
END
反思与感悟 (1)条件语句有两种形式,应用时要根据实际问题适当选取. (2)编写含有多个条件结构的程序时,每个条件语句执行结束时都以END IF 表示. 跟踪训练2 铁路部门托运行李的收费方法如下:y 是收费额(单位:元),x 是行李重量(单
位:kg),当0
y =?
????
0.35x , 0
INPUT “请输入旅客行李的重量(kg)x =”;x IF x>0 AND x<=20 THEN y=0.35*x ELSE
y=0.35*20+0.65*(x-20) END IF
PRINT “该旅客行李托运费为”;y
END
例3 编写程序,使得任意输入3个整数按从大到小的顺序输出.
解 算法
第一步 输入3个整数a 、b 、c .
第二步 将a 与b 比较,并把小者赋给b ,大者赋给a .
第三步将a与c比较,并把小者赋给c,大者赋给a.第四步将b与c比较,并把小者赋给c,大者赋给b.第五步按顺序输出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
反思与感悟(1)算法中需要判断情况、分类执行时,如判断一个数的正负、比较两个数的大小、求分段函数的函数值等,都需要用到条件语句.
(2)条件语句是一个整体,IF—THEN—ELSE END IF都是语句的一部分,且“IF END
IF”必须成对出现.
(3)若程序只对条件满足时作处理,不用处理条件不满足时的情况,则可以省略ELSE分
支.
跟踪训练3编写求一个数是偶数还是奇数的程序,从键盘上输入一个整数,输出该数的奇偶性.
解程序:
INPUT“x=”;x
y=x MOD 2
IF y=0 THEN
PRINT x;“该数是偶数”
ELSE
PRINT x;“该数是奇数”
END IF
END
【当堂测、查疑缺】
1.下列关于条件语句的说法正确的是() A.条件语句中必须有ELSE和END IF
B.条件语句中可以没有END IF
C.条件语句中可以没有ELSE,但是必须有END IF
D.条件语句中可以没有END IF,但是必须有ELSE
答案C
解析条件语句主要有两种形式的格式,分别是IF-THEN格式和IF-THEN-ELSE 格式,但是不管是这两种格式的哪一种,IF与END IF必须是同时出现.
所以条件语句中可以没有ELSE,但是必须有END IF,故答案选C.
2.条件语句的一般形式如图所示,其中B表示的是() IF A THEN
B
ELSE
C
END IF
A.满足条件时执行的内容
B.条件语句
C.条件
D.不满足条件时执行的内容
答案A
3.当x=2时,下面语句输出的结果是________.
IF x>0THEN
y=x^2
z=y^3-x^2
END IF
PRINT z
END
解析∵x>0,∴程序执行语句体.
即z=43-22=60.
4.根据如图所示的程序,当输入a,b分别为2,3时,最后输出的m的值是________.INPUT a,b
IF a>b THEN
m=a
ELSE
m=b
END IF
PRINT m
答案3
解析由于2>3不成立,所以语句执行ELSE后面的m=b,即把b的值赋给m,所以输出的值为3.
5.编写一个程序,从键盘上输入一个数,若是正数就将其输出.
解程序:
INPUT “x=”;x
IF x>0THEN
PRINT x
END IF
END
【呈重点、现规律】
1.两种条件语句的区别与联系
(1)区别:IF—THEN—ELSE语句含有两个语句体,满足条件时执行一个语句体,不满足
条件时执行另一个语句体;而IF—THEN条件语句,只有一个语句体,是满足条件时执行的语句体.
(2)联系:两种语句首先都要对条件进行判断,然后才执行相应的语句体;执行完语句体
后,程序都交汇于一点完成条件语句;都以IF开始,以END IF结束.
2.使用条件语句时应注意的问题
(1)条件语句是一个语句,IF,THEN,ELSE,END IF都是语句的一部分.
(2)条件语句必须是以IF开始,以END IF结束,一个IF必须与一个END IF相对应.
(3)如果程序中只需对条件为真的情况作出处理,不用处理条件为假的情况时,ELSE分
支可以省略,此时条件语句就由双支变为单支.
(4)为了程序的可读性,一般IF、ELSE与END IF顶格书写,其他的语句体前面则空两格.