(共34张PPT)
问题提出
1.输入语句、输出语句和赋值语句的一般格式分别是什么?
输入语句:
INPUT
“提示内容”;变量
输出语句:
PRINT
“提示内容”;表达式
赋值语句:
变量=表达式
2.对于顺序结构的算法或程序框图,我们可以利用输入语句、输出语句和赋值语句写出其计算机程序.对于条件结构的算法或程序框图,要转化为计算机能够理解的算法语言,我们必须进一步学习条件语句.
知识探究(一):条件语句(1)
IF
条件
THEN
语句体
END
IF
IF
条件
THEN
语句体
END
IF
当计算机执行上述语句时,首先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体,否则执行END
IF之后的语句.
例如:编写一个程序,从键盘上输入一个整数,若是正数就将其输出。
程序:
INPUT
“x=”
;x
IF
x>0
THEN
PRINT
x
END
IF
END
知识探究(二):条件语句(2)
IF
条件
THEN
语句体1
ELSE
语句体2
END
IF
你能理解这个算法语句的含义吗?
IF
条件
THEN
语句体1
ELSE
语句体2
END
IF
当计算机执行上述语句时,首先对IF
后的条件进行判断,如果(IF)条件
符合,那么(THEN)执行语句体1,
否则(ELSE)执行语句体2.
例如:编写求一个数是偶数还是奇数的程序,从键盘上输入一个整数,输出该数的奇偶性。
程序:INPUT
“x=”;x
y=
x
MOD
2
IF
y=0
THEN
PRINT
x
;
“is
an
even
number”
ELSE
PRINT
x
;
“is
an
odd
number”
END
IF
END
INPUT
“a=”;
a
IF
a
MOD
2
=0
THEN
PRINT
“Even.”
ELSE
PRINT
“Odd.”
END
IF
END
参考答案:
观察程序,回答问题
问题1:
INPUT
“请输入3个正实数”;a,
b,
c
IF
a+b>c
AND
a+c>b
AND
b+c>a
THEN
PRINT
“存在这样的三角形.”
ELSE
PRINT
“不存在这样的三角形.”
END
IF
END
不存在这样的三角形.
存在这样的三角形.
判断以三个数为边长,能否构成三角形
IF
条件
THEN
语句1
ELSE
语句2
END
IF
AND的作用是表示两个要同时成立
观察程序,回答问题
问题2:
INPUT
“请输入x”;x
IF
x<1
THEN
y=x
END
IF
IF
x>=1
AND
x<10
THEN
y=2
x-1
END
IF
IF
x>=10
THEN
y=3
x-11
END
IF
PRINT
“y=”;y
END
分段函数求值
0
3
22
完成算法问题的基本步骤
1.认真分析,画出框图;
2.根据框图,编写程序;
3.使用计算机或计算器进行程
序调试。
例1
编写一个程序,求任意实数的绝对值。
程序如下:
程序框图:
【例题解析】
【例题解析】
例2:编写程序,输入一元二次方程ax2+bx+c=0的系数,输出它的实数根。
算法分析:
一元二次方程的根有三种不同情况:
设判别式△=b2-4ac
(1)当△>0时,一元二次方程有两个不等的实数根.
(2)当△=0时,一元二次方程有两个相等的实数根.
(3)当△<0时,一元二次方程没有实数根.
程序框图
开始
输入a,b,c
△=
b2-4ac
△≥0?
否
x1=p+q
输出x1,x2
结束
否
是
【程序】
INPUT
“
a,b,c
=”;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
“One
real
root:”;p
ELSE
x1=p+q
x2=p-q
PRINT
“Two
real
roots:”;x1,x2
END
IF
ELSE
PRINT
“No
real
root!”
END
IF
END
INPUT
A,B
IF
A>=B
THEN
PRINT
A
ELSE
PRINT
B
END
IF
END
INPUT
A,B
IF
ATHEN
m=A
A=B
B=m
END
IF
PRINT
A
END
第一种
第二种
两个程序的作用是什么?
例3:
输入三个变量A、B,C,并输
出数值大的变量。
INPUT
A,B,C
IF
A>=B
AND
A>=C
THEN
PRINT
A
ELSE
IF
B>=C
THEN
PRINT
B
ELSE
PRINT
C
END
IF
END
IF
END
INPUT
A,B,C
IF
ATHEN
m=A
A=B
B=m
END
IF
IF
ATHEN
n=A
A=C
C=n
END
IF
PRINT
A
END
A最大
A最大
方法二:
〖例4〗:编写程序,使得任意输入的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.
c=b
b=t
b=t
c=t
a=c
【程序框图】
开始
输入a,b,c
b>a?
是
t=a
a=b
否
c>a?
是
t=a
否
c>b?
t=c
是
否
输出a,b,c
交换a,b的值
INPUT
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
程序:
INPUT
“x=”;x
IF
x>0
AND
x<=20
THEN
y=0.35﹡x
ELSE
y=0.35﹡20+0.65﹡(x-20)
PRINT
“y=”;y
END
IF
END
火车托运行李的收费方法如下:
y是收费,x是行李重量,当0<x≤20(千克)时,按每千克0.35元收费。当x>20(千克)时,20千克的部分按0.35元的单价收费,超出20千克的部分,则按0.65元的单价收费。请根据上述收费方法编写程序。
(0(x≥20)
练习1:
读程序,说明程序的运行过程.
INPUT
“x=:”;x
IF
9AND
x<100
THEN
a=x\10
b=x
MOD
10
x=10*b+a
PRINT
x
END
IF
END
[问题]如输入的数x=86,则输出的结果是什么?
68
此程序用于交换一个两位数的个位和十位数字.
练习2:闰年指年份能被4整除但不能被100整除,或者能被400整除的年份.编写一个程序,判断输入的年份是否为闰年.
INPUT
“Please
input
a
year:”;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
参考答案:
表示c≠0
【课堂小结】
本节课主要学习了条件语句的结构、特点、作用以及用法,并懂得利用它解决一些简单问题。条件语句使程序执行产生的分支,根据不同的条件执行不同的路线,使复杂问题简单化。
条件语句一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套。
习题1.2A组
2.INPUT
“a,b,h=”;a,b,h
p=a+b
s=p
h/2
PRINT
“s=”;s
END
习题B组1
INPUT
“a,b,c=“;a,b,c
INPUT
“r,s,t=“;r,s,t
d=a
s-r
b
IF
d<>o
THEN
x=(s
c-b
t)/d
y=(a
t-r
c)/d
PRINT
“x,y=“;x,y
ELSE
PRINT
“Please
input
again.”
END
IF
END
(P33页B组T3)
3.INPUT
“x=“;x
IF
x<1
THEN
y=x
ELSE
IF
x<10
THEN
y=2
x-1
ELSE
y=3
x-11
END
IF
END
IF
PRINT
“
y=“;y
END
(P33页B组T3)
INPUT
“x=”;x
IF
x<1
THEN
y=x
ELSE
IF
x>=1
AND
x<10
THEN
y=2*x-1
ELSE
y=3*x-11
END
IF
END
IF
PRINT“y=”;y
END
参考答案:
编写一个程序,输入两个整数a,b,判断a是否能被b整除.
INPUT
“a,b=”;
a,b
IF
a
MOD
b
=0
THEN
PRINT
“b
divides
a.”
ELSE
PRINT
“b
does
not
divide
a.”
END
IF
END
参考答案:
小结
1、条件结构的程序表示
2、注意书写的规范性
IF
条件
THEN
语句1
ELSE
语句2
END
IF
IF
条件
THEN
语句
END
IF