几种基本语句条件语句
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结束
end
《导与练》以下给出的是用算法基本语句描述的某一个问题的算 法,根据程序回答发下的问题。
Input m,n,p,q If m>n and m>p and m>q then print m end if If n>p and n>q then print n 问题1:若输入的四个数是8,2, end if 1,13,问输出结果是多少? If p>q then 输出13 print p 问题2:该程序表示的算法的功能 else 是什么? print q end if 求出任意输入四个数m,n,p,q中的最大数 end
t=a,a=b,b=t
c>a?
否
t=a,a=c,c=t
是
c>b?
否
t=b,b=c,c=t
输入a,b,c
结束
小结 1、条件结构的程序表示
IF 条件 THEN 语句1 ELSE 语句2 满足条件? END IF
Y
IF 条件 THEN 语句 END IF
N
语句
否 满足条件? 是
语句1
语句2
2、注意书写的规范性
输出y 结束
导与练 某市电信部门规定:拔打市内电话时,如果通话时间 不超过3分钟,则收取通话费0.2元,如果通话时间超过3分钟,则 超过部分以0.1元/分钟收取通话费(t分钟计,不足1分钟按1分钟计)。 问:如何设计一个计算通话费的算法?画出程序框图,并写出程序。 第一步:输入通话时间t 第二步:如果0<t≤3,那么c=0.2,否则 c=0.2+0.1(t-3) 第三步:输出费用c input “通话时间为:”;t if t<=3 and t>0 then c=0.2 else c=0.2+0.1*(t-3) end if print “通话费用为”;c end
q= Y
m 2a
N
否则输出“方程无实数根”, 结束算法。
第四步:判断m=0是否成立。若 是,则输出x1=x2=p;否则x1=p+q X2=p-q,并输出x1,x2.
输出p
m=0 N X1=p+q
X2=p-q
输出x1,x2
方程无实根
结束
程序:
INPUT “A,B,C=”;a,b,c
开始
输入a,b,c
计算
(3)有计算功能
例6 编写程序,输入一元二次方程 ax 2 bx c 0 的系数,输出 它的实数根。 开始
自然语言描述: 第一步:输入a,b,c 第二步:计算判别式m 第三步:判断m≧0是否成立
b 若是,则计算p= 2a ,q= m 2a
输入a,b,c
m=b2-4ac
m≧0 Y p=-b/(2a)
X (X≧0)
-X (X﹤0)
开始 输入X
程序:
输入 X
IF X0 THEN PRINT X ELSE PRINT -X END IF END
X≧0 Y 输出X
N
输出-X
结束
开始
2、把下列语句的意义翻译成程序框图
X<0?
N
(1)IF x<0 THEN x=ABS(x) END IF PRINT “x的绝对值为:”;x
开始
Y X=abs(x)
输出x 结束
(2)IF x>0 THEN y=1 ELSE y=0 END IF
X>0?
N
Y
y=1
结束
y=0
语句
一般格式
主要功能
可对程序中 的变量赋值
说明
(1)提示内容和它后面 的“;”可以省略 (2)一个语句可以给多个变 量赋值,中间用“,”分隔 (3)无计算功能输入语 INPUT “提示内容” Nhomakorabea变量 句
解:设行李质量为m kg,应付运费这y元,则运费
公式为
y=
{
0.25×m 0.25×50+0.25×(m-50)
0.25×50+0.35×50+0.45×(m-100)
程序:
INPUT “m=”;m IF m<=50 THEN y=m﹡0.25 ELSE IF m<=100 THEN
开始 输入m 否
程序框图:
开始
另解:
输入a,b,c
Δ=b2-4ac p= -b/2a q=SQR(ABS (Δ))/(2a)
Δ≥0?
是
否
PRINT “方程只有一解”;x1 ELSE
x1=p+q x2=p-q x1=x2?
否 原方程无实数根
PRINT “xl,x2=”; x1, x2 是 END IF ELSE 原方程有两个相等
算法初步
条件语句
复习巩固
1、输入语句、输出语句和赋值语句对应 于算法中的哪种结构?这三种语句的一 般格式是什么? 顺序结构 输入语句 INPUT “提示内容”;变量 输出语句 PRINT “提示内容”;表达式
PRINT “提示内容”;表达式
值语赋句 值语赋句
2、条件结构常用的程序语言和格式
否 满足条件? 是 满足条件? 是 语句体1 语句体2 否
程序框图:
m≤50?
否 m≤100? 是 y=m×0.25 y=0.25×50+ 0.35×(m-50) y=0.25×50+0.35× 50+0.45×(m-100)
y=0.25﹡50+0.35﹡ (m-50) 是 ELSE y=0.25﹡50+0.35﹡50+ 0.45﹡ (m-100) END IF END IF PRINT “y=”;y END
结束
输入m
《导与练》:到银行办理个人异地汇款(不超过100万元),银行 要收取一定的手续费,汇款不超过100元,收取一元手续费;超 过100元但不超过5000元,按汇款额的1%收取;超过5000元, 一律收取50元手续费;试用条件语句描述汇款额为x元时,银行 收取手续费为 y元的过程,画出程序框图并写出程序。 开始 Input “汇款金额为”;x If x>0 and x<=100 then 输入X y=1 Y else X>0且X≦100 If x<=5000 then N
N x≦5000 Y y=50 y=0.001X
y=1
输出 y 结束
y=0.01*x else y=50 endif endif print “手续费为”;y end
《导与练》 程序中有两个条件语句 ,它们分别是( B) Input “x=“;x If x>0 then ① y=1 Else ② If x=0 then A. ①-- ⑤ ③--- ⑥ ③ y=0 B. ④ -- ⑤ ② --- ⑥ Else ④ C. ④ -- ⑥ ②--- ⑤ y=-1 End if D. ①-- ⑥ ③--- ⑤ ⑤ End if ⑥ Print “y=“;y end
第一步 第二步 第三步 第四步 第五步
输入3个整数a、b、c 将a与b比较,并把小者赋给b,大的赋给a; 将a与c比较,并把小者赋给c,大的赋给a 将b与c比较,并把小者赋给c,大的赋给b 按顺序输出a,b,c
对应的流程图: 开始 输入a,b,c b>a?
否 是 是
相应的QBASIC程序: 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
结束
输出a Y
开始
输入a,b,c N
a>b,a>c
Y
b>c
N
输出b
输出c
开始 输入a,b,c Y N
Input a,b,c
If a>b and a>c then print a else If b>c then
b>c
a>b,a>c
输出a
Y
N
输出b
输出c
print b else print c end if end if
q=
m 2a
N
m=0 N X1=p+q
X2=p-q
输出p
输出x1,x2
方程无实根
END
结束
QBASIC程序:
INPUT “a,b,c=:”;a,b,c d=b*b–4*a*c p = – b / (2 * a) q = SQR(ABS(d)) / (2 * a) IF d >= 0 THEN x1 = p + q x2 = p – q IF x1 = x2 THEN
输出语 句
赋值语 句
(1)表达式可以是变量, 计算公式,或系统信息 可输出表达式 PRINT “提示内容”;表达式 (2)一个语句可以输入多 的值,计算 个表达式,中间用“,”分 隔 (3)有计算功能 (1)“=”的右侧必须是表达 可对程序中 式,左侧必须是变量 变量=表达式 的变量赋值, (2)一个语句只能给一个 变量赋
PRINT “无实根” END IF END
的实数根x1,x2
原方程有两个不等 的实数根x1,x2
结束
例7 编写程序,使得任意输入3个整数按大到小的顺序输出。
算法分析: 算法思想:3个数两两比较,确定大小。按a、b、c输入, 要按a、b、c输出,关键要找到最大值,将它赋值给a,中 值赋给b,最小值赋给c。
开始 输入年份y A=y MOD 4 B=y MOD 100 C=y MOD 400 N C=0 Y 是闰年 不是闰年
程序:
INPUT “请输入年份” A=y MOD 4
B=y MOD 100
C=y MOD 400 IF A=0 AND B<>0 THEN
PRINT “是闰年”
ELSE IF C=0 THEN PRINT “是闰年” ELSE PRINT “不是闰年” END IF END IF
m=b^2-4*a*c IF m>=0 then p=-b/(2a) q=SQR(m)/(2*a) IF m=0 THEN PRINT “X1=X2=“;p ELSE PRINT “x1,x2=“;p+q,p-q END IF ELSE PRINT “方程无实根“ END IF
Y
m=b2-4ac
m≧0 Y p=-b/(2a)
练习
(1)
开始
该程序框图所表示的算法是作 用是什么?并根据程序框图写出相 应的程序。
程序: INPUT a,b,c
输入a,b,c
IF a+b>c and a+c>b and b+c>a THEN a+b>c,a+c > b, b+c > a是否同时成立? 否 PRINT “存在这样的三角形” ELSE PRINT “不存在这样的三角形” 是 存在这样的 三角形 ENDIF END 不存在这样 的三角形
结束
(2).读程序,说明程序的运行过程: INPUT “Please input an integer:” ; x IF 9<x AND X<100 THEN A=x\10 b=x MOD 10
x=10*b+a
PRINT x END IF END
本程序的运行过程 为:输入整数X,若X是满 足9<x<100的两位整数, 则先取x的十位,记作a,再 取出x的个位,记作b,把 a,b调换位置,分别作两位 数的个位数与十位数,然 后输出新的两位数,如输 入25,则输出52.
(3).编写一个程序,判断任意输入的整数的奇偶性
开始 输入一整数a 程序: INPUT “a=“ ; a
M= a MOD 2 IF M=0 THEN PRINT “a为偶数” ELSE PRINT “a为奇数” END IF
M=a MOD 2
N
M=0
Y
输出a为偶数
输出a为奇数
END
结束
(4).闰年是指能被4整除但不能被100整除,或者能被400整除的 年份,编写一个程序,判断输入的年份是否为闰年?
A=0且B≠0 Y 是闰年
N
结束
END
练习
2、 铁路运输托运行李,从甲地到乙地,规定每张客 票托运费计算方法是:行李质量不超过50kg时,按 0.25/kg元计算;超过50kg而不超过100kg时,其 超过部分按0.3元/kg计算,超过100kg时,其超过 部分按0.45元/kg计算,编写程序,输入行李质量, 计算并输出托运的费用,并画出程序框图。
《导与练》 有三个数 a,b,c由键盘输入,输出其中最大的数, 写出该问题的算法,画出程序框图,并写出相应的程序。
算法: 第一步:输入三个整 数a,b,c 第二步:判断a>b且a>c 是否成立,若成立,则 输出a,若不成立,则转 入第三步; 第三步:判断b>c是否成立, 若成立,则输出b,若不成立, 则输出c; 第四步:输出最大数
语句体
IF 条件 THEN 语句体 END IF
(单分支条件结构)
IF 条件 THEN 语句体1 ELSE 语句体2 END IF
(双分支条件结构)
例5:编写一程序,求实数X的绝对值。 算法分析:因为实数X的绝对值|X|=
算法步骤: S1:输入一个实数X S2:判断X的符号,若X≧0, 则输出X;否则输出-X 程序框图:
f ( x) = 《导与练》己知函数 序框图,并编写一个程序。
开始 输入X X≥0 Y y=X2-1 y=2X2-5 N
x 2 1 ( x 0) ,画出程 2 x 2 5 ( x 0)
Input “x=“;x If x>=0 then y=x2-1 else y=2x2-5 end if print y end