这就是这一节所要研究的主要内容——基本算法语句。今天,我们先一起来学习输入、输出语句和赋值语句、条件语句。程序设计语言有很多种。如BASIC,Foxbase,C语言,C++,J++,VB等。各种程序设计语言中都包含下列基本的算法语句:输入语句输出语句赋值语句条件语句循环语句取余数MOD取商\==幂运算^除法运算/乘法运算功能运算符*Inx|x|功能LOG(x)SQR(x)ABS(x)注意事项函数名xx0x0BASIC语言中的常用运算符号1.2.1基本算法语句——输入语句、输出语句和赋值语句【探究新知】我们知道,顺序结构是任何一个算法都离不开的基本结构。语句n+1语句n输入、输出语句和赋值语句基本上对应于算法中的顺序结构.计算机从上而下按照语句排列的顺序执行这些语句.输入语句和输出语句分别用来实现算法的输入信息,输出结果的功能.(如右图)开始输入x3232430yxxx输出x,y结束框图:例1.用描点法作函数的图象时,需要求出自变量和函数的一组对应值,编写程序,分别计算当x=-5,-4,-3,-2,-1,0,1,2,3,4,5时的函数值。3232430yxxx程序:INPUT“x=”;xy=x^3+3x^2-24x+30PRINTxPRINTyEND**INPUT“x=”;xy=x^3+3*x^2-24*x+30PRINTxPRINTyEND程序:-----------------输入语句---------赋值语句-------------------------打印语句-------------------------打印语句-------------------------表示结束输出语句输出语句一.输入语句INPUT“提示内容”;变量输入语句的一般格式说明:(1)“提示内容”提示用户输入什么样的信息,变量是指程序在运行时其值是可以变化的量;(2)输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式;(3)提示内容与变量之间用分号“;”隔开,若输入多个变量,变量与变量之间用逗号“,”隔开.例如,输入一个学生数学,语文,英语三门课的成绩,可以写成:INPUT“数学,语文,英语”;a,b,c注意:INPUT语句不但可以给单个变量赋值,还可以给多个变量赋值,其格式为:INPUT“提示内容1,提示内容2,提示内容3,…”;变量1,变量2,变量3,…二.输出语句PRINT“提示内容”;表达式说明:(1)“提示内容”提示用户输出什么样的信息,表达式是指程序要输出的数据;①输出常量,变量的值和字符串等系统信息。②输出数值计算的结果。(2)输出语句的用途:输出语句的一般格式(3)同输入语句一样,表达式前也可以有“提示内容”.例如:输出框可以转化为输出语句:输出SPRINT“S=”;S三.赋值语句(1)赋值语句的一般格式:变量=表达式(2)赋值语句的作用是:先计算出赋值号右边表达式的值,然后把这个值赋给左边的变量,使该变量的值等于表达式的值。(3)赋值语句中的“=”称作赋值号,与数学中的等号的意义是不同的.赋值号的左右两边不能对换.(4)赋值语句左边只能是变量名字而不是表达式,如:2=x是错误的例2.编写程序,计算一个学生数学、语文、英语三门课的平均成绩。框图:开始输入a,b,c输出y结束y=(a+b+c)/3程序1:INPUT“Maths=”;aINPUT“Chinese=”;bINPUT“English=”;c(a+b+c)/3PRINT“Theaverage=”;ENDINPUT“Maths,Chinese,English=”;a,b,c程序2:PRINT“Theaverage=”;(a+b+c)/3END【例题解析】〖例3〗:给一个变量重复赋值。程序:A=10A=A+15PRINTAENDA的输出值是多少?分析:此程序给变量A赋了两次值.A的初值为10,第二次赋值后,初值被“覆盖”,A的值变为25,因此输出值是25.〖例4〗交换两个变量A和B的值,并输出交换前后的值。分析:比如交换装满水的两个水桶里的水需要再找一个空桶INPUTA,BPRINTA,BX=AA=BB=XPRINTA,BEND程序:问题:能否用下列赋值语句交换A,B的值?A=BB=A不能!!!!!!1.2.2基本算法语句——条件语句算法中的条件结构是由条件语句来表达的,条件语句的一般格式满足条件?语句是否只含一个“分支”的条件结构写成条件语句为IF条件THEN语句体ENDIF满足条件?语句1语句2是否含两个“分支”的条件结构写成条件语句为IF条件THEN语句体1ELSE语句体2ENDIF例5:编写一个程序,求实数x的绝对值.第一步,输入一个实数x.第二步,判断x的符号.若x≥0,则输出x;否则,输出-x.该算法的程序框图如何表示?x≥0?开始结束输入x是输出x否输出-xIF条件THEN语句体1ELSE语句体2ENDIF你能写出这个算法对应的程序吗?x≥0?开始结束输入x是输出x否输出-xENDINPUTxIFx=0THENPRINTxELSEPRINT-xENDIF阅读下面的程序,你能说出程序的运行过程并画出对应的程序框图吗?x0?开始结束输入x是x=-x输出x否ENDINPUTxIFx0THENx=-xENDIFPRINTx思考:阅读下面的程序,你能说明它是一个什么问题的算法吗?INPUT“x=”;xIFx=1THENy=x∧2+3*xELSEy=x-4ENDIFPRINTyEND23,14,1xxxyxx〖例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.课本P22页T2.读程序,说明程序的运行过程.INPUT“x=:”;xIF9xANDx100THENa=x\10b=xMOD10x=10*b+aPRINTxENDIFEND如果有两个或是两个以上的并列条件时,用“AND”把它们连接起来。“\”用来取商.此处表示x除以10的商.“MOD”用来取余数.此处表示x除以10所得余数为b.[问题]如输入的数x=86,则输出的结果是什么?68此程序用于交换一个两位数的个位和十位数字.2.课本P22页T1.INPUT“a,b,c=”;a,b,cIFa+bcANDa+cbANDb+caTHENPRINT“Yes.”ELSEPRINT“No.”ENDIFEND参考答案:3.课本P22页T3.编写求一个数是偶数还是奇数的程序,从键盘输入一个整数,输出该数的奇偶性.INPUT“a=”;aIFaMOD2=0THENPRINT“Even.”ELSEPRINT“Odd.”ENDIFEND参考答案:4.课本P22页T1.闰年指年份能被4整除但不能被100整除,或者能被400整除的年份.编写一个程序,判断输入的年份是否为闰年.INPUT“Pleaseinputayear:”;yb=yMOD4c=yMOD100d=yMOD400IFb=0ANDc0THENPRINT“Leapyear.”ELSEIFd=0THENPRINT“Leapyear.”ELSEPRINT“Notleapyear.”ENDIFENDIFEND参考答案:表示c≠05.(P25页A组T3)编写一个程序,输入两个整数a,b,判断a是否能被b整除.INPUT“a,b=”;a,bIFaMODb=0THENPRINT“bdividesa.”ELSEPRINT“bdoesnotdividea.”ENDIFEND参考答案:6.(P25页B组T2)INPUT“x=”;xIFx1THENy=xELSEIFx=1ANDx10THENy=2*x-1ELSEy=3*x-11ENDIFENDIFPRINT“y=”;yEND参考答案:1.2.3基本算法语句——循环语句条件语句的一般格式满足条件?语句是否只含一个“分支”的条件结构写成条件语句为IF条件THEN语句体ENDIF满足条件?语句1语句2是否含两个“分支”的条件结构写成条件语句为IF条件THEN语句体1ELSE语句体2ENDIF算法中的循环结构是由循环语句来实现的.循环结构有两种-----当型与直到型.满足条件?循环体是否当型循环结构(当条件满足时反复执行循环体)直到型循环结构(反复执行循环体直到条件满足)循环体是否满足条件?对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构。即WHILE语句和UNTIL语句。(1)WHILE语句的一般格式是:WHILE条件循环体WEND其中循环体是由计算机反复执行的一组语句构成的。WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的。WHILE——当……时候WEND——朝……方向行走(1)WHILE语句的一般格式是WHILE条件循环体WEND当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句.满足条件?循环体是否当型循环结构(2)UNTIL语句的一般格式是:DO循环体LOOPUNTIL条件循环体是否满足条件?直到型循环结构DO——做什么LOOPUNTIL——绕环回线走,直到达到某种条件为止思考:参照其直到型循环结构对应的程序框图,说说计算机是按怎样的顺序执行UNTIL语句的?(2)UNTIL语句的一般格式是:DO循环体LOOPUNTIL条件循环体是否满足条件?直到型循环结构从UNTIL型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOPUNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句.提问:通过对照,大家觉得WHILE型语句与UNTIL型语句之间有什么区别呢?区别:在WHILE语句中,是当条件满足时执行循环体,而在UNTIL语句中,是当条件不满足时执行循环体。WHILE语句的一般格式WHILE条件循环体WENDUNTIL语句的一般格式DO循环体LOOPUNTIL条件例1.编写程序,计算自然数1+2+3+…+99+100的和.分析:这是一个累加问题.我们可以用WHILE型语句,也可以用UNTIL型语句。WHILE语句开始结束i=1S=0i=i+1S=S+i输出Si≤100?是否当型循环结构i=1S=0WHLIEi=100S=S+ii=i+1WENDPRINTSENDUNTIL语句开始结束i=1S=0