第三章 顺序结构
第三章 顺序结构
C++的程序采用了结构化程序设计.结构化程序设计要求的顺序、选择、循环的控制结构,使编写的程序结构清晰。
顺序结构就是按照语句的先后顺序来执行的方式。 第一节 赋值语句
赋值语句的一般形式: <变量名> = <表达式> 变量名必须在变量说明部分已经定义过。
“=”与“==”(两个等号连接在一起)的区别:“=”赋值号是将其右边的表达式的值赋给左边的变量。例如:X=X+1 是将X的当前值加上1,再赋给X。而“==”双等号是两边值比较的结果。
赋值号左边不能是表达式、常量,只能是变量名。
表达式是由常量、变量、函数、运算符和圆括号组成的式子。 应用举例:
Y=0.5; X=Y; X=Y+2.5;
在C++中对于赋值语句提供了缩写的形式,即当一变量既出现在赋值符号的左边又出现在右边时,可以缩写:
x=x*y; 缩写为: x*=y; x=x+y; 缩写为: x+=y;
其他的算术运算“-”、“/”、“%”都可依照同样的规则在赋值中缩写。缩写格式通常更为有效,可读性也比较强。
根据每个表达式所得的值的类型,表达式可分为数值表达式(值是实型或整型)、字符表达式(值是字符型)、和布尔表达式(值是布尔型),单独一个常量、一个变量或一个函数都可看作是简单的表达式。
赋值语句的功能:首先计算表达式的值,再赋给赋值号左边的变量。对任意一个变量必须先赋值,然后才能引用,否则未赋值的变量将以一个随机值参与运算。
另外需要强调一点的是赋值构成了一个表达式,因而它是有值的,赋值表达式的值为赋值符左边表达式的值。例如:
cout<<(i=1)< 将输出1,与此同时i也将被赋值为1。 [例3.1] 关于变量赋值的应用。交换两个变量的值。 程序如下: 北京12中计算机教研室 1 第三章 顺序结构 #include cout<<\输出未交换的值 a = a+b; b = a-b; a = a-b; cout<<\输出交换后的值 system(\ return 0; } 分析: 用下表说明程序的运行情况. 在程序的第一行,将3赋给a,将2赋给b. 第二行输出变量a、b的值. 第三行将a和b的当前值相加,其和赋给a;即对变量a的值更新. 第四行用a的当前值减去b的当前值,再赋给b,对b的值进行更新. 同理,下一行对a进行更新. 程序中整型变量是分别赋值 3,2 ,接着a的值加b的值为 5,仍赋给a.a的值改为5,再接下去的两条赋值语句同样使b的值改为3.a的值又改为2.最后输出的a,b的值分别为2,3. 交换两个变量的值的常用方法是: 假如有A、B两盘磁带,分别装有两种不同的内容。现希望将两盘磁带里的内容互换。 用什么方法将两盘磁带里的内容互换呢? 现采用第三盘磁带。 交换方法如下: 0 1 2 a 3 5 2 b 2 3 3 北京12中计算机教研室 2 第三章 顺序结构 图3.1 两个装有内容的磁带. 图3.2 用第三盘磁带C,交换A、B磁带里内容的过程。 上述过程可描述为:① C←A ② A←B ③ B←C 用上述算法试设计程序完成A、B两个变量值的交换。 程序如下: #include int main () { int a=3,b=2,c=0; 北京12中计算机教研室 3 第三章 顺序结构 cout<<\ c = a; a = b; b = c; cout<<\ system(\ return 0; } 只要将l3_1的处理交换的部分:a=a+b;b=a-b;a=a-b;换成:c=a;a=b;b=c; 并在程序的说明部分加上变量c的类型定义,即可. 如有A、B、C、D四个变量,其值如下表: A B C D 89 76 95 62 若将它们的值按从左向右移动,使最右边的值移动到最左边。 请你编程序实现: 算法:⒈开辟工作单元E。 ⒉E←D;D←C;C←B;B←A;A←E; 算法的执行过程: #include 北京12中计算机教研室 4 第三章 顺序结构 int main () { int a=89,b=76,c=95,d=62,e=0; cout< cout< 注意:赋值的顺序. [例3.2] 关于变量必须赋的值与相容赋值的例子. #include int main () { float c; cout<<\ c=5.0/2.0; cout<<\ c=5/2; cout<<\ system(\ return 0; } 经编译运行结果如下: c = 2.8026e-045 c = 2.5 北京12中计算机教研室 5