第1章算法初步1.3基本算法语句学习目标核心素养1.经历将具体问题的流程图转化为伪代码的过程.(重点)2.理解用伪代码表示的算法语句——赋值语句、输入输出语句、条件语句、循环语句,进一步体会算法的基本思想.(重点、难点、易混点)3.通过本节的学习,使学生理解一个基本的运算过程应是:在运算中构造、设计、选择一个合理的算法,以提高效果.4.通过本节的学习,进一步提高逻辑思维能力.1.从问题中抽象出算法,培养学生的数学抽象素养.2.将流程图转化为伪代码,进一步提高学生的逻辑推理素养.自主预习探新知1.伪代码伪代码是介于________和___________之间的文字和符号.2.赋值语句在伪代码中,赋值语句用符号“←”表示,“x←y”表示______________,其中x是________,y是一个与x同类型的_____________.自然语言计算机语言将y的值赋给x一个变量变量或表达式思考1:赋值语句两边的量可以互换吗?[提示]赋值符号“←”左右两边不能对换,如A←B和B←A的含义及运行结果是不同的.A←B表示用B的值替换A原来的值,B←A表示用A的值替换B原来的值.思考2:赋值语句可以给代数式赋值吗?[提示]赋值语句不能给代数式赋值,如“a2b-ab2←0”是错误的,赋值语句只能给变量赋值.如果赋值符号左边的变量原来没有值,则执行赋值语句后获得一个值;如果已有值,则执行赋值语句后赋值符号右边的值将代替该变量原来的值,即将原来的值“冲掉”.思考3:赋值语句能进行代数式演算吗?如化简、因式分解等.[提示]不能用赋值语句进行代数式的演算(如化简、因式分解等).如y←x2-1←(x-1)(x+1)是不能实现的.在一个赋值语句中,只能给一个变量赋值,不能出现两个或多个“←”.但一个变量可以多次赋值.3.输入、输出语句输入语句“Reada,b”表示输入的数据依次_____a,b,输出语句“_______”表示输出运算结果x.4.条件语句(1)条件语句表达算法的_____结构.送给Printx选择(2)条件语句的一般形式为:IfAThenBElseCEndIf其中___表示判断的条件,___表示满足条件时执行的操作内容,___表示不满足条件时执行的操作内容,_______表示条件语句结束.(3)数学中的分类讨论、分段函数在算法中一般用______语句.AB条件CEndIf5.循环语句(1)循环语句的定义循环语句用来实现算法中的___________.(2)当型循环语句它表示当所给条件中成立时,执行循环体部分,然后再判断条件p是否成立.如果p仍成立,那么再次执行循环体,如此反复,直到某一次条件p不成立时退出循环,其一般格式为:Whilep循环体Endwhile,其特点是_________________.循环结构先判断,后执行(3)直到型循环语句它表示先执行循环体部分,然后再判断所给条件p是否成立,如果p不成立,那么再次执行循环体部分,如此反复,直到所给条件p成立时退出循环,其一般格式为Do循环体UntilpEndDo,其特点是______________.先执行,后判断(4)“For”语句当循环的次数已经确定时用_________,其一般形式为ForIfrom“初值”To“终值”step“步长”循环体EndFor.“For”语句思考4:三种循环语句的区别与联系是什么?[提示]当型语句直到型语句For语句执行步骤当所给条件成立时,执行循环体部分,然后再判断条件是否成立.如果仍然成立,那么再次执行循环体,如此反复,直到某一次条件不成立时退出循环先执行循环体部分,然后再判断所给条件是否成立.如果不成立,那么再次执行循环体部分.如此反复,直到所给条件成立时退出循环同当型语句适用范围循环次数不能确定循环次数不能确定循环次数已经确定1.赋值语句“x←x+1”的正确解释为________.①x的值与x+1的值可能相等;②将原来x的值加上1后,得到的值替换原来x的值;③这是一个错误的语句;④此表达式经过移项后,可与x←x-1功能相同.②[赋值符号与数学中的等号的意义是不完全相同的.x←x+1在数学中不成立,但在赋值语句中将x的原值加1,再赋给x.②正确.①③④不正确.]25[将A的原值10加15后再赋给A,10+15=25.]2.下面这个伪代码的输出结果是________.A←10A←A+15PrintA3.2[因为x=-3.20,所以执行“Then”引导的语句,故输出-(-3.2)=3.2.]3.下列语句,当输入x←-3.2时,输出的结果为________.ReadxIfx0Thenx←-xPrintx0[当S←5+4+3+2=14时,n←2-1=1,此时S15继续执行循环体,则S←5+4+3+2+1=15,n←1-1=0,此时S=15,循环结束,输出0.]4.下面伪代码输出的结果是________.n←S←WhileS15S←S+nn←n-EndPrintn合作探究提素养赋值语句【例1】(1)运行如图所示的伪代码,输出的结果是________.a←1b←2a←a+bPrinta(2)阅读下列两个伪代码,回答问题:①x←3y←4x←y②x←3y←4y←x上述两个伪代码最后输出的x和y值分别为________.(1)3(2)4,43,3[(1)a←1,b←2,把1与2的和赋给a,即a←3,输出的结果为3.(2)伪代码①中的x←y是将y的值4赋给x,赋值后x的值变为4,y为4;②中y←x是将x的值3赋给y,赋值后y的值为3,x为3.]赋值号与数学中的等号的意义是不完全相同的,赋值号左边的变量如果原来没有值,则执行赋值语句后,获得一个值,如果已有值,则执行该语句,以赋值号右边表达式的值代替该变量的原值,即将原值“冲掉”.如:N←N+1,在数学中是不成立的,但在赋值语句中,意思是将N的原值加1再赋给N.1.设A←10,B←20,则可以实现A,B的值互换的伪代码是________.①A←10B←20B←AA←B②A←10B←20C←AB←C③A←10B←20C←AA←BB←C④A←10B←20C←AD←BB←CA←B③[①中伪代码执行后A=B=10;②中伪代码执行后A=B=10;③中伪代码执行后A=20,B=10;④中伪代码执行后A=B=10.]2.执行下面的伪代码的结果是X=________,Y=________,Z=________.X←Y←Z←X←YY←XZ←YPrintX,Y,Z222[X,Y,Z的初值分别为1,2,3,执行语句X←Y后,X=2,执行语句Y←X后,Y=2,执行语句Z←Y后,Z=2,所以X,Y,Z的值都是2.]输入、输出语句【例2】下列给出的输入、输出语句正确的是________.①输入语句Reada;b;c;②输入语句Readx=3;③输出语句PrintA=4;④输出语句Print20,32.○4[①Read语句可以给多个变量赋值,变量之间用“,”隔开;②Read语句中只能是变量,而不能是表达式;③Print语句中不用赋值号“=”;④Print语句可以输出常量、表达式的值.]1.输入语句要求输入的值只能是具体的常数,不能是变量或表达式(输入语句无计算功能),若输入多个数,各数之间应用逗号“,”隔开.2.输出语句可以输出常量,变量或表达式的值(输出语句有计算功能)或字符,伪代码中引号内的部分将原始呈现.5[若输入2,1,即a←2,b←1.所以22+11=4+1=5.输出的结果为a2+1b=5.]3.写出下列伪代码的结果.Reada,bPrinta2+1/b若输入2,1,则输出的结果为________.1.5x21+x22[由于算法的功能是求所输入的两个正数的平方和,所以S=x21+x22,又由最后输出的结果是3.46,所以3.46=1.12+x22,所以x22=2.25.又x2是正数,所以x2=1.5.]4.下面算法的功能是求所输入的两个正数的平方和,已知最后输出的结果为3.46,试据此将算法补充完整.Readx1,x2x1←x2←S←PrintSb条件语句【例3】已知函数f(x)=x2-1,x≥0,3x2-8,x0.编写一个伪代码,对每输入的一个x值,都得到相应的函数值,并画出其对应的流程图.[解]解决分段函数求值的问题,编写伪代码要用条件语句,画流程图要用选择结构,可以先用自然语言,设计解决问题的算法,再转化为流程图和伪代码.用变量x,y分别表示自变量和函数值.步骤如下:S1输入x值.S2判断x的范围,若x≥0,则用函数y←x2-1求函数值,否则用y←3x2-8求函数值.S3输出y的值.流程图如图所示:伪代码如下图所示:ReadxIfx≥0Theny←x2-1Elsey←3x2-8EndIfPrinty1.书写条件语句时,为了清晰和方便阅读,通常将Then部分和Else部分缩进书写.2.在条件语句中,Then部分和Else部分是可选的,但语句的出口“EndIf”不能省.提醒:(1)条件语句的执行顺序与流程图中的选择结构的执行顺序一致,首先对条件进行判断,满足条件则执行该条件下的语句,不满足条件则执行下一步.(2)If代表条件语句的开始,EndIf代表条件语句的结束,这两点是判断一个语句是否为条件语句的关键.log32[本伪代码的算法功能是输出a,b中较小的数.因为a=log231,b=log321,所以ba,所以c=b=log32.]5.根据如下所示的伪代码,当输入的a,b分别为log23,log32时,最后输出的c的值为________.Reada,bIfabThenc←ac←bPrintc6.根据下面的算法语句,画出其对应的流程图.伪代码:ReadxIfx0Theny←1y←EndPrinty[解]伪代码中有条件语句,相应流程图用选择结构,解决的是一个两段函数求值的问题,用一个判断框就可以了.流程图如图所示:循环语句[探究问题]1.循环结构流程图有几种形式?它们有何区别?可以相互转化吗?[提示]循环结构流程图有两种形式;当型循环和直到型循环,它们可以相互转化,先判断后执行的是当型循环,先执行后判断的是直到型循环.2.循环语句有几种形式?它们可以相互转化吗?[提示]循环语句有三种形式,如下表所示,当型循环语句和直到型循环语句可以相互转化,一般地,“For”语句可以改写成“While”语句,但“While”语句不一定能够改写成“For”语句.形式当型循环语句直到型循环语句“For”语句格式Whilep循环体EndWhileDo循环体UntilpEndDoForIFrom“初值”To“终值”Step“步长”循环体EndFor【例4】下列是求1+3+5+…+99的伪代码,读伪代码完成问题:i←p←Whilei≤99p←p+ii←i+Printp(1)伪代码中的循环语句是________型的循环语句;(2)将伪代码用另一类型的循环语句来实现.思路点拨:用“While”语句描述的循环语句是当型循环语句,用“Do”语句描述的循环语句是直到型循环语句,从上面的伪代码可以看出,这是一个用当型循环语句写的伪代码,此伪代码输出的是1+3+5+…+99的值.[解](1)当(2)改成直到型循环语句如下:i←1p←0Dop←p+ii←i+2Untili99EndDoPrintp1.本例中的伪代码能用“For”语句实现吗?思路点拨:本例中伪代码输出的是1+3+5+…+99的值,循环次数用步长确定,故可以用“For”语句实现.[解]本例中的伪代码能用“For”语句实现,用“For”语句表示如下:S←1ForIFrom3To99Step2S←S+IPrintS2.设计算法,求1-3+5-7+…-99+101的值,用伪代码表示.[解]循环语句有While语句、Until语句和For语句,采用不同语句,其算法描述不同.用“For”语句表示:S←a←ForIa←a×-1S←S+a×IPrintS用“While”语句表示:S←1I←3a←1WhileI≤101a←a×-1S←S+a×II←I+PrintS1.累加求和