1、2.2变量与赋值,前面我们学习了算法的基本结构:顺序结构与选择结构,它们可以利用框架结构来说明,A,B,选择结构,满足条件,A,B,是,否,顺序结构,满足条件,A,是,否,顺序结构是最基本的结构,是任何结构都需要用到的, 选择结构是我们在解决实际问题中,常用到的一种结构, 它是计算机基本的逻辑推理结构,复习回顾,一年有365天。在历法上规定四年一闰,百年少一闰,每四百年又加一闰。如何判断一年是不是闰年呢?请设计一个算法,解决这个问题。,开 始,输入y,4整除y,输出 “y不是闰年”,结 束,是,否,100整除y,400整除y,是,否,输出“y是闰年”,否,是,在设计算法的过程中有时候表述很麻烦
2、,为了解决这个问题,需要引进变量和赋值。,变量是指可以取不同数值的量,是一个可变化的量,什么是赋值呢?,想一想:?,寓言故事小猴下山:小猴下山了,先掰了一根玉米;后丢了玉米,摘了一个西瓜;又丢掉西瓜,摘了一个桃;最后丢掉桃去追小兔,没追上,手中空空地回到了山上。,小猴手中的物品:小猴手中的物品:小猴手中的物品:小猴手中的物品:,玉米,西瓜,桃,无,变量x,x=1 x=2 x=3 x=0.,上述结果具有顺序性,即x的值先取1,次取2,再取3,最后取0.,将常数赋给变量。,大家在看娱乐类电视节目时有没有 听过类似这样的话“总分再加20分”?,第一环节:主持人报“总分为100分”; 第二环节:主持人
3、报“总分再加20分”; 第三环节:主持人报“总分再加30分”; 第四环节:主持人报“总分再加40分”。,第一环节:x=100; 第二环节:x=x+20; 第三环节:x=x+30; 第四环节:x=x+40.,将右边表达式的值赋给左边的变量,1、变量:在研究问题中,可以取不同数值的量.,计算机中变量的表示一般由一个或几个英文字母组成,或字母加数字表示.如a,x,a1,sum等.,2、赋值:把B 的值赋给变量A, 这个过程 称为赋值.记作: A=B其中“=”为赋值符号.,变量名=表达式,赋值语句的一般格式为:,注:,(2)赋值号的左右两边一般不能互换,如:x=5对, 5=x不对,(3)一个赋值语句只
4、能给一个变量赋值, 如x=y+5正确, x-y=5是错误的.,(1)在赋值语句中,赋值符号的右边可以是 数值,也可以是变量,还可以是表达式,而赋值符号的左边只能是变量,否则没有意义. 如:x=5, x=y, x=3a+5b正确, 2=x, s-m=3错误.,(4)可以先后给一个变量赋多个不同的值,但变量的取值只与最后一次赋值有关 . 例如:,输出a的值是?,(5)一个赋值语句中不能出现两个“=”.如a=b=2是错误的.,(6)赋值语句中的“=”与代数运算中的 等号不同,如在赋值语句中i=i+1表示i的 值自身加1,而在代数式中不成立.,小试牛刀,1 判断下列赋值语句是否正确.,(1) 6 =
5、a (2) x + y = 5,(3)A = B = 2 (4)x = x2,2:写出下列语句描述的算法输出的结果.,(1) a=5b=3 c=(a+b)/2d=c 2输出d,(2) a=1b=2 c=a-bb=a+c-b输出a,b,c,(4) a=1b=a+1b=b+1b=b+5输出b,(3) a=10b=20c=30b=ab=cc=a输出a,b,c,2,1,-2,-1,10,30,10,8,例1 设计一种算法,从5个实数中找出最大数,并用流程图描述这个算法.,分析:,解决这个问题其实很简单,只要取两个数比较取大,再与下一个数比较取大,一直这样下去,最后的一个结构就是最大数。,解,设这5个数
6、分别为: a1,a2,a3,a4,a5,1 比较a1,a2的大小,记大数为b,2 再比较b与a3的大小,记大数为b,(b的值变为a1,a2中最大的数),(b的值变为前3数中最大的数),3 再比较b与a4的大小,记大数为b,(b的值变为前4数中最大的数),4 再比较b与a5的大小,记大数为b,(b的值变为前5数中最大的数),5 输出b,b即为所求的最大数.,开始,输入a1,a2,a3,a4,a5,比较a1与a2,记大数为b,比较b与a3,记大数为b,比较b与a4,记大数为b,比较b与a5,记大数为b,输出b,结束,算法框图:,在上述的算法中: 每一步都要与上一步中得到的大数b比较,再将得到的大数
7、值重新记作b,通常叫b为变量,这种将大数重新记作b的过程,我们叫赋值给b.,说明:,变量和赋值是算法的基本概念,变量就像一个盒子, 赋值就像给盒子里放东西,但是每次只能装一个“数值”,放入新的数值后,原来的数值就被新的数值所取代.,赋值的作用:先计算赋值符号右边的代数式 的值,再将计算的结果赋予左边的变量.,想一想,如何用变量与赋值来表示例1 的算法步骤呢?,例1 设计一种算法,从5个实数中找出最大数,并用算法框图描述这个算法.,1.b=a1,6 输出b,b即为所求的最大数.,解:,算法框图:,算法步骤:,例2、用赋值语句写出下列算法,并画出流程图.摄氏 温度C为 23.5 ,将它转化成华氏温
8、度F,并输出. 已知F= C+32.,分析:首先给C 赋值,再给F 赋值.也就是说这个算法 要设置两个变量.,解:具体算法如下:(1)C = 23.5;(2)F = C + 32(3)输出F.,摄氏温度,华氏温度,金融作为现代生活中不可或缺的行业,与我们有着密切的关系,某人现有50000元人民币,他按照定期一年存款方式存入银行,到期自动转存,按复利计算,已知当前定期一年的利率为2.25,试求5年后这个人连本带息可以取出多少钱?实际算法解决问题,画出流程图。,例3:,解,设某年后可以支取a元,算法如下:,(1)一年后:a=5000(1+2.25%);,(2)二年后:a=5000(1+2.25%)
9、(1+2.25%),你会利用我们以前的数列知识解决这个问题吗?,(3)三年后:a=5000(1+2.25%)(1+2.25%)(1+2.25%),(4)四年后:a=5000(1+2.25%)(1+2.25%)(1+2.25%)(1+2.25%),(5)五年后:a=5000(1+2.25%)(1+2.25%)(1+2.25%)(1+2.25%)(1+2.25%),(6)输出a,你会写它的流程图吗?,开始,输入a=5000,a=a(1+2.25%),a=a(1+2.25%),a=a(1+2.25%),a=a(1+2.25%),a=a(1+2.25%),输出a,结束,已知 两个数 a 和 b , 用
10、赋值语句设计一个 算法使a 和 b 的值互换.,a,b,S,a,算法如下: (1)S = a (2)a = b (3)b = S (4)输出结果,a,b,练习,已知三个数x,y,z若x置换给y,y置换给z,z置换给x,1.输入3个数,设计算法找出这三个数中的最小数,并画出相应的框图。,3.王妈妈开了一家小型餐馆,为了节约服务生收费时间, 她购进红、黄、蓝、绿四种颜色的盘子,用这几种颜色 的盘子分别盛5元、8元、10元和12元的食品,这样结帐 的时候,只要数一下盘子就可以了,请利用赋值语句描 述用餐记费的算法。,1变量与赋值的概念;,2变量和赋值是算法中十分重要的概念,掌握将常数赋予变量,将其他变量的表达式赋予变量,将含有自身变量的表达式赋予变量,理解这些赋值方式的意义,切实学会通过赋值的方式改变变量的值,学会给变量赋值是构造算法的关键,也是算法的基本要求.,小结,作业,P93 1,2 P102 5,