(
课件网) 1.2.2 条件语句 一个算法中,经常会遇到一些条件的判断,算法的 流程根据条件是否成立有不同的流向.这就是条件结 构。用程序框图表示条件结构如下图(常见两种) 条件语句 IF—THEN—ELSE语句 IF—THEN语句 条件语句: 算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。 1、条件语句的一般格式有两种: (1) IF—THEN语句 : IF 条件 THEN 语句体 END IF 计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体,否则执行END IF 之后的语句。 步骤A 满足条件? 是 否 (2) IF—THEN—ELSE语句: IF 条件 THEN 语句体1 ELSE 语句体2 END IF 步骤A 满足条件? 步骤B 是 否 当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体1,否则执行ELSE后的语句体2。 (4)程序中的条件语句与程序框图中的条件结构存在一一对应关系如下图: (3)相同点:首先对IF后的条件进行判断,如果符合条件就执行THEN 后边的语句. 不同点:对于“IF—THEN—ELSE”语句,若不符合条件,则执行ELSE后面的“语句体2”. 对于“IF—THEN”语句,若不符合条件则直接结束该条件语句,转而执行其他后面的语句. 例1、编写程序,输入一个x的值,要求输出它的绝对值. 是 程序框图: 开 始 输入x x≥0? 输出x 否 输出-x 结 束 INPUT x IF x>= 0 THEN PRINT x ELSE PRINT -x END IF END 程序 INPUT x IF x<0 THEN PRINT -x END IF PRINT x END IF—THEN型 IF—THEN—ELSE型 开 始 输入a,b,c △=b2-4ac p= -b/2a △ ≥0? △=0? 输出P 原方程无实数根 结 束 否 否 输出x1,x2 是 是 程序 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 room.” END IF END 设计一个求一元二次方程 的算法 〖例2变式〗:有三个数 a,b,c由键盘输入,输出其中最大的数,写出该问题的算法,画出程序框图,并写出相应的程序。 算法: 第一步:输入三个整数a,b,c 第二步:判断a>b且a>c是否成立,若成立,则输出a,若不成立,则转入第三步; 第三步:判断b>c是否成立,若成立,则输出b,若不成立,则输出c; 第四步:输出最大数 开始 输入a,b,c a>b,a>c? 输出a b>c? 输出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 E ND 开始 输入a,b,c a>b,a>c? 输出a b>c? 输出b 输出c 结束 , 〖例3〗:编写程序,使得任意输入的3个整数按从大到小的顺序输出。( IF—THEN 型) 算法分析: 用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. 开始 输入a,b,c b>a? c>a? c>b? 输出a,b,c 结束 t=a a=b b=t t=a a=c c=t c=t b=c t=b Y N Y N N Y 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 程序: (1)下面程序运行后输出的结果为____ a=33 b=99 IF a