1、1.2.2条件语句,1. 处理条件分支逻辑结构的算法语句,叫做条件语句.,Scilab语言中的条件语句分为if语句和selectcase语句.,2. if语句的一般格式是:,if 表达式 语句序列1;else 语句序列2;end,计算机执行这种格式的条件语句时, 如果表达式结果为真,则执行表达式后面的语句序列1; 当表达式结果为假时,执行else后面的语句序列2, 然后结束这一条件语句.,例1解一元二次方程ax2+bx+c=0.,S1 计算=b24ac;,S2 如果0,则原方程无实数解;,否则(0), x1= , x2= ;,S3 输出x1,x2,或“无实数解”信息.,=b24ac,输出x1,
2、x2,0?,Y,N,输出“方程无实数解”,输入a, b, c,开始,结束,a=input(“a=”);b=input(“b=”); /输入a,b,c的值c=input(“c=”);d=b*b4*a*c; /计算判别式的值if d0 /如果d0 disp(“no solution”); /输出无解信息else t=sqrt(d); /否则计算d的平方根 x1=(b+t)/(2*a); /计算x1的值 x2=(bt)/(2*a); /计算x2的值 print(%io(2),x2,x1) /输出x1,x2的值end /结束条件语句,3. ifend格式的条件语句的一般格式为:,if 表达式 语句序列
3、1;end,计算机要执行这种格式的条件语句时,先对表达式的结果进行判断,若表达式结果为真,则执行表达式后面的语句序列1,否则直接跳过语句序列1,执行其他语句。,例2. 比较a与b的大小,并按大小顺序输出.,S1 输入2个数a、b;S2 将a与b比较,并把小者赋给b,大者赋给a;S3 按顺序输出a、b.,a=input(“a=”);b=input(“b=”);If ab x=a; a=b; b=x;EndPrint(%io(2), b, a),开始,输入a, b,结束,输出a, b,If aa t=a;a=b;b=t;endif ca t=a;a=c;c=t;endif cb t=b;b=c;c
4、=t;endPrint(%io(2),c,b,a),例4、设计求一个数x的绝对值的算法,并画出相应的程序框图。,解:算法如下:S1:输入x;S2:如果x0,则yx, 否则, y x;S3:输出y 。,结 束,Y,N,开始,输入x,x0?,输出y,y=x,y=x,x=input(“x=”);if x=0 y=x;else y=x;endprint(%io(2), y),例5. 编写求一个整数是偶数还是奇数的程序, 从键盘输入一个整数, 输出该数的奇偶性.,n=input(“n=”);m=nint(n/2)*2;if m0 disp(“Odd”)else disp(“Even”)end,例6. 已
5、知分段函数 画出程序框图,编写程序,输入自变量x的值,输出其相应的函数值.,否,是,开始,输入x,x0,y=x+1,输出y,结束,x0,y=0,y=x+1,否,是,x= input(“x=”);if x0,y=x+1,输出y,结束,x0,y=0,y=x+1,否,是,练习题,1.下面的问题中不需用条件结构就可以实现的是( )A.已知三角形三边长,求三角形的面积;B.求方程ax+b=0 (a, b为常数)的根;C.求三个实数a,b,c中的最大者;D.给出两点M、N的坐标,计算直线MN的斜率。,A,2. 给出以下四个问题, 输入一个数x, 输出它的相反数. 求面积为6的正方形的周长.求三个数a,b,c中的最大数. 求函数 的函数值. 其中不需要用条件语句来描述其算法的有 ( ) A. 1个 B. 2个 C. 3个 D. 4个,B,3阅读下列程序:x=input(“x=”);if x0 y=%pi()*x/2+3;else if x0 y=%pi()*x/25; else y=0 end endPrint(%io(2), y)如果输入x2,则输出结果y为( )(A)3 (B)3 (C) 5 (D)5,C,