您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 1.2.基本算法语句
1.11.2基本算法语句第一章:算法计算机完成任何一项任务都需要算法,但是,我们用自然语言或程序框图描述的算法,计算机是无法“看懂”的。因此还需要将算法用计算机能够理解的程序设计语言翻译成计算机程序。程序设计语言有很多种。如BASIC,Foxbase,C语言,C++,VB等。本书使用的语句形式和语法规则与BASIC语言类似。任何高级程序设计语言都包含输入语句、输出语句、赋值语句、条件语句和循环语句五种基本语句.它们与算法的三种基本结构是相互对应的.顺序结构输入语句、输出语句、赋值语句条件结构条件语句循环结构循环语句34S1:输入x的值;S2:计算y=x3+3x2-24x+30的值;S3:输出y的值.程序框图例1用描点法作函数y=x3+3x2-24x+30的图象时,需要求出自变量和函数的一组对应值.编写程序,分别计算当x=-5,-4,-3,-2,-1,0,1,2,3,4,5时的函数值.算法分析输出y结束开始输入x3232430yxxx语句INPUT“x=”;xy=x^3+3*x^2-24*x+30PRINTyEND17数学符号程序符号×*÷/a^b≤=≥=≠|x|ABS(x)SQR(x)且\或AND\ORbax数学符号与程序符号的对比温馨提示:a=xMODn表示a是x除以n的余数例1用描点法作函数y=x3+3x2-24x+30的图象时,需要求出自变量和函数的一组对应值.编写程序,分别计算当x=-5,-4,-3,-2,-1,0,1,2,3,4,5时的函数值.INPUT“x=”;xy=x^3+3*x^2-24*x+30PRINTyEND程序:-----------------输入语句---------赋值语句-------------------------打印语句-------------------------表示结束输出语句6·输入语句1.一般格式:INPUT“提示内容”;变量输入a,b,cINPUTa,b,c输入xINPUT“x=”;xINPUT“提示内容”;变量INPUT变量INPUT“提示内容”;变量1,变量2,变量3,···INPUT变量1,变量2,变量3,···2.常用格式:输入语句的作用是实现算法的输入信息功能;4.特别提示:①“提示内容”和它后面的;可以省略.②“INPUT”后面要有空格;提示内容与变量之间用“;”隔开.③输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式.④提示内容与变量之间用分号“;”隔开,若输入多个变量,变量与变量之间用逗号“,”隔开INPUT“提示内容”;变量⑤“提示内容”提示用户输入什么样的信息,必须用双引号“”括起来,双引号中的内容会原封不动地在屏幕上显示出来。变量是指程序在运行时其值是可以变化的量;练一练:请你用输入语句表达课本P7和P9页程序框图中输入框中的内容.P7页:INPUT“n=”;nP9页:INPUTa,b,c10·输出语句1.一般格式:PRINT“提示内容”;表达式N不是质数PRINT“Nisnotaprimenumber.”PRINT“提示内容”;表达式PRINT表达式PRINT“提示内容”;表达式1,表达式2,表达式3,···PRINT表达式1,表达式2,表达式3,···PRINT“提示内容”2.常用格式:说明:①输出常量,变量的值和字符串等系统信息。②输出数值计算的结果。(1)输出语句的用途:三、赋值语句赋值语句的一般格式:变量=表达式如:a=2b=3y=x^2+1等等都是赋值语句赋值语句的作用是:先计算出赋值号右边表达式的值,然后把这个值赋给左边的变量,使该变量的值等于表达式的值。(1)赋值语句中的“=”称作赋值号,与数学中的等号的意义是不同的.赋值号的左右两边不能互换.(2)赋值语句左边只能是变量名字而不能是表达式,如:2=x是错误的;右边表达式可以是一个数值、常量或算式。(3)对于一个变量可以多次赋值。(4)一个语句只能给一个变量赋值;不能出现多个“=”a=b=3a=3;b=3这些语句都是错误的,计算机无法执行。【例题解析】〖例2〗:编写程序,计算一个学生数学、语文、英语三门课的平均成绩。分析:先写出算法,画出程序框图,再进行编程。结束开始输入a,b,c输出y3abcy程序框图INPUT“Maths,Chinese,English”;a,b,cy=(a+b+c)/3PRINT“y=”;yEND程序:〖例3〗:给一个变量重复赋值。程序:A=10A=A+15PRINTAENDA的输出值是多少?分析:此程序给变量A赋了两次值.A的初值为10,第二次赋值后,初值被“覆盖”,A的值变为25,因此输出值是25.[变式引申]:在此程序的基础上,设计一个程序,要求最后A的输出值是30.A=10A=A+15PRINTAA=A+5PRINTAEND程序:〖例3〗:给一个变量重复赋值。程序:A=10A=A+15PRINTAEND〖例4〗交换两个变量A和B的值,并输出交换前后的值。分析:引入一个中间变量X,将A的值赋予X,又将B的值赋予A,再将X的值赋予B,从而达到交换A,B的值.(比如交换装满水的两个水桶里的水需要再找一个空桶)INPUTAINPUTBPRINTA,BX=AA=BB=XPRINTA,BEND程序:问题:能否用下列赋值语句交换A,B的值?A=BB=A不能!!!!!!〖练习1〗:编写一个程序,要求输入一个圆的半径,便能输出该圆的周长和面积.(π取3.14)INPUT“R=”;RC=2*3.14*RS=3.14*R^2PRINT“C=”;CPRINT“S=”;SEND满足条件?步骤A步骤B是否满足条件?步骤A是否算法中的条件结构是由条件语句来表达的,条件语句是处理条件分支逻辑结构的算法语句.条件语句的一般格式满足条件?语句是否只含一个“分支”的条件结构写成条件语句为IF条件THEN语句体ENDIF当计算机执行这种形式的条件语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体,否则执行ENDIF之后的语句.1.IF与ENDIF要配对使用.2.ENDIF是结束条件语句,END则是结束整个程序.满足条件?语句1语句2是否含两个“分支”的条件结构写成条件语句为IF条件THEN语句体1ELSE语句体2ENDIF当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句体1,否则执行ELSE后的语句体2.1、编写一个程序,求任意实数的绝对值。INPUT“x=”;xIFx0THENy=-xELSEy=xENDIFPRINT“︱x︱=”;yEND程序如下:程序框图:开始输入xy=-xy=x输出y结束x0?是否【例题解析】高等数学中经常用到符号函数,符号函数的定义为y=,0,1,0,0,0,1xxx试编写程序输入x的值,输出y的值.(嵌套结构)程序框图解:程序一程序如下:INPUTxIFx0THENy=1ELSEIFx=0THENy=0ELSEy=-1ENDIFENDIFPRINTyEND(嵌套结构)算法中的循环结构是由循环语句来实现的.循环结构有两种-----当型与直到型.满足条件?循环体是否当型循环结构(当条件满足时反复执行循环体)直到型循环结构(反复执行循环体直到条件满足)循环体是否满足条件?对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(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.1.2例3中的程序框图,编写计算机程序来计算1+2+…+100的值i=100?i=1开始输出sum结束否是sum=0i=i+1sum=sum+ii=1sum=0WHILEi=100sum=sum+ii=i+1WENDPRINTsumEND例2:根据1.1.2例3中的程序框图,编写计算机程序来计算1+2+…+100的值i=1sum=0DOsum=sum+ii=i+1LOOPUNTILi100PRINTsumEND开始i=1sum=0sum=sum+ii=i+1i100?否是输出sum结束WHILE语句开始结束i=1S=0i=i+1S=S+i输出Si≤100?是否当型循环结构i=1S=0WHLIEi=100S=S+ii=i+1WENDPRINTSENDUNTIL语句开始结束i=1S=0i=i+1S=S+i输出Si100?否是直到型i=1S=0DOS=S+ii=i+1LOOPUNTILi100PRINTSEND开始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?〖练习2〗P24页T1.程序:INPUT“F=”;FC=(F-32)5/9PRINT“C=”;CEND*〖练习3〗P24页T2.INPUT“a,b(a,b0)=”;a,bX=a+bY=a-bZ=abQ=a/bPRINTX,Y,Z,QEND*程序:注:BASIC语言中的标准函数SQR(x),表示数x的算术平方根,ABS(x)表示x的绝对值等.程序:p=(2+3+4)/2t=p(p-2)(p-3)(p-4)S=SQR(t)PRINT“S=”;SEND***〖练习4〗P24页T3.:(),SQRxx即ABS(x)=|x|.INPUT“a,b,c=”;a,b,cX=10.4*aY=15.6*bZ=25.2*csum=X+Y+ZPRINT“sum=”;sumEND程序:〖作业1〗P24页T4.INPUT“a,b,h=”;a,b,hp=a+bs=p*h/2PRINT“s=”;sEND程序:〖作业2〗P33
本文标题:1.2.基本算法语句
链接地址:https://www.777doc.com/doc-3270594 .html