1.2基本算法语句1.2.2条件语句输入语句输出语句赋值语句条件语句循环语句条件语句IF-THEN格式:IF条件THEN语句体ENDIF说明:“条件”表示判断的条件,“语句”表示满足条件时执行的操作内容;条件不满足时,结束程序,ENDIF表示条件语句的结束。语句体是否满足条件?IF-THEN-ELSE格式:IF条件THEN语句1ELSE语句2ENDIF说明:在条件语句的一般格式中,“条件”表示判断的条件;“语句1”表示满足条件时执行的操作内容;“语句2”表示不满足条件时执行的操作的内容;ENDIF表示条件语句的结束。满足条件?语句1语句2是否条件语句例1、编写程序,输入一个x的值,要求输出它的绝对值。课本例5inputxifx=0thenprintxelseprint-xendifend例2、编写程序,输入一个x的值,如果它是正数,则输出它,否则不输出。参考课本26页思考inputxifx0thenprintxendifend条件语句的嵌套IF条件1THEN语句1ELSEIF条件2THEN语句2ELSE语句3ENDIFENDIF举例一元二次方程的根的三种情况!P29练习1、2、3、4(作业本1)1.2基本算法语句1.2.3循环语句输入语句输出语句赋值语句条件语句循环语句循环结构的定义:在一些算法中,从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构。反复执行的处理步骤称为循环体。两种循环结构有什么差别?AP成立不成立While(当型)循环成立AP不成立Until(直到型)循环成立AP不成立AP成立不成立While(当型)循环Until(直到型)循环两种循环结构有什么差别?先执行循环体,然后再检查条件是否成立,如果不成立就重复执行循环体,直到条件成立退出循环。先判断指定的条件是否为真,若条件为真,执行循环条件,条件为假时退出循环。先执行后判断先判断后执行两种循环语句:WHILE条件循环体WEND(1)WHILE语句的一般格式:当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句.也叫“前测试型”循环循环体满足条件?是否While(当型)循环练习:根据1.1.2例6中的程序框图,编写计算机程序来计算1+2+…+100的值。i=100?i=1开始输出sum结束否是sum=0i=i+1sum=sum+ii=1sum=0WHILEi=100sum=sum+ii=i+1WENDPRINTsumEND程序:Until(直到型)循环DO循环体LOOPUNTIL条件(2)UNTIL语句的一般格式:也叫“后测试型”循环循环体满足条件?否是思考1:参照直到型循环结构,说说计算机是按怎样的顺序执行UNTIL语句的?思考2:用UNTIL语句编写计算机程序,来计算1+2+…+100的值.思考2:用UNTIL语句编写计算机程序,来计算1+2+…+100的值.i=1sum=0DOsum=sum+ii=i+1LOOPUNTILi100PRINTsumENDi=1开始结束sum=0输出sumi=i+1sum=sum+Ii100?否是程序框图:程序:小结1、条件结构的程序表示2、注意书写的规范性IF条件THEN语句1ELSE语句2ENDIFIF条件THEN语句ENDIF满足条件?语句满足条件?语句1语句2是否小结WHILE条件循环体WENDDO循环体LOOPUNTIL条件两种循环语句:循环体满足条件?是否(1)While(当型)循环(2)Until(直到型)循环循环体满足条件?是否思考3:根据图1.1-2,把程序框图中的内容转化为相应的程序语句。(课本32页练习1)INPUT“n=”;ni=2DOr=nMODii=i+1LOOPUNTILin-1ORr=0IFr=0THENPRINT“n不是质数.ELSEPRINTn是质数.ENDIFEND练习1.根据用二分法求方程x2-2=0的近似根的程序框图,写出相应的程序语句。开始x1=1,x2=2c=0.005输出x122xxx211()2fxx2()2fxxf(x1)f(x)0?否是x1=xx2=x|x1-x2|c?是否结束f(x)=0?否是练习开始x1=1,x2=2c=0.005输出x122xxx211()2fxx2()2fxxf(x1)f(x)0?否是x1=xx2=x|x1-x2|c?是否结束f(x)=0?否是x1=1x2=2c=0.005DOX=(X1+X2)/2f(x1)=x1^2-2f(x)=x^2-2IFf(x)=0THENPRINT方程根为:;xELSEIFf(x1)*f(x)0THENx2=xELSEx1=xENDIFENDIFLOOPUNTILABS(x1-x2)cPRINT方程的近似根为:;xEND练习2.编写程序,计算函数f(x)=x2-3x+5当x=1,2,3,…,20时的函数值。x=1WHILEx=20y=x^2-3*x+5PRINTx=;xPRINTy=;yx=x+1WENDEND例2:修改21页例1的程序,连续输入自变量的11个取值,输出相应的函数值i=1DOINPUT“x=”;xy=x^3+3*x^2-24*x+30PRINTyi=i+1LOOPUNTILi11END程序练习课本32页练习23.编写一个程序,输入正整数n,计算它的阶乘n!(n!=n*(n-1)*…*3*2*1)t=1i=1INPUT请输入n的值:;nDOLOOPUNTILPRINT这个数的阶乘为:;tENDt=t*ii=i+1in开始i=1S=0i≤100?是S=S+ii=i+1否输出S结束当型循环结构变式训练(1):编写程序求:n!=1×2×3×4×5×……×n的值.如何写程序?输入nWHILE语句i=1S=0WHLIEi=100S=S+ii=i+1WENDPRINTSENDINPUT“n=”;nS=1S=S*ii≤n?S=1nS=S*i变式训练(2):编写程序求:1×3×5×7×……×101的值.如何写程序?UNITL语句i=1S=0DOS=S+ii=i+1LOOPUNTILi100PRINTSENDS=1101S=S*ii=i+2是开始结束i=1S=0i=i+1S=S+i输出Si100?否直到型S=1S=S*ii=i+2i101?巩固升华1、设计一个算法框图:逐个输出12,22,32,……,n2,并写出相应的QBASIC程序。INPUTni=0WHILEini=i+1t=i^2PRINTtWENDENDINPUTni=0DOi=i+1t=i^2PRINTtLOOPUNTILi=nEND结束i=0开始i=i+1;t=i^2i=n?否是PRINTtINPUTn2、设计一个算法框图:求满足1+2+3+…+n>10000的最小正整数n,并写出相应的QBASIC程序。结束输出ii=0,Sum=0开始i=i+1Sum=Sum+iSum10000?否是i=0sum=0DOi=i+1sum=sum+iLOOPUNTILsum10000PRINTiEND3.P33页A组T3.程序INPUT“n=”;ni=1S=0WHILEi=nS=S+(i+1)/ii=i+1WENDPRINT“S=”;SEND4.P33页B组T2.程序n=1p=1000WHILEn=7p=p*(1+0.5)n=n+1WENDPRINTpEND5.P33页B组T4.程序INPUT“a=”;aINPUT“n=”;ns=0i=1WHILEi=nS=S+aa=a+10*ai=i+1WENDPRINTsEND作业3.给定这样一个数列:0,1,1,2,3,5,……,后一个数等于前两个数的和。用直到型循环语句编写程序,输出这列数的前50个数。1.用直到型循环语句写出求S=12+32+52+……+992的值的算法的程序2.1×2×3×4×5×……×n1000,求符合条件的最大自然数n,试写出程序。开始输入a,b,cba?ca?cb?输出a,b,c结束t=aa=bb=tt=aa=cc=tc=tb=ct=bYNYNNYINPUT“a,b,c=”;a,b,cIFbaTHENt=aa=bb=tENDIFIFcaTHENt=aa=cc=tENDIFIFcbTHENt=bb=cc=tENDIFPRINTa,b,cEND程序:例4(课本例题6)把下面的程序框图转化为程序。开始①①△≥0?△=0?结束输出p原方程无实数根acb42abp2aq2qpx1qpx221xx,输出NYYN输入a,b,c开始输入a,b,c△≥0?△=0?结束输出p原方程无实数根acb42abp2aq2qpx1qpx221xx,输出NYYNINPUTa,b,cd=b*b-4*a*cIFd=0THENp=-b/(2*a)q=SQR(d)/(2*a)IFd=0THENPRINT“x1=x2=”;pELSEPRINT“x1,x2=”;p-q,p+qENDIFELSEPRINT“Norealroot!”ENDIFEND练习1.某百货公司为了促销,采用购物打折的优惠办法:每位顾客一次购物①在1000元以上者,按九五折优惠;②在2000元以上者,按九折优惠;③在3000元以上者,按八五折优惠;④在5000元以上者,按八折优惠。编写程序求优惠价。2、某快递公司规定甲、乙两地之间物品的托运费用根据下面的方法计算:物品重量在50千克以内,托运费为每千克0.53元,超过的话,超过部分每千克0.85元,试画出计算费用f的程序框图,并写出相应的QBASIC程序。程序框图:开始结束输入重量G输出运费MG=50M=0.53*GM=50*0.53+0.85*(G-50)否是对应的QBASIC程序INPUT“输入重量G=”;GIFG=50THENM=0.53*GELSEM=50*0.53+0.85*(G-50)ENDIFPRINT“运费为:”;MEND课本29页练习43.闰年是指能被4整除但不能被100整除,或者能被400整除的年份。编写一个程序,判断输入的年份是否为闰年。