第四课变量的引入
【变量是什么?】
变量是高级程序设计语言最基础的概念之一。C++中有几种基本变量类型,以后将逐步学习。本课介绍变量的基本概念和整数型变量的定义和使用。
(1)变量是名称
先来看一下画边长是120的正三角形和矩形的程序:
样例程序4.1 | 图形 |
int main(){ pen.fd(120); pen.rt(120); pen.fd(120); pen.rt(120); pen.fd(120); pen.rt(120); pen.fd(120); pen.rt(90); pen.fd(120); pen.rt(90); pen.fd(120); pen.rt(90); pen.fd(120); pen.rt(90); return0; } |
|
程序中有2个缺点。首先,程序中的数字120有些是边长、有些是角度,让人眼花缭乱;其次,如果想改变图形的大小尺寸,比如边长变为200,要修改程序中的7个120,比较麻烦。
如果用一个单词len表示边长(length),则程序4.1变成如下:
样例程序片段4.2 | 图形 |
int main(){ len=120; //len赋值为120 pen.fd(len); pen.rt(120); pen.fd(len); pen.rt(120); pen.fd(len); pen.rt(120); pen.fd(len); pen.rt(90); pen.fd(len); pen.rt(90); pen.fd(len); pen.rt(90); pen.fd(len); pen.rt(90); return0; } |
|
显然,程序的可读性大大改善。另外,只要把len=120改为len=200,就可以画边长200的图形,程序变化很方便。
(2)变量是“表格”中的一项
类似于手机的简单通讯录,一个姓名对应保存一个号码。程序也有个“通讯录”---变量表,一个变量名对应储存一个值。比如程序4.2中,可以认为变量表里有一项:
变量名 | 类型 | 值 |
len | 整数 | 120 |
数值120就储存在这张表里(变量表在计算机内存中,看不见L)。
变量的储存原理很重要!它表明,程序4.2中出现pen.fd(len )的地方,不是把len换成数字120,而是在变量表中查找len的值。
(3)变量的赋值和变量的调用
变量表最基本的运作有2个:
l 填表---比如程序4.2的“len=120;”这句,把表中变量名为len项的值填上120。
l 查找---程序4.2中,出现pen.fd( len )的地方,都会在变量表中找到len的相应值。
这2个操作在程序设计中有专门的名称:变量的赋值和变量的调用。
变量的调用过程是程序运行时自动进行的,但变量的赋值要编写程序时,在需要的地方用赋值语句明确设置。C++中赋值语句的格式为:
<变量名> = <表达式> ;
简单讲,就是把右边的表达式的计算结果赋值给左边的变量,即填到表的相应项中。
赋值语句样例 | 解释 |
len=120+100; | 就是把右边计算结果220赋值给len。以后调用变量len时,值为220。 |
(4)变量是可变的
利用赋值语句,可以随时“填表”来修改变量表的内容。下面样例程序片段4.3中len赋值了3次。
样例程序片段4.3 | 图形 |
int main(){ len=50; pen.fd( len ); pen.rt(90); len=len+20; pen.fd( len ); pen.rt(90); len=len+40; pen.fd( len ); pen.rt(90); return0; } |
说明:赋值语句“len=len+20;”中,先计算右边的表达式“len+20”,调用表达式中的变量len是50,计算结果为70;再赋值给左边的len,即填“变量表”,len项被修改为70。 |
【变量名的定义】
变量表是怎样建立的?具体的过程比较复杂,这里就不细说。但在C++语言中,变量表操作最重要的一步就是在表中添加一项。前面的程序片段,由于变量表中没有len项,如果直接运行会出现错误。
怎样在变量表中添加上变量名len,并且注明它的值是整数而不是字符等其他类型?一般地,在程序设计语言中这个添加变量的操作叫“变量的定义”。
完整的C++的变量定义内容很丰富,也很复杂。在这里先介绍最简单的一种,整数类型的变量定义,语法格式为:
int <变量名> ; 注:int是integer的缩写。
即在变量表中添加一个变量名,它的值的类型是整数。
例如在前面的样例程序4.2片段前面添加定义整数型变量len语句:
int len ;
程序的变量表会添加如下的项,程序就可正确执行。
变量名 | 类型 | 值 |
len | int | 120 |
样例程序4.4 | 图形 |
//====样例程序4.2的完整程序====
int main(){ int len; //定义int型变量 len len=120; //len赋值为120 pen.fd(len); pen.rt(120); pen.fd(len); pen.rt(120); pen.fd(len); pen.rt(120); pen.fd(len); pen.rt(90); pen.fd(len); pen.rt(90); pen.fd(len); pen.rt(90); pen.fd(len); pen.rt(90); return0; } |
|
【扩展知识】
(1)变量名的命名规则
l 变量名只能是字母(a-z A-Z),数字(0-9),下划线(_)的组合,并且之间不能包含空格,数字不能放在变量名首位。
l 变量名不能使用编程语言的保留字。比如C++中不能使用int,for, if , true, false, while保留字等等。
(2)算术表达式
C++语言中,算术表达式是由常量、变量、函数、圆括号、运算符等组成。运算符加、减、乘、除分别用字符“+”,“-”,“*”,“/”表示。
比如数学中的表达式:,在C++语言中表示为:( 12 + (x - 5)*3 ) / ( x – 4 )
【练习】
(1)早期计算机屏幕上显示的文字都是由点阵组成的,字体放大时每个点是一个小矩形,有锯齿状,不美观。现在的计算机系统里字体多是“矢量”,字体放很大也平滑。下面通过编写画“V”字的程序,了解一下“矢量”是怎么回事。
任务: 画出下面形状的“V”字。a赋值不同的值,将画出不同大小的“V”。
| 提示: 只用一个整数型变量a; 使用pen.size( )命令函数。
a=1时图形:
a=10时图形:
|
【学习目标】
(1) 认识变量的概念。
(2) 了解变量的“储存”方式以及变量赋值、调用的原理。
(3) 初步掌握整数型变量的定义格式。
(4) 可使用变量编写简单程序。