1、第一章 算法初步1.2.2 条件语句,复习回顾,输入语句,INPUT “提示内容”;变量,输出语句,PRINT “提示内容”;表达式,赋值语句,变量=表达式,INPUT “提示内容”;变量,PRINT “提示内容”;表达式,变量表达式,可对程序中的变量赋值,可输出表达式的值,计算,可对程序中的变量赋值,计算,(1)提示内容和它后面 的“;”可以省略,(2)一个语句可以给多个变 量赋值,中间用“,”分隔,(3)无计算功能,(1)表达式可以是变量,计算公式,或系统信息,(2)一个语句可以输入多个表达式,中间用“,”分隔,(3)有计算功能,(1)“=”的右侧必须是表达式,左侧必须是变量,(2)一个语
2、句只能给一个变量赋,(3)有计算功能,注意:赋值号左边只能是变量名字,而不是表达式。,问题1:下列的赋值形式正确吗?为什么?,例如: x+y=2+3 2=x,问题2:在数学中x=y与y=x的意义是一样的,那么在赋值语句中一样吗?,注意:赋值号左右不能对换。赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量。,赋值号与数学中的等号意义不同: Y=X,表示用X的值替代变量Y原先的取值。 X=Y,表示用Y的值替代变量X原先的取值。所以“Y=X与 X=Y”的含义运行结果是不同的。,注意:不能利用赋值语句进行代数的演算(如化简、因式分解、解方程等)例如:x2+10x+16=0 (x+8)(x+2)=
3、0 X=-8,x=-2 y=x2-1=(x-1)(x+1),这是不能实现的,问题3:我们知道a=a+1在数学中是不成立的,但在赋值语句中成立吗?为什么?,答: 在赋值语句中是成立的,意思是将a的原值加1在赋给a,即a的值增加1。如果多次给一个变量赋值,则该变量的值取最后赋予的那个值。,数学符号与程序符号的对比,条件结构-在一个算法中,经常会遇到一些条件的判断,算法的流向根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构.,步骤A,满足条件?,步骤B,是,否,步骤A,满足条件?,是,否,复习:,条件语句: 算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。,1、条
4、件语句的一般格式有两种:,(1) IFTHEN语句 :,IF 条件 THEN 语句体 END IF,计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体,否则执行END IF 之后的语句。,步骤A,满足条件?,是,否,(2) IFTHENELSE语句:,IF 条件 THEN 语句体1 ELSE 语句体2 END IF,步骤A,满足条件?,步骤B,是,否,当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体1,否则执行ELSE后的语句体2。,IF 条件 THEN 语句体1ELSE 语句体2END IF,IF
5、条件 THEN 语句体END IF,(单分支条件结构),(双分支条件结构),例1、编写程序,输入一个x的值,要求输出它的绝对值.,是,程序框图:,开始,输入x,x0?,输出x,否,输出x,结束,INPUT xIF x= 0 THEN PRINT xELSE PRINT -xEND IFEND,程序,INPUT xIF x3 THEN y=x * x ELSE y=2 * x END IF PRINT “y=”; y END 若输入4,输出结果是,补充完整下面用来求任意一个实数x的绝对值的程序 INPUT “x= ”; x _ PRINT “|x|= ”; x ELSE PRINT “|x|=
6、”; -x _ END,16,IF X=0 THEN,END IF,3. 根据下面的算法和程序框图写出相应的程序。,开始,输入a,b,ab?,输出b-a,输出a-b,结束,INPUT “a=”; a,END IF,INPUT “b=”; b,IF ab THEN PRINT a-b,ELSE PRINT b-a,END,随堂练习,例2.已知y= ,编写程序, 输入自变量的值,输出相应的函数值。,结束,x0?,否,y=x+1,输出y,y=-2x+1,是,开始,输入x,IF x=0 THEN p=-b/(2*a) q=SQR (d) /(2*a) IF d=0 THEN PRINT “x1= x2
7、=”;p ELSE PRINT “x1, x2=”;p-q, p+q END IFELSE PRINT “No real root!”END IFEND,例4.编写程序,使得任意输入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,c,开始,输入a,b,c,ba
8、?,ca?,cb?,输出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,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.右边给出的是用条件语句编写的一个程序,根据该程序回答:,INPUT x IF x3 THEN y=x*x-1 ELSE y=0 END IFEND IFPRINT yEND,(1)若输入5,则输出结果是 ;(2)若输入2,则输出结果是 ;,24,4,巩固练习,2. 下列程序运行后的结果是( )a=2b=3IF ab THEN t=a a=b b=tEND IFPRINT “a=”; aPRINT “b=”; bEND,A. a=2,b=3 B. a=3,b=3C. a=2,b=2 D. a=3,b=2,D,小结:,条件语句的一般格式有两种:,(1) IFTHEN语句 :,IF 条件 THEN 语句END IF,(2 ) IFTHENELSE语句:,IF 条件 THEN 语句1 ELSE 语句2 END IF,否,是,满足条件?,语句1,