算法初步第二章§2算法框图的基本结构及设计2.2变量与赋值自主预习学习目标目标解读1.理解并掌握输入、输出及赋值语句,能输入、输出数据并对变量进行赋值.2.培养学生的数学应用意识.重点:对变量、赋值的理解与应用.难点:对变量的理解、赋值的应用.1.变量(1)定义:在研究问题的过程中,可以取不同的量称为变量.在设计算法的过程中,引入变量后,会使算法的表述变得非常简单、清楚.(2)表示法:算法中的变量常用字母或英文字母加数字表示.例如A,B,a,b,c等.不同的变量要用不同的字母表示.知识梳理数值英文2.赋值(1)在算法中,把变量A的值赋予变量B,这个过程称为赋值,记作,其中“=”称为.B=A赋值号(2)对赋值语句的理解①如果把变量看成能且仅能放一个数值的盒子,那么赋值就是往这个盒子中放数值,一次只能放一个数值,当放入新数值后,原数值被“挤”出去,该变量的值被新数值替换.②在算法中,B=A与A=B不同,B=A表示将变量A的值赋予变量B,而A=B正好相反,表示将变量B的值赋予变量A.③赋值符号“=”的右边是变量或表达式,而左边只能是一个变量.④赋值符号“=”不同于数学算式中的等号,例如赋值语句A=A+1表示变量A的值增加1后还用变量A表示,但是在数学算式中A=A+1无意义.问题探究1:如何给变量赋值?提示:所谓赋值就是将一个数据赋予一个变量,在计算机程序中赋值操作是由赋值语句来完成的.赋值语句的格式为:变量名=表达式.问题探究2:使用赋值符号“=”应注意哪些问题?提示:使用赋值符号“=”应注意以下问题:(1)赋值符号左边只能是变量名字,而不是表达式.只能写成b=2,b=a+1,但不能写成:2=b,b+1=2.(2)在一个赋值语句中,只能给一个变量赋值,不能出现两个或两个以上的“=”号.(3)赋值符号不同于“等号”,赋值符号左边的变量如果原来没有值,在执行完赋值语句后,该变量获得一个值,如果原来已有值,则执行赋值语句后,以赋值符号右边表达式的值替代原来的值.(4)赋值号左右内容不能对调,如:x=y与y=x两者的意义是不一样的.要点导学1.赋值中的“=”,叫做赋值号.在计算机中,赋值的作用是:将一个表达式的值赋给一个变量,它实质上是先将赋值号“=”右边表达式的值计算出来,然后将该值赋给左边的变量,使该变量的值等于表达式的值.要点一对变量与赋值语句的理解2.赋值号左边只能是变量名字,而不是表达式,并且赋值号左右不能换,即只能写为b=a1,b=a2,b=a1+1等形式,而不能写成2=b,b+1=2,a+b=2等形式.3.“表达式”可以是一个数据、常量或算式,如果“表达式”是一个算式,赋值的作用是先计算出“=”右边表达式的值,然后将该值赋给“=”左边的变量.4.不能利用赋值进行代数式(或符号)的演算(如因式分解、化简等),如y=x2-1=(x+1)·(x-1)是不对的.在赋值中的赋值号右边的表达式中的每一个“变量”都必须事先赋给确定的值,且只能给一个变量赋值,不能出现两个或两个以上的“=”.判断以下给出的赋值语句是否正确,为什么?(1)赋值语句3=B;(2)赋值语句x+y=0;(3)赋值语句A=B=-2;(4)赋值语句T=T*T.【思路启迪】(1)如何使用赋值符号?(2)使用赋值符号时应注意什么问题?【解】(1)不正确,赋值语句中“=”号左右不能互换;(2)不正确,不能给一个表达式赋值;(3)不正确,一个赋值语句只能给一个变量赋值;(4)正确,该句的功能是将当前T的值平方后再赋给变量T.运用赋值号应注意:赋值号左边只能是变量名字,而不是表达式;赋值号左右不能对换;不能利用赋值语句进行代数式或符号的演算;赋值号与数学中的等号的意义不同.阅读下列两个程序,回答问题:①x=3y=4x=y②x=3y=4y=x(1)上述两个程序最后输出的x,y值分别为①________,②________.(2)上述两个程序中的第三行有什么区别?解:从程序上看,所给两个程序均使用了赋值语句,但x=y与y=x是不同的,x=y是将y的值赋给x,执行后x的值变为y的值,而y的值不变.同理y=x是将x的值赋给y.故(1)两程序最后输出的x,y分别为:4,43,3.(2)程序①中的x=y是将y的值4赋给x,赋值后x的值变为4;②中y=x是将x的值3赋给y,赋值后y的值为3.变量对我们来说并不陌生.从我们接触到函数,我们就开始讲述变量,它是指可以取不同数值的量,它是一个可变化的量,它是函数里最基本的概念.在算法和程序设计中,它依然发挥重要和基本的作用,它们会使算法的表述变得非常的简洁、清楚.要点二变量与赋值的常见运算如上图是解决某个问题而绘制的算法框图.仔细分析各图框内的内容及图框之间的关系,回答下面的问题:(1)图框①中x=2的含义是什么?(2)图框②中y1=ax+b的含义是什么?(3)图框④中y2=ax+b的含义是什么?(4)该算法框图解决的是怎样的一个问题?(5)若最终输出的结果是y1=3,y2=-2.当x取5时输出的结果5a+b的值应该是多大?(6)在(5)的前提下输入的x值越大,输出的ax+b是不是越大?为什么?(7)在(5)的前提下当输入的x值为多大时,输出结果ax+b等于0?【思路启迪】该程序框图是什么结构的框图?【解】(1)图框①中x=2表示把2赋给变量x.(2)图框②中y1=ax+b的含义:该图框在执行①的前提下,即当x=2时计算ax+b的值,并把该值赋给y1.(3)图框④中y2=ax+b的含义:该图框在执行③的前提下,即当x=-3时计算ax+b的值,并把该值赋给y2.(4)该算法框图解决的是求函数f(x)=ax+b的函数值的问题.其中输入的是自变量x的值,输出的是x对应的函数值.(5)y1=3,即2a+b=3.①y2=-2,即-3a+b=-2.②由①②得a=1,b=1,∴f(x)=x+1.∴x取5时,5a+b=f(5)=5×1+1=6.(6)输入的x值越大,输出的函数值ax+b越大,因为f(x)=x+1是R上的增函数.(7)令f(x)=x+1=0,得x=-1,因而当输入的值为-1时,输出的函数值为0.变量和赋值的概念在算法中十分重要.可以把变量想象成一个盒子,赋值就相当于往盒子里放东西.这个盒子可以装不同的数值,但是一次只能装一个,当赋予它新值的时候,原来的值将被新值取代.当变量参与运算和操作时,它表示的是想象中盒子里装的值.有4个数a,b,c,d要求按由大到小的顺序输出.解:可有如下步骤:1.找出a和b中的大者放在a中,小者放在b中;2.找出c和d中的大者放在c中,小者放在d中;3.找出a和c中的大者放在a中,小者放在c中;4.找出b和c中的大者放在b中,小者放在c中;5.找出b和d中的大者放在b中,小者放在d中;6.找出c和d中的大者放在c中,小者放在d中.根据以上步骤,可有如下算法框图.我们利用计算机在处理实际问题时,常常希望它们帮我们处理一系列问题,这也是我们学习的目的,从特殊到一般再到特殊,那么,变量和赋值刚好可以帮我们解决这些问题.要点三变量与赋值的实际应用某国计划在未来20年内的GDP增长率为7.3%,若2010年的GDP为a元,那么2014年该国的GDP约为多少?画出算法流程图.【思路启迪】可以用什么样的赋值语句来表示?【解】赋值过程一般有以下几种形式:(1)a=1{赋予变量常数值}.b=2a+1{将含有其他变量的表达式的值赋予变量}.(2)i=2i=3i+1{将含有变量自身的表达式的值赋予变量,此时赋值号右边的变量的值是2}.(3)I=1s=0s=s+I{赋值表达式中既含有变量自身,又含有其他变量}孙明的父亲开店卖作业本,大作文本每本0.8元,大演草本也是每本0.8元,笔记本每本0.6元,方格本每本0.3元,请你帮助孙明的父亲设计一个收费算法流程图.解:易错点把赋值号“=”误认为数学中的等号阅读如图所示的算法框图,若输入的a,b,c分别为21,32,75,则输出的a,b,c分别是()易错盘点A.75,21,32B.21,32,75C.32,21,75D.75,32,21【错因分析】误把赋值号“=”理解为数学中的等号,不能进行赋值表述.【正确解答】由算法框图知,a赋给x,x赋给b,所以a的值赋给b,即输出b为21,同理c赋给a,即输出a为75.答案为A.在解决与赋值语句有关的题目时,一定要明确赋值语句的作用,尤其是涉及对变量的多次赋值时,应以后一次赋值为最后输出值.写出下列程序运行后的结果(1)a=1;b=2;c=a+b;b=a+c+b;输出a,b,c;运行结果为________.(2)A=3;B=2;C=5;A=A+B;B=B-A;C=CA*B;输出C;运行结果为________.(3)a=5;b=3;c=a+b2;输出c;运行结果为________.(4)a=1;b=2;c=a+b;b=a*c-b;输出a,b,c;运行结果为________.(5)输入a,b,c;a=b;b=c;c=a;输出a,b,c;若输入10,20,30,则输出结果为________.解析:赋值语句在给变量赋值时,先计算右边的式子,然后赋值给左边的变量;(2)中由A=A+B运行后知A=3+2=5,B=B-A右边的B=2,A=5(已不再是3),从而B=2-5=-3,所以CA×B=-3.(5)注意:在将a的值赋给c时,a的值是20,而不是10.答案:(1)1,6,3(2)-3(3)4(4)1,1,3(5)20,30,201.赋值语句中等号的意义与恒等式不同,它是把右边的值赋给左边的变量.2.对同一个变量多次赋值,要注意赋值前后的变化.学习小结3.变量和赋值是算法中十分重要的概念,掌握将常数赋予变量,将其他变量的表达式赋予变量,将含有自身变量的表达式赋予变量,理解这些赋值方式的意义,切实学会通过赋值的方式改变变量的值,学会给变量赋值是构造算法的关键,也是算法的基本要求.1.下列关于赋值语句的说法错误的是()A.赋值语句的作用是先计算出赋值号右边表达式的值B.赋值语句是把左边变量的值赋给赋值号右边的表达式C.赋值语句是把右边表达式的值赋给赋值号左边的变量D.在算法语句中,赋值语句是最基本的语句随堂训练解析:此题是关于赋值的,赋值的一般格式是:变量名=表达式,赋值语句的作用是把右边表达式的值赋给赋值号左边的变量,故B错误.答案:B2.给变量a,b,c赋初值6,正确的是()解析:在一个赋值语句中,只能给一个变量赋值,不能出现两个或两个以上的“=”号,故A、B错;赋值符号左边只能是变量名字,而不是表达式,故D错.答案:C3.有以下程序:A=3;B=5;A=B;B=A;输出A、B;程序执行后的结果是()A.3,5B.5,3C.5,5D.3,3解析:由“A=B”知A=5,再由“B=A”知B=5,故输出A,B分别为5,5.答案:C4.下面程序运行的结果是________.a=1;b=2;c=a-b;b=a+c-b;输出a,b,c;解析:由“c=a-b”知c=-1,由“b=a+c-b”知b=-2,∴输出a,b,c分别为1,-2,-1.答案:1,-2,-15.金融业是现代生活中不可或缺的行业,与我们有着密切的关系.某人现有5000元人民币,他按照定期一年的存款方式存入银行,到期自动转存,按复利计算,已知当前定期一年的利率为2.25%,试求5年后这个人连本带息可以取出多少钱?用算法解决问题,画出框图.解:设这个人在n(n=1,2,3,4,5)年后连本带息可以取出a元,算法如下:1.a=5000;2.a=a(1+2.25%);3.a=a(1+2.25%);4.a=a(1+2.25%);5.a=a(1+2.25%);6.a=a(1+2.25%);7.输出a.算法框图如图所示: