1.2基本算法语句算法中的条件结构是由条件语句来表达的,条件语句是处理条件分支逻辑结构的算法语句.条件语句的一般格式满足条件?语句是否只含一个“分支”的条件结构写成条件语句为IF条件THEN语句体ENDIF当计算机执行这种形式的条件语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体,否则执行ENDIF之后的语句.满足条件?语句1语句2是否含两个“分支”的条件结构写成条件语句为IF条件THEN语句体1ELSE语句体2ENDIF当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体1,否则执行ELSE后的语句体2.你能写出这个算法对应的程序吗?x≥0?开始结束输入x是输出x否输出-xENDINPUTxIFx=0THENPRINTxELSEPRINT-xENDIF阅读下面的程序,你能说出程序的运行过程并画出对应的程序框图吗?x0?开始结束输入x是x=-x输出x否ENDINPUTxIFx0THENx=-xENDIFPRINTx某居民区的物业管理部门每月按以下方法收取卫生费:3人和3人以下的住户,每户收取5元;超过3人的住户,每超出1人加收1.2元。问题情境试设计算法,根据输入的人数计算应收取的卫生费?若用c(单位:元)表示应收取的费用,5,0351.2(3),3tctt具体算法步骤如下:S1输入t;S2若t≤3,则c←5,S3输出c.t表示住户的人口数,则否则c←5+1.2(t-3);NY输入t输出ct≤3c←5c←5+1.2(t-3)条件语句的作用在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。【例题解析】〖例1〗:编写程序,输入一元二次方程ax2+bx+c=0的系数,输出它的实数根。算法分析:一元二次方程的根有三种不同情况:设判别式△=b2-4ac(1)当△0时,一元二次方程有两个不等的实数根.(2)当△=0时,一元二次方程有两个相等的实数根.122bxxa(3)当△0时,一元二次方程没有实数根.1,2bxa22bxa1,22bxaa222bxaa2bpa2qa【程序框图】输入a,b,c21是开始△=b2-4ac△≥0?2bpa2qa原方程无实根2结束否1△=0?输出p是否x1=p+qx2=p-q输出x1,x2【程序】INPUT“a,b,c=”;a,b,cd=b*b-4*a*cIFd=0THENp=-b/(2*a)q=SQR(d)/(2*a)IFd=0THENPRINT“Onerealroot:”;pELSEx1=p+qx2=p-qPRINT“Tworealroots:”;x1,x2ENDIFELSEPRINT“Norealroot!”ENDIFEND是开始△=b2-4ac△≥0?2bpa2qa原方程无实根否结束△=0?输出p是否x1=p+qx2=p-q输出x1,x2输入a,b,c〖例2〗:编写程序,使得任意输入的3个整数按从大到小的顺序输出。算法分析:用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.c=bb=tb=tc=ta=c【程序框图】开始输入a,b,cba?是t=aa=b否ca?是t=a否cb?t=c是否输出a,b,c交换a,b的值【程序】INPUT“a,b,c=”;a,b,cIFbaTHENt=aa=bb=tENDIFIFcaTHENt=aa=cc=tENDIFIFcbTHENt=bb=cc=tENDIFPRINTa,b,cEND巩固练习1.INPUT“x=”;xIFx3THENy=x*xELSEy=2*xENDIFPRINT“y=”;yEND若输入4,输出结果是__2.补充完整下面用来求任意一个实数x的绝对值的程序INPUT“x=”;x_____________PRINT“|x|=”;xELSEPRINT“|x|=”;-x_____________END16IFX=0THENENDIF巩固练习右边给出的是用条件语句编写的一个程序,根据该程序回答:INPUTxIFx3THENy=2*xELSEIFx3THENy=x*x-1ELSEy=0ENDIFENDIFPRINTyEND(1)若输入5,则输出结果是____;(2)若输入2,则输出结果是____;(3)若输入3,则输出结果是____;{y244课时小结:本节课主要学习了条件语句的结构、特点、作用及用法,并懂得利用解决一些简单问题。条件语句使程序执行产生分支,根据不同的条件执行不同的路线,使复杂问题简单化。条件语句一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套。【课堂练习】1.课本P29页T2.读程序,说明程序的运行过程.INPUT“x=:”;xIF9xANDx100THENa=x\10b=xMOD10x=10*b+aPRINTxENDIFEND如果有两个或是两个以上的并列条件时,用“AND”把它们连接起来。“\”用来取商.此处表示x除以10的商.“MOD”用来取余数.此处表示x除以10所得余数为b.[问题]如输入的数x=86,则输出的结果是什么?68此程序用于交换一个两位数的个位和十位数字.2.课本P29页T1.INPUT“a,b,c=”;a,b,cIFa+bcANDa+cbANDb+caTHENPRINT“Yes.”ELSEPRINT“No.”ENDIFEND参考答案:设计一个算法,实现求绝对值的功能.S1输入x;S2如果x<0,y←-x,否则y←x;S3输出y.自然语言-算法1:S1输入x;S2如果x<0,x←-x;S3输出x.Y开始输入xx<0y←-xy←xN结束输出yNx←-x结束输出xY开始输入xx<0ReadxIfx<3Theny←-xElsey←xEndifPrinty自然语言-算法2:条件语句伪代码格式2:IfAThenB10Readx20Ifx<0Thenx←-x30Printx输出y结束x>0YN开始输入xy←1x=0YNy←0y←-1下列流程图,实现的一个“符号”函数的求值,试用自然语言和伪代码描述算法.S2如果x>0,y←1,转S4;S1输入x;S4输出y.自然语言:S3如果x=0,y←0,否则y←1;Ifx>0Theny←1ElseIfx=0Theny←0Elsey←-1EndifEndifReadx伪代码:PrintyIfAThenBElseCEndIfIfAThenBIfAThenBElseIfCThenDElseEEndIfEndIf3.课本P29页T3.编写求一个数是偶数还是奇数的程序,从键盘输入一个整数,输出该数的奇偶性.INPUT“a=”;aIFaMOD2=0THENPRINT“Even.”ELSEPRINT“Odd.”ENDIFEND参考答案:4.编写一个程序,输入两个整数a,b,判断a是否能被b整除.INPUT“a,b=”;a,bIFaMODb=0THENPRINT“bdividesa.”ELSEPRINT“bdoesnotdividea.”ENDIFEND参考答案:作业P33BT35.(P33页B组T3)INPUT“x=”;xIFx1THENy=xELSEIFx=1ANDx10THENy=2*x-1ELSEy=3*x-11ENDIFENDIFPRINT“y=”;yEND参考答案: