课件25张PPT。条件语句算法初步复习巩固1、输入语句、输出语句和赋值语句对应于算法中的哪种结构?这三种语句的一般格式是什么? 顺序结构输入语句输出语句赋值语句INPUT “提示内容”;变量PRINT “提示内容”;表达式变量=表达式INPUT “提示内容”;变量PRINT “提示内容”;表达式变量=表达式可对程序中
的变量赋值可输出表达式的值,计算可对程序中的变量赋值,计算(1)提示内容和它后面 的“;”可以省略(2)一个语句可以给多个变
量赋值,中间用“,”分隔(3)无计算功能(1)表达式可以是变量,
计算公式,或系统信息(2)一个语句可以输入多个表达式,中间用“,”分隔(3)有计算功能(1)“=”的右侧必须是表达式,左侧必须是变量(2)一个语句只能给一个变量赋(3)有计算功能IF 条件 THEN
语句体1
ELSE
语句体2
END IFIF 条件 THEN
语句体
END IF2、条件结构常用的程序语言和格式(单分支条件结构)(双分支条件结构)例5:编写一程序,求实数X的绝对值。算法步骤:S1:输入一个实数XS2:判断X的符号,若X≧0,则输出X;否则输出-X程序框图:开始输入XX≧0输出X输出-X结束YN程序:
INPUT X
IF X>=0 THEN
PRINT X
ELSE
PRINT -X
END IF
END2、把下列语句的意义翻译成程序框图(2)IF x>0 THEN
y=1
ELSE
y=0
END IF(1)IF x<0 THEN
x=ABS(x) END IF PRINT “x的绝对值为:”;x 开始X=abs(x)结束开始y=1y=0结束YNYN输出xX<0?X>0?例6 编写程序,输入一元二次方程 的系数,输出它的实数根。
自然语言描述:第一步:输入a,b,c第二步:计算判别式m第四步:判断m=0是否成立。若是,则输出x1=x2=p;否则x1=p+q
X2=p-q,并输出x1,x2.程序:INPUT “A,B,C=”;a,b,cm=b^2-4*a*cIF m>=0 thenp=-b/(2a)q=SQR(m)/(2*a) IF m=0 THENPRINT “X1=X2=“;p ELSEPRINT “x1,x2=“;p+q,p-qEND IFELSEPRINT “方程无实根“END IFENDQBASIC程序:INPUT “a,b,c=:”;a,b,cd = b * b – 4 * a * cp = – b / (2 * a)q = SQR(ABS(d)) / (2 * a)IF d >= 0 THENx1 = p + qx2 = p – qIF x1 = x2 THENPRINT “方程只有一解”;x1ELSEPRINT “xl,x2=”; x1, x2END IFELSEPRINT “无实根”END IFEND 开 始输入a,b,cΔ=b2-4acp= -b/2aq=SQR(ABS (Δ))/(2a)x1=p+q
x2=p-qΔ≥0?x1=x2?原方程有两个不等
的实数根x1,x2原方程有两个相等
的实数根x1,x2原方程无实数根结 束是否是否程序框图:另解:例7 编写程序,使得任意输入3个整数按大到小的顺序输出。算法分析:算法思想:3个数两两比较,确定大小。按a、b、c输入,要按a、b、c输出,关键要找到最大值,将它赋值给a,中值赋给b,最小值赋给c。第一步 输入3个整数a、b、c第二步 将a与b比较,并把小者赋给b,大的赋给a;第三步 将a与c比较,并把小者赋给c,大的赋给a第四步 将b与c比较,并把小者赋给c,大的赋给b第五步 按顺序输出a,b,cINPUT “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相应的QBASIC程序:开始t=a,a=b,b=tt=a,a=c,c=tt=b,b=c,c=t输入a,b,c输入a,b,cb>a?c>a?c>b?结束是是否否是否对应的流程图:小结1、条件结构的程序表示2、注意书写的规范性IF 条件 THEN
语句1
ELSE
语句2
END IFIF 条件 THEN
语句
END IFYN练习开始输入a,b,ca+b>c,a+c > b,
b+c > a是否同时成立?存在这样的
三角形不存在这样
的三角形结束否是(1) 该程序框图所表示的算法是作用是什么?并根据程序框图写出相应的程序。程序:INPUT a,b,cIF a+b>c and a+c>b and b+c>a THENPRINT “存在这样的三角形”ELSEPRINT “不存在这样的三角形”ENDIFEND(2).读程序,说明程序的运行过程:INPUT “Please input an integer:” ; x
IF 9 A=x10
b=x MOD 10
x=10*b+a
PRINT x
END IF
END 本程序的运行过程为:输入整数X,若X是满足9END(4).闰年是指能被4整除但不能被100整除,或者能被400整除的年份,编写一个程序,判断输入的年份是否为闰年?开始输入年份yA=y MOD 4B=y MOD 100C=y MOD 400A=0且B≠0C=0是闰年是闰年结束不是闰年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
END程序:NYYN练习2、 铁路运输托运行李,从甲地到乙地,规定每张客票托运费计算方法是:行李质量不超过50kg时,按0.25/kg元计算;超过50kg而不超过100kg时,其超过部分按0.3元/kg计算,超过100kg时,其超过部分按0.45元/kg计算,编写程序,输入行李质量,计算并输出托运的费用,并画出程序框图。解:设行李质量为m kg,应付运费这y元,则运费公式为开始输入mm≤50?m≤100?y=m×0.25y=0.25×50+
0.35×(m-50)y=0.25×50+0.35×
50+0.45×(m-100)输入m结束INPUT “m=”;mIF m<=50 THENy=m﹡0.25ELSEIF m<=100 THENy=0.25﹡50+0.35﹡ (m-50)ELSEy=0.25﹡50+0.35﹡50+
0.45﹡ (m-100)END IFEND IFPRINT “y=”;yEND 程序:程序框图:否否是是《导与练》:到银行办理个人异地汇款(不超过100万元),银行要收取一定的手续费,汇款不超过100元,收取一元手续费;超过100元但不超过5000元,按汇款额的1%收取;超过5000元,一律收取50元手续费;试用条件语句描述汇款额为x元时,银行收取手续费为 y元的过程,画出程序框图并写出程序。开始输入XX>0且X≦100x≦5000y=1y=50y=0.001X输出 y 结束Input “汇款金额为”;xIf x>0 and x<=100 theny=1elseIf x<=5000 theny=0.01*xelsey=50endifendifprint “手续费为”;yendNYYN《导与练》 程序中有两个条件语句 ,它们分别是( )Input “x=“;x
If x>0 then
①
y=1
Else ②
If x=0 then
③
y=0
Else
④
y=-1
End if
⑤
End if
⑥
Print “y=“;y
endBA. ①-- ⑤ ③--- ⑥B. ④ -- ⑤ ② --- ⑥C. ④ -- ⑥ ②--- ⑤D. ①-- ⑥ ③--- ⑤《导与练》 有三个数 a,b,c由键盘输入,输出其中最大的数,写出该问题的算法,画出程序框图,并写出相应的程序。算法:
第一步:输入三个整数a,b,c第二步:判断a>b且a>c是否成立,若成立,则输出a,若不成立,则转入第三步;第三步:判断b>c是否成立,若成立,则输出b,若不成立,则输出c;第四步:输出最大数 开始输入a,b,ca>b,a>c输出ab>c输出b输出c结束Input a,b,cIf a>b and a>c thenprint aelseIf b>c thenprint belseprint cend ifend ifend 《导与练》以下给出的是用算法基本语句描述的某一个问题的算法,根据程序回答发下的问题。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
end if
If p>q then
print p
else
print q
end if
end问题1:若输入的四个数是8,2,1,13,问输出结果是多少?问题2:该程序表示的算法的功能是什么?输出13求出任意输入四个数m,n,p,q中的最大数《导与练》己知函数 ,画出程序框图,并编写一个程序。开始输入XX≥0y=X2-1y=2X2-5输出y结束Input “x=“;xIf x>=0 theny=x2-1elsey=2x2-5end ifprint yend 导与练 某市电信部门规定:拔打市内电话时,如果通话时间不超过3分钟,则收取通话费0.2元,如果通话时间超过3分钟,则超过部分以0.1元/分钟收取通话费(t分钟计,不足1分钟按1分钟计)。问:如何设计一个计算通话费的算法?画出程序框图,并写出程序。 第一步:输入通话时间t第二步:如果00c=0.2C=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