1、1.2.2条件语句,问题提出,1.输入语句、输出语句和赋值语句的一般格式分别是什么?,输入语句: input“提示内容”;变量,输出语句: print “提示内容”;表达式,赋值语句: 变量=表达式,2.对于顺序结构的算法或程序框图,我们可以利用输入语句、输出语句和赋值语句写出其计算机程序.对于条件结构的算法或程序框图,要转化为计算机能够理解的算法语言,我们必须进一步学习条件语句.,1. 处理条件分支逻辑结构的算法语句,叫做条件语句.,Scilab语言中的条件语句分为if语句和selectcase语句.,2. if语句的一般格式是:,if 表达式语句序列1; else语句序列2; end,计算
2、机执行这种格式的条件语句时,如果表达式结果为真,则执行表达式后面的语句序列1;当表达式结果为假时,执行else后面的语句序列2,然后结束这一条件语句.,例1解一元二次方程ax2+bx+c=0.,S1 计算=b24ac;,S2 如果0,则原方程无实数解;,否则(0), x1= ,x2= ;,S3 输出x1,x2,或“无实数解”信息.,=b24ac,输出x1,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
3、/如果d0disp(“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 表达式语句序列1; end,计算机要执行这种格式的条件语句时,先对表达式的结果进行判断,若表达式结果为真,则执行表达式后面的语句序列1,否则直接跳过语句序列1,执行其他语句。,例2. 比较a与b的大小,并按大小顺序输出.,S1 输入2个数a、b; S2
4、 将a与b比较,并把小者赋给b,大者赋给a; S3 按顺序输出a、b.,a=input(“a=”); b=input(“b=”); If abx=a; a=b; b=x; End Print(%io(2), b, a),开始,输入a, b,结束,输出a, b,If ab,x=a, a=b, b=x,是,否,例3、设计求一个数x的绝对值的算法,并画出相应的程序框图。,解:算法如下: S1:输入x; S2:如果x0,则yx,否则, y x; S3:输出y 。,结 束,Y,N,开始,输入x,x0?,输出y,y=x,y=x,x=input(“x=”); if x=0y=x; else y=x; end
5、 print(%io(2), y),例4. 已知分段函数 画出程序框图,编写程序,输入自变量x的值,输出其相应的函数值.,否,是,开始,输入x,x0,y=x+1,输出y,结束,x0,y=0,y=x+1,否,是,x= input(“x=”); if x0y=x+1; elseif x=0y=0;elsey=x+1;end end,否,是,开始,输入x,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,小结作业,2.编写含有多个条件结构的程序时,每个条件语句执行结束时都以end 表示.,1.条件语句有两种形式,应用时要根据实际问题适当选取.,