版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学必求其心得,业必贵于专精学必求其心得,业必贵于专精学必求其心得,业必贵于专精互动课堂疏导引导1。赋值语句顾名思义赋值语句就是将表达式所代表的值赋给变量,在伪代码中通常用“←”表示。例如,x←y就表示将表达式y的值赋给变量x,其中x是一个变量,而y则是与x同类型的变量、表达式或数值。例如,x←5是指将5赋给变量x,这里5是一个常数;x←y+5则表示将表达式y+5的值赋给变量x.当“←”的右边为表达式时,赋值语句包含两项功能:(1)计算表达式的值;(2)将表达式的值赋给左边的变量.疑难疏引(1)在赋值语句中箭头指向的是变量.(2)一个语句只能给一个变量赋值.(3)将一个变量的值赋给另一个变量,前一个变量的值保持不变;可先后给一个变量赋多个不同的值,但变量的取值总是最近被赋予的值。2.输入、输出语句输入、输出语句分别用来实现算法的输入信息、输出结果的功能。疑难疏引(1)输入语句的格式与功能格式:Read变量它表示将输入的数据送给变量,在这里变量的个数可以是多个,它是与所输入的数据的个数对应的,变量之间用逗号隔开.例如:Reada,b,c表示依次输入的数据分别送给变量a,b,c。(2)输出语句的格式与功能格式:Print表达式它表示输出表达式的值,在输出语句中,输出的结果也可以是多个,它们之间也用逗号隔开.例如,Printx表示输出运算结果x;Printx,y,z则表示输出运算结果x,y,z。为了更形象地说明赋值语句,输入、输出语句的格式和功能,看下面的一个具体的例子.Readx,y,zm←(x+y+z)/3n←.Printm,n在上面的算法的伪代码中,第一个语句为输入语句,它表示将输入的数据分别送给了x,y,z,最后一个语句为输出语句,它表示输出了运算结果m,n;中间两个语句为赋值语句,它们分别表示将表达式和的值赋给变量m,n.输入、输出语句和赋值语句一般对应用于算法的顺序结构,算法从上而下按语句的顺序执行这些语句.如右图所示.3.条件语句算法中的选择结构由语句来表达,条件语句的一般格式为IfAThenBElseCEndIf在语句中A表示判断条件,B表示满足条件时执行的操作内容,C则表示不满足条件时执行的内容,EndIf则表示条件语句的结束.而在表示算法的具体过程中,其格式和对应的框图为:对应框图(如下图所示):在这里,语句1称为“Then"的分支,语句2称为“Else”的分支,为了醒目和便于阅读,这些分支一般要缩进书写。例如,下面为一个算法的流程图(如下图所示):由流程图可知,在此算法的表示过程中用到了选择结构,判断条件为“x≤3”.若x≤3成立,则执行语句“y←2x”,否则执行语句“y←x+1"。因此,上面流程图所表示的算法可用条件语句表示为:Readx在此算法中,虚框内为条件语句,语句“y←2x"为“Then”的分支,语句“y←x+1"为“Else”的分支,这两个分支均缩进书写。某些情况下,条件语句中还可以使用IfThen语句,即它对应的框图为(如下图所示).除此之外,条件语句是可以嵌套的,即在条件语句的一个分支中还可以出现条件语句,这种嵌套结构一般用于执行过程中选择结构中还存在选择结构的算法中,其格式为:例如,输入自变量的值,求函数f(x)=函数值的一个算法的伪代码如下:ReadxPrinty案例1某百货公司为了促销,采用购物打折的优惠办法:每位顾客一次购物(1)在1000元以上者,按九五折优惠。(2)在2000元以上者,按九折优惠。(3)在3000元以上者,按八五折优惠.(4)在5000元以上者,按八折优惠.编写程序求优惠价.【探究】本题实质上是一个分段函数的求值问题,由于求值时需要根据自变量的范围来选择不同的解析式,则用算法语句表示此算法时应采用条件语句.设购物款数为x元,优惠价为y元。【解】设购物款数为x元,优惠价为y元,则优惠付款公式为y=用条件语句表示为:ReadxIfx<1000Theny=xElseIfx<2000Theny=0.95xElseIfx<3000Theny=0.9xElseIfx<5000Theny=0。85xElsey=0.8xEndIfPrinty规律总结在准确理解算法的基础上,学会条件语句的使用。循环语句包括If…Then,If…Then…Else,并且If…Then…Else可以嵌套,解题时要根据需要灵活运用。当条件语句的一个分支中还存在条件判断时,一般采用条件语句的嵌套。4。循环语句当算法中存在循环结构时,我们可以用循环语句来实现算法过程.循环语句有两种:一种是“For"语句;一种是“While”语句。疑难疏引(1)“For”语句当循环次数已经确定,则循环结构可用“For”语句来表示,“For”语句的一般格式为:ForIFrom“初始值"To“终值”Step“步长"…EndFor例如,计算1+2+3+…+100值的算法,可表示为S←0ForIFrom1To100Step1S←S+IEndForPrintS上面算法中,“For”和“EndFor”之间缩进部分称为循环体。因此,用循环语句表示算法时,其格式为:ForIFrom“初始值”To“终值”Step“步长”循环体EndFor而且应该注意,循环体要缩进书写.在循环语句中,当步长为1时可以省略。如计算1+2+3+…00值的算法,也可表示为S←0ForIFrom1To100S←S+IEndForPrintS(2)While语句当循环次数不能确定时,可用While语句来实现循环。While语句的一般格式为:WhileA…EndWhile具体应用时格式为:在While语句中A表示判断执行循环体的条件,书写时循环体也要缩进书写。例如,寻求满足1+2+3+…+_________>2008的最小正整数的算法可用While语句表示为S←1I←2WhileS≤2008S←S+II←I+1EndWhilePrintI算法在执行循环体的过程中,先检验条件S≤2008是否成立,若条件成立则执行循环体,直到条件不成立时才结束循环。While语句的特点是“前测试",即先判断再执行,当条件成立时,则执行循环体,然后再检验条件是否成立,若条件仍然成立则继续执行循环体,这个过程反复进行,直到某一次条件不成立为止,这时算法不再执行循环体,而直接转到EndWhile语句后按着执行的先后执行语句。若初始条件不成立,则一次也不执行循环体的内容.任何一种需要重复处理的问题都可以用这种“前测试”循环来实现.案例2已知S=5+10+15+…+1500,请用流程图描述求S的算法并用伪代码表示.【探究】由题意知应采用循环结构画出流程图,而应采用“For"语句来描述此算法,其中初始值为10,步长为5。【解析】流程图如下图所示从流程图可以看出这是一个循环结构,我们可以运用循环语句来实现.S←5ForIFrom10To1500Step5S←S+IEndForPrintS规律总结在准确理解算法的基础上,学会循环语句的使用.循环语句包括For循环、While循环.解题时要根据需要灵活运用.当已知循环的次数时一般采用For循环;当循环次数不知时可采用While循环.While语句的特点是“前测试”,任何一种需要重复处理的问题都可以用这种前测试循环来实现。案例3怎样用伪代码和流程图设计算法来判断N是否为素数?【探究】由于素数的特点是它的因数只有1和它的本身,则要判断某个数N是否为素数的方法:将N作为被除数,用2到N各个整数轮流作除数,如果都不能被整除,则N为素数.为了使程序能符合结构化程序设计,这里设计了一个开关W,使初值为0。若N能被某一个整数整除,则使W值为1,否则W值不变。最后根据W的值来确定N是否为素数,若W值为0,则N为素数,否则N为非素数。【解】用伪代码设计算法如下:ReadNW←0I←2WhileI≤且W=0IfR=0ThenW←1ElseI←I+1EndIfEndWhileIfW=0ThenPrintN,“是素数”ElsePrintN,“不是素数”EndIfEnd(算法结束)流程图(如下图所示):规律总结由于我们无法事先确定循环次数,故采用While循环语句.活学巧用1。写出下列用伪代码描述的算法执行后的结果。(1)算法开始a←2;a←4;a←a+a;输出a的值;算法结束执行结果:_________________________解析:本题考查了赋值语句的功能,第一个语句中将2赋给了变量a,此时a的值为2。第二个语句中将4赋给了变量a,此时a值由原来的2变为了4.第三个语句中将a+a的值赋给了变量a,此时a的值为4+4=8。答案:82。已知A(x1,y1),B(x2,y2)是平面上的两点。试设计一个算法,输入A、B两点的坐标,输出其中点的坐标.现已给出伪代码的一部分,试在横线上填上适当的语句,把它补充完整.Readx1,y1,x2,y2①②Printx,y解析:利用中点坐标公式知x=,y=。答案:①x←②y←3.下列算法中最后输出的结果是多少?A←2A←A*5A←A+8PrintA解析:本题考查赋值语句、输出语句在算法中的应用。由题意知,最后输出的结果是2×5+8=18.答案:184.指出下面用伪代码描述的算法的功能。ReadR,aS1←a*aS←3.14*R*R—S1PrintS解析:用来求一个半径为R的圆中除去圆内边长为a的正方形后图示阴影部分的面积.只要输入R,a的值,就可输出阴影部分的面积S。5.以下关于条件语句的说法正确的是()A。条件语句的执行是按程序进行的先后顺序执行的B。条件语句不能相嵌套,即条件语句中不能再有条件语句C。条件语句实现了程序框中的条件分支结构D.条件语句一定要完整,即If、Else、EndIf每一部分均不可少解析:A项明显错,B项中条件语句可以嵌套;D项中条件语句有2种格式,其中If—EndIf中就没有Else;C项正确。答案:C6。用条件语句表示的算法的功能是判断任意输入的数x是否是正数,若是,输出它的平方值;若不是,输出它的相反数。ReadxPrinty则填入的条件应该是()A.x>0B.x<0C.x≥0解析:当x≤0时,y=—x;当x>0时,y=x2.答案:D7.下列用条件语句描述的算法ReadxPrintp若输入x=18,则p=_______________.解析:x≤10时,p=0。35x;当x>10时,p=10×0。35+0.7(x—10)现x=18>10,∴p=10×0.35+0。7×(18—10)=9。1。答案:9.18。使得任意输入的3个整数,按从大到小的顺序输出,其流程图如下图所示;试写出上述算法的伪代码。解析:算法的伪代码如下:Reada,b,cIfb>aThent←a,a←b,b←tEndIfIfc>aThent←a,a←c,c←tEndIfIfc>bThent←b,b←c,c←tEndIfPrinta,b,c在这个算法中,不存在Else语句。9。某电信部门规定:拨打市内电话时,如果通话时间不超过3min,则收取通话费0.2元;如果通话时间超过3min,则超过部分以0。1元/min收取通话费(t以整分钟计,不足1min的按1min计)。问:如何设计一个计算话费的算法?写出伪代码,并画出流程图。分析:由题意知,可用分段函数将话费表示为通话时间的函数,先把这个函数写出,再确定选择怎样的结构描述算法。解:设c表示通话费用(单元:元),t表示通话时间(单位:min),则有c=解决这一问题的算法步骤如下:第一步:输入通话时间t;第二步:若t≤3,则c=0。2,否则c=0.2+0。1(t-3);第三步:输出费用c.用条件语句表示为ReadtPrintc流程图如下图所示:10。关于ForxFromaTocStepb,下列说法正确的是()①当x=c时程序结束②当x=c时,还要继续执行一次③当b>0时,x≥c时程序结束④当b<0时,x<c时程序结束A.1个B。2个C。3个D。4个解析:当x的值为终值时,还要执行一次,才能跳出循环体,从而①③不对,而②④正确。答案:B11。依次将十个数输入,要求将其中最大的数打印出来.怎样用流程图和伪代码来表示问题的算法?分析:解决这个问题的思路很简单,先选2个数进行比较,去掉小的,留下大的;再取第3个数与留下的数进行比较去掉小的留下大的;继续进行,直到每个数都被比较,最后留下的数就是最大数。但用这种思想写出的算法比较复杂.由于在本算法中某些步骤是重复进行,则可用循环语句来描述此算法。用伪代码设计算法如下:ReadXmax←XForIFrom2To10ReadXIfX>maxThenmax←XEndIfEndForPrintmax流程图(如下图所示):12.写出下面用伪代码描述的算法执行后的结果.n←10i←2sum←0While(i≤n)sum←sum+ii←i+2EndWhilePrintsum执行结果:____________________解析:本题考查了赋值语句、循环语句在算法中的应用.在本算法中前三个语句为赋值语句,它们分别表示将10、2、0赋给变量n、i、sum。第5、6个语句构成了一个循环体,当
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论