(共28张PPT)
1.2.2
条件语句
数学必修③
复习巩固
1、输入语句、输出语句和赋值语句对应于算法中的哪种结构?这三种语句的一般格式是什么?
2、什么是条件结构?用程序框图表示这种结构为
顺序结构
输入语句
输出语句
赋值语句
INPUT
“提示文字”;变量
PRINT
“提示内容”;表达式
变量=表达式
步骤2
步骤1
步骤
引例
编写程序,输入一元二次方程
的系数,输出它的实数根。
算法中的条件结构由条件语句来表达。条件语句的一般格式:
IF
条件
THEN
语句体
END
IF
满足条件?
是
否
语句
其含义是:当计算机执行上述语句时,首先对IF后面的条件语句进行判断,如果条件符合,就执行THEN后面的语句;否则就结束该条件语句,转而执行END
IF后面的语句.
1、IF—THEN语句:(即IF—THEN
格式)
新课讲授
例如:
根据下面的算法和程序框图写出相应的程序。
算法:
第一步:输入a,b;
第二步:如果
a>b
则输出a-b.
开始
输入a,b
结束
输出a-b
a>b?
是
否
例如:
根据下面的算法和程序框图写出相应的程序。
开始
输入a,b
结束
输出a-b
a>b?
是
否
INPUT
“a=”;
a
END
IF
INPUT
“b=”;
b
END
IF
a>b
THEN
PRINT
a-b
IF
条件
THEN
语句1
ELSE
语句2
END
IF
2、
IF-THEN-ELSE语句:(即IF-THEN-ELSE格式)
满足条件?
否
是
语句1
语句2
其含义是:当计算机执行上述语句时,首先对IF后面的条件进行判断,如果符合条件那么执行语句体1.否则执行ELSE后面的语句体2.
例如:
根据下面的算法和程序框图写出相应的程序。
算法:
第一步:输入a,b
第二步:如果a>b
,
则输出a-b;否则:输出b-a。
开始
输入a,b
a>b?
输出b-a
否
是
输出a-b
结束
INPUT
“a=”;
a
END
IF
INPUT
“b=”;
b
IF
a>b
THEN
PRINT
a-b
ELSE
PRINT
b-a
END
例如:
根据下面的算法和程序框图写出相应的程序。
开始
输入a,b
a>b?
输出b-a
否
是
输出a-b
结束
练习:编写一个程序,求实数x的绝对值.
算法:
第一步,输入一个实数x.
第二步,判断x的符号.若x>=0,则输出x;
否则,输出-x.
开始
输入x
X>=0
输出x
输出-x
Y
结束
N
程序:
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
例1
编写程序,输入一元二次方程
自然语言描述:
原方程“无实数根”
否
的系数,输出它的实数根。
程序框图:
开
始
输入a,b,c
Δ=b2-4ac
p=
-b/2a
q=SQR(Δ)/(2a)
Δ≥0
是
输出p
是
x1=p+q
输出x1,x2
结
束
Δ=0
x2=p-q
否
S2:计算
S1:输入三个系数a,b,c
S3:判断
是否成立。若是,则计算
否则输出“方程没有实数根”。
S4:判断
是否成立。若是,则输出
否则,计算
并输出
。
原方程
“无实数根”
否
开
始
输入a,b,c
Δ=b2-4ac
p=
-b/2a
q=SQR(Δ)/(2a)
Δ≥0
是
输出p
是
x1=p+q
输出x1,x2
结
束
Δ=0
x2=p-q
否
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
程序的
嵌套
条件语句的嵌套
语句体1
满足条件1
语句体4
否
满足条件2
语句体3
语句体2
是
是
否
IF
条件1
THEN
语句体1
IF
条件2
THEN
语句体2
ELSE
语句体3
END
IF
ELSE
语句体4
END
IF
例2
编写程序,使得任意输入3个整数按大到小的顺序输出。
算法分析:
算法思想:3个数两两比较,确定大小。按a、b、c输入,要按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
8,5,7
8,5,7
8,5,7
8,7,5
IF
c
>
b
THEN
t
=
b
b
=
c
c
=
t
END
IF
PRINT
a,b,c
END
相应的QBASIC程序:
开始
t=a,a=b,b=t
t=a,a=c,c=t
t=b,b=c,c=t
输入a,b,c
输入a,b,c
b>a
c>a
c>b
结束
是
是
否
否
是
否
对应的流程图:
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
例3.已知
y=
,编写程序,
输入自变量的值,输出相应的函数值。
算法:
1、输入自变量x
2、如果x<0则y=-2x+1
否则:y=x+1
3、输出y
结束
x<0
否
y=x+1
输出y
y=-2x+1
是
开始
输入x
例3.已知
y=
,编写程序,
输入自变量的值,输出相应的函数值。
结束
x<0
否
y=x+1
输出y
y=-2x+1
是
开始
输入x
IF
x<0
THEN
y=(-2)
x+1
ELSE
y=x+1
PRINT
y
END
IF
INPUT
x
END
如果x=0,则
y=0
否则:y=x+1
变式:已知,
编写程序,
输入自变量的值,
输出相应的函数值。
算法:
1、输入自变量x
3、输出y
2、如果x<0;则
y=-2x+1,
否则
:
y=x+1
X<0
否
y=-2x+1
是
开始
输入x
X=0
y=0
是
否
结束
输出y
y=
变式:已知,
编写程序,
输入自变量的值,
输出相应的函数值。
INPUT
“x=
”;
x
IF
x<0
THEN
y=(-2)
x+1
ELSE
IF
x=0
THEN
y=0
ELSE
y=x+1
END
IF
END
IF
PRINT
“y=
”;
y
END
程序的嵌套
y=
y=x+1
X<0
否
y=-2x+1
是
开始
输入x
X=0
y=0
是
否
结束
输出y
巩固练习
1.右边给出的是用条件语句编写的一个程序,根据该程序回答:
INPUT
x
IF
x<3
THEN
y=2
x
ELSE
IF
x>3
THEN
y=x
x-1
ELSE
y=0
END
IF
END
IF
PRINT
y
END
(1)若输入5,则输出结果是
____
;
(2)该程序的功能是求函数
____的函数值。
24
巩固练习
2.
下列程序运行后的结果是(
)
a=2
b=3
IF
aTHEN
t=a
a=b
b=t
END
IF
PRINT
“a=”;
a
PRINT
“b=”;
b
END
A.
a=2,b=3
B.
a=3,b=3
C.
a=2,b=2
D.
a=3,b=2
D
随堂练习
4.
INPUT
“x=
”;
x
IF
x>3
THEN
y=x
x
ELSE
y=2
x
END
IF
PRINT
“y=”;
y
END
若输入4,输出结果是__
5.补充完整下面用来求任意一个实数x的绝对值的程序
INPUT
“x=
”;
x
_____________
PRINT
“|x|=
”;
x
ELSE
PRINT
“|x|=
”;
-x
_____________
END
16
IF
X>=0
THEN
END
IF
6、把下列程序补充完整:
(1)输入两个数,输出
(2)判断输入的任意数x的
其中较大的数;
奇偶性。
INPUT
a,b
IF
a>b
THEN
PRINT
a
ELSE
.
END
IF
END
INPUT
x
m=xMod2
IF
THEN
PRINT
“Odd”
ELSE
PRINT
“Even”
END
IF
END
PRINT
b
课本习题答案
P29练习1
INPUT
“a,b,c=”;a,b,c
IF
a+b>c
AND
a+c>b
AND
b+c>a
PRINT
“Yes.”
ELSE
PRINT
“No.”
END
IF
END
P29练习4
INPUT
“y=”;y
b=y
MOD
4
c=y
MOD
100
d=y
MOD
400
IF
b=0
AND
c<>0
THEN
PRINT
“Leap
year.”
ELSE
IF
d=0
THEN
PRINT
“Leap
year.”
ELSE
PRINT
“Not
leap
year.”
END
IF
END
IF
END
课时小结:
1、条件语句的一般格式有两种:
(1)
IF—THEN语句;(2)
IF—THEN—ELSE语句。
2、
条件语句一般用在需要对条件进行判断的算法设计中,如求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套。
3、编程的一般步骤:
(1)算法分析
(2)画程序框图(3)写出程序
作业:
课本P33
习题1.2:
A组第1题
B组第3题