《面向对象程序设计语言02(简单程序).ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计语言02(简单程序).ppt(28页珍藏版)》请在优知文库上搜索。
1、简单简单C+程序程序程序的构成元素、程序的基本结构面向对象程序设计语言面向对象程序设计语言面向对象程序设计语言面向对象程序设计语言图灵奖得主:图灵奖得主:Pascal发明者:尼克劳斯发明者:尼克劳斯.沃顿沃顿程序 = 数据结构 + 算法1.程序的构成元素面向对象程序设计语言面向对象程序设计语言2.程序的基本结构语言的构成语言的构成程序的诞生程序的诞生程序的操纵对象程序的操纵对象: :数据数据/ /类型类型程序的操纵工具程序的操纵工具: :运算符号运算符号顺序结构顺序结构分支结构分支结构循环结构循环结构一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言我们要研究一个我们
2、要研究一个C+基本程序是由哪些内容构成的。基本程序是由哪些内容构成的。#include using namespace std;int main(void) cout “Hello World!n” ; return 0 ;cppcpp文件:源程序文件:源程序头部头部主体主体函数函数语句语句关键字关键字操作符操作符文字文字分隔符分隔符标识符标识符字符集字符集一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言我们要了解一个我们要了解一个C+程序是如何诞生的。程序是如何诞生的。创建一个创建一个VC+VC+项目项目: dsp: dsp编译源程序文件为目标程序文件编译源程序文
3、件为目标程序文件 : obj: obj创建一个创建一个C+C+源程序文件源程序文件 : cpp: cpp链接目标程序文件和库文件为可执行程序文件链接目标程序文件和库文件为可执行程序文件 : exe: exe词法检查词法检查语法检查语法检查转译代码转译代码看看例子程序看看例子程序: Test03一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言程序操纵的对象是什么呢程序操纵的对象是什么呢?By the side of computers: built-in By the side of computers: built-in By the side of users:
4、self-definedBy the side of users: self-definedDataData:All of data in computers have TYPETYPEintintfloatfloat一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言我们看到电脑中丰富多彩的数据是如何由那么简单的两我们看到电脑中丰富多彩的数据是如何由那么简单的两种基本类型的数据得来的呢种基本类型的数据得来的呢?intintfloatfloatboolboolcharcharshortshortlonglongsignedsignedunsignedunsigneddo
5、ubledoublelong doublelong double一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言而我们在计算机中对数据的表示有两种方式而我们在计算机中对数据的表示有两种方式:变量变量: : 程序运行期间值会改变程序运行期间值会改变常量常量: : 程序运行期间值不会改变程序运行期间值不会改变autoautoregisterregisterexternexternstaticstatic文字常量文字常量符号常量符号常量我们将在后面讨论我们将在后面讨论字符串常量字符串常量C+C+的的Built-inBuilt-in变量没有这种类变量没有这种类型型, , 只
6、有字符串类型的对象只有字符串类型的对象, , 而而且是用字符数组构成的且是用字符数组构成的. .一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言无论变量还是常量无论变量还是常量, 都有对应的数据类型都有对应的数据类型:#include using namespace std;int main(void)bool x1 = true;char x2 = a;unsigned char x3 = a;short x4 = -1;unsigned short x5 = -1u;int x6 = -1;unsigned int x7 = -1u;long x8 = -1l;
7、unsigned long x9 = -1ul;float x10 = 0.6739088778089e-48f;double x11 = 0.6739088778089e-48;long double x12 = 0.6739088778089e-48l;return 0;NoticeNotice:bool type is int of 1 byte.1 : true0 : falseNoticeNotice:char type is int of 1 byte.Char : -128 127Unsigned char : 0 255NoticeNotice:Float type data
8、has effectiveness.一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言这些数据在计算机中是怎样存储的呢这些数据在计算机中是怎样存储的呢?All of them are binary by bytes All of them are binary by bytes In memory.In memory.100101001*27 + 1*26 + 0*25 + 1*24 + 0*23 + 1*22 + 0*21 + 0*20= 21211010100(1) 0*26 + 1*25 + 0*24 + 1*23 + 1*22 + 0*21 + 0*20= -
9、 441101001110101100 - 1 按位取反最终从补码得出原码按位取反最终从补码得出原码unsignedunsignedsignedsigned一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言无论是变量还是常量无论是变量还是常量, 都是按照上述方式存放在计算机中都是按照上述方式存放在计算机中.只是变量是被命名了的内存空间只是变量是被命名了的内存空间, 文字常量是没有命名的内存空文字常量是没有命名的内存空间间, 但是符号常量则采用的是命名内存空间存储的但是符号常量则采用的是命名内存空间存储的.const float PI = 3.14159 ;const
10、float PI = 3.14159 ;NoticeNotice:形式上很象变量的定义, 但是要有关键字: constconstNoticeNotice:在定义的时候一定要有初始值NoticeNotice:在定义好了之后,是不能进行赋值操作的PI = 3.14156;PI = 3.14156;一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言程序有了操纵的对象程序有了操纵的对象“数据数据”之后,还需要有操纵的工具。之后,还需要有操纵的工具。按照操作符的性质:按照操作符的性质:按照操作符的操作数的个数:按照操作符的操作数的个数:OperatorOperator:All
11、of operators have Priority & Associativity Priority & Associativity 算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符赋值运算符赋值运算符位运算符位运算符一目运算符一目运算符二目运算符二目运算符三目运算符三目运算符条件运算符条件运算符成员运算符成员运算符指针运算符指针运算符成员运算符成员运算符长度运算符长度运算符下标运算符下标运算符类型转换运算符类型转换运算符一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言这些运算符的作用规则:这些运算符的作用规则:(1)要符合实际意义;)要符合实际意义;
12、(2)有优先级;)有优先级;(3)有结合性;)有结合性;(4)混合运算的转换规则;)混合运算的转换规则;int i = 100;int i = 100;bool b = true;bool b = true;cout i + b endl;cout i + b endl;NoticeNotice:这是没有意义的运算,虽然C+中也能运行。int a = 1;int a = 1;int b = 2;int c = 3;cout a + a + b cout a + a + b * * c endl; c endl;NoticeNotice:优先级优先级就是先算哪个,后算哪个。结合性结合性就是同一个
13、运算符多次出现,运算是从左到右,还是从右到左。一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言这些运算符的作用规则:这些运算符的作用规则:(1)要符合实际意义;)要符合实际意义;(2)有优先级;)有优先级;(3)有结合性;)有结合性;(4)混合运算的转换规则;)混合运算的转换规则;double x1 = 0.782;double x1 = 0.782;unsigned long x2 = 241;unsigned long x2 = 241;int x3 = 90;int x3 = 90;cout x1 + x2 + x3 endl;cout x1 + x2 + x
14、3 endl;NoticeNotice:这个表达式最终将所有数据转换成doubledouble进行运算。NoticeNotice:转换规则是:在同一个运算表达式中,将精度低的数全部转换成在表达式中出现的精度最高的数据类型。charchar,shortshort,intint,unsignedunsigned,long long ,unsigned longunsigned long,floatfloat, doubledouble,long doublelong double一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言由于存在数据混合运算由于存在数据混合运算,
15、这会带来一些逻辑错误这会带来一些逻辑错误:#include using namespace std;int main(void)/ 四舍五入带来的问题四舍五入带来的问题double x = 10/7.0;cout x = x endl;if( x = 1.142857142857 )cout x = 10/7.0n;elsecout x does not equal 10/7.0n;double z = 7.0*x - 10;cout z = z endl;if(z = 0)cout z = 0.n;elsecout z does not equal 0.n;/ 进行除法运算带来的问题进行除法
16、运算带来的问题cout 1/2 is 1/2 = = = = = !=一、程序的构成元素一、程序的构成元素面向对象程序设计语言面向对象程序设计语言我们特别关注我们特别关注:+ - + - 的前置与后置的前置与后置赋值运算符赋值运算符= = 和和 =例如例如:i + 等价于 i = i + 1如果i = 0, (i+)-1的结果是?同样的,(+i)-1的结果又是?Sample:S02/S03注意注意:“=”在C+中是一种运算符号对待。所以可以写出:x = y = z; 的语句。注意注意:“=”和“=”在C+中是完全不同的两种运算符号。if( x = y )是一种错误的写法。二、程序的基本结构二、程序的基本结构面向对象程序设计语言面向对象程序设计语言这是我们实现程序控制的方法这是我们实现程序控制的方法.顺序顺序选择选择循环循环单分支单分支双分支双分支多分支多分支whilewhiledo whiledo whileforfor二、程序的基本结构二、程序的基本结构面向对象程序设计语言面向对象程序设计语言这些基本结构实际上是一种逻辑问题这些基本结构实际上是一种逻辑问题.今天如果天气好今天如果天气