1、1.2.2条件语句条件语句 一个算法中,经常会遇到一些条件的判断,算法的一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向流程根据条件是否成立有不同的流向.这就是条件结这就是条件结构。用程序框图表示条件结构如下图构。用程序框图表示条件结构如下图(常见两种)(常见两种)条件语句条件语句IFTHENELSE语句IFTHEN语句条件语句:算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。1、条件语句的一般格式有两种:(1)IFTHEN语句:IF 条件 THEN 语句体 END IF 计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条
2、件符合,就执行THEN后的语句体,否则执行END IF 之后的语句。步骤A满足条件?是否(2)IFTHENELSE语句:IF 条件 THEN 语句体1 ELSE 语句体2 END IF 步骤A满足条件?步骤B是否 当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体1,否则执行ELSE后的语句体2。(4 4)程序中的条件语句与程序框图中的条件结构存在一一对应关系如下图:)程序中的条件语句与程序框图中的条件结构存在一一对应关系如下图:(3)相同点:首先对IF后的条件进行判断,如果符合条件就执行THEN 后边的语句.不同点:对于“IFTHENELSE”语句,若
3、不符合条件,则执行ELSE后面的“语句体2”.对于“IFTHEN”语句,若不符合条件则直接结束该条件语句,转而执行其他后面的语句.例1、编写程序,输入一个x的值,要求输出它的绝对值.是程序框图:开 始输入xx0?输出x否输出x结 束INPUT xIF x=0 THEN PRINT xELSE PRINT-xEND IFEND程序INPUT xIF x=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 IFELSE PRINT“No real room.”END
4、IFEND设计一个求一元二次方程 的算法20axbxc条件语句完整版 北师大版1条件语句完整版 北师大版1INPUT a,b,cd=b 2-4*a*cp=-b/(2*a)q=SQR(ABS(d)/(2*a)IF d=0 THENx1=p+qx2=p-qIF x1=x2 THENPRINT“两个相等的实根:x1=x2”;x1ELSEPRINT“两个不相等的实根:x1=”;x1,“x2=”;x2END IFELSEPRINT“没有实根”END IFEND2INPUT“a,b,c=”;a,b,cd=b2-4*a*cP=-b/(2*a)q=SQR(ABS(d)/(2*a)X1=p+qX2=p-qIF
5、db且ac是否成立,若成立,则输出a,若不成立,则转入第三步;第三步:判断bc是否成立,若成立,则输出b,若不成立,则输出c;第四步:输出最大数 开始输入a,b,cab,ac?Y输出aNbc?YN输出b输出c结束条件语句完整版 北师大版1条件语句完整版 北师大版1INPUT a,b,cIF ab AND ac THENPRINT aELSEIF bc THENPRINT bELSEPRINT cEND IFEND IFE ND 开始输入a,b,cab,ac?Y输出aNbc?YN输出b输出c结束条件语句完整版 北师大版1条件语句完整版 北师大版1,例3:编写程序,使得任意输入的3个整数按从大到小
6、的顺序输出。(IFTHEN 型)算法分析:用a,b,c表示输入的3个整数;为了节约变量,把它们重新排列后,仍用a,b,c表示,并使abc.具体操作步骤如下。第一步:输入3个整数a,b,c.第二步:将a与b比较,并把小者赋给b,大者赋给a.第三步:将a与c比较.并把小者赋给c,大者赋给a,此时a已是三者中最大的。第四步:将b与c比较,并把小者赋给c,大者赋给b,此时a,b,c已按从大到小的顺序排列好。第五步:按顺序输出a,b,c.条件语句完整版 北师大版1条件语句完整版 北师大版1开始输入a,b,cba?ca?cb?输出a,b,c结束t=aa=bb=tt=aa=cc=tc=tb=ct=bYNYN
7、NYINPUT“a,b,c=”;a,b,cIF ba THEN t=a a=b b=tEND IFIF ca THEN t=a a=c c=tEND IFIF cb THEN t=b b=c c=tEND IFPRINT a,b,cEND程序:条件语句完整版 北师大版1条件语句完整版 北师大版1(1)下面程序运行后输出的结果为_a=33b=99IF ab THEN t=a a=b b=t a=a-bPRINT “a=”;aEND IFEND(2)下面程序运行后输出的结果为_x=5y=-20IF x0 THEN y=1ELSE IF x=0 THEN y=0 ELSE y=-1 END IFEL
8、SE IFPRINT yEND1(0)0(0)1(0)xyxx条件语句完整版 北师大版1条件语句完整版 北师大版1将程序补充完整 输入两个数,输出其中较大的数,程序如下:INPUT a,bIF ab THENPRINT aELSE_END IFENDPRINT b条件语句完整版 北师大版1条件语句完整版 北师大版1 4.判断任意输入的两个数x是否是正数,若是,输出它的平方值,若不是,输出它的相反数。INPUT xIF_THENy=-1*xELSEy=x*xEND IFPRINT yENDX THENy=4*cos(x)+1ELSEy=4*sin(x)+1END IFPRINT yEND3条件语
9、句完整版 北师大版1条件语句完整版 北师大版16.以下程序运行后输出的数是_X=4y=-8IF x=0 THENm=a*a-1PRINT mELSEPRINT“a negative number”END IFEND若输入-3,输出结果为_若输入2,输出结果为_“a negative number”3条件语句完整版 北师大版1条件语句完整版 北师大版18.写出下列程序运行后输出的结果。INPUT xIF ac,b+ca,c+ab是否同时成立?存在这样的三角形结束是否不存在这样的三角形INPUT“a=,b=,c=”;a,b,cIF a+bc AND b+ca AND a+cb THEN PRINT
10、“存在这样的三角形”ELES PRINT“不存在这样的三角形”END IFENDP29练习1:教材P11例4程序框图转化为程序条件语句完整版 北师大版1条件语句完整版 北师大版1INPUR “Please input an integer:”;xIF x9 AND 100 THEN a=x10 b=x MOD 10 x=10*b+a PRINT xEND IFENDP29:(2)条件语句完整版 北师大版1条件语句完整版 北师大版1开始输入一整数aM=0?M=a MOD 2输出a为偶数输出a为奇数结束YN程序:INPUT “a=”;aM=a MOD 2IF M=0 THEN PRINT “a为偶数”ELSEPRINT “a为奇数”END IFENDP29:(3)条件语句完整版 北师大版1条件语句完整版 北师大版1P29:(4)INPUT“x=”;xa=x MOD 4b=x MOD 100c=x MOD 400IF a=0 AND b0 THEN PRINT“x是闰年”ELES IF c=0 THEN PRINT“x是闰年”ELES PRINT “x不是闰年”END IFENDIFEND条件语句完整版 北师大版1条件语句完整版 北师大版1条件语句完整版 北师大版1条件语句完整版 北师大版1