程序的费用急剧上升,而计算机硬件和运行的成本快速下降,程序设计的目标也就发生了变 化 在程序正确的前提下可读性易维护可移植是程序设计首要的目标。所谓可读就是 使用良好的书写风格和易懂的语句编写程序。所谓易维护,是指当业务需求发生变化时,不 需要太多的开销就可以扩展和增强程序的功能。所谓可移植是指编写的程序在各种计算 机和操作系统上都能运行,并且运行结果一样 3.高级语言和低级语言 C++语言是高级语言机器语言是低级语言汇编语言基本上是低级语言。例如:对于 C++语言的语句: a=3始a~2换b+1;//3a-2b+1的值赋给a 写成汇编语言和对应的机器语言为 mov eax, DWORD PTR a s Lebpl 8b Ec ea eax, DWORD PTR [eax eax *2] 8a 04 40 mov ecx, DwORD PTR b.s (ebp 84af8 dd ecx, ecx 2b cl Inc eax mov DWORD PTR a. s Lebel,eax 8945E 第一条命令是将a放入寄存器ax中(ebp是数据段的指针,a.$是变量a的偏移位 置 第二条命令是将eax的内容加上2倍的eax内容放到eax中,即eax中值为3*ao 第三条命令是将b放人寄存器e中。 第四条命令是将ex的内容加上ex,即ex中的值为2*b 第五条命令是将eax减去ex的值(3*a-2*b)放入eax 第六条命令是eax的值加1。此时,eax中的值为3*a-2米b+1 最后一条命令是将寄存器eax的值放入a变量中。即实现a=3“a-2*b+1 可以看出,程序语言越低级,描写程序越复杂,指令越难懂。语言越低级,就越靠近机 器,越高级,就越靠近人的表达与理解。 程序语言的发展,总是从低级到高级,直到可以用人的自然语言来描述。 程序语言的发展,也是从具体到抽象的发展过程。编制一个表达式,无须将表达式的具 体操作过程播述出来,否则人会感到太累,大量的精力会被无谓地浪费,无法进行更大规模 的设计与思考。而低级语言则必须详尽地描述仼何操作。所以抽象表达能力越强,语言越 高级。 4.C与C+ C++语言包括过程性语言部分和类部分。过程性语言部分与C并无本质的差别,无非 版本提高了,功能增强了。类部分是C中所没有的,它是面向对象程序设计的主体。要学 习面向对象程序设计,首先必须具有过程性语盲的基础。所以学习C十,必先学习其过程
程序的费用急剧上升,而计算机硬件和运行的成本快速下降,程序设计的目标也就发生了变 化 在程序正确的前提下可读性易维护可移植是程序设计首要的目标。所谓可读就是 使用良好的书写风格和易懂的语句编写程序。所谓易维护,是指当业务需求发生变化时,不 需要太多的开销就可以扩展和增强程序的功能。所谓可移植是指编写的程序在各种计算 机和操作系统上都能运行,并且运行结果一样 3.高级语言和低级语言 C++语言是高级语言机器语言是低级语言汇编语言基本上是低级语言。例如:对于 C++语言的语句: a=3始a~2换b+1;//3a-2b+1的值赋给a 写成汇编语言和对应的机器语言为 mov eax, DWORD PTR a s Lebpl 8b Ec ea eax, DWORD PTR [eax eax *2] 8a 04 40 mov ecx, DwORD PTR b.s (ebp 84af8 dd ecx, ecx 2b cl Inc eax mov DWORD PTR a. s Lebel,eax 8945E 第一条命令是将a放入寄存器ax中(ebp是数据段的指针,a.$是变量a的偏移位 置 第二条命令是将eax的内容加上2倍的eax内容放到eax中,即eax中值为3*ao 第三条命令是将b放人寄存器e中。 第四条命令是将ex的内容加上ex,即ex中的值为2*b 第五条命令是将eax减去ex的值(3*a-2*b)放入eax 第六条命令是eax的值加1。此时,eax中的值为3*a-2米b+1 最后一条命令是将寄存器eax的值放入a变量中。即实现a=3“a-2*b+1 可以看出,程序语言越低级,描写程序越复杂,指令越难懂。语言越低级,就越靠近机 器,越高级,就越靠近人的表达与理解。 程序语言的发展,总是从低级到高级,直到可以用人的自然语言来描述。 程序语言的发展,也是从具体到抽象的发展过程。编制一个表达式,无须将表达式的具 体操作过程播述出来,否则人会感到太累,大量的精力会被无谓地浪费,无法进行更大规模 的设计与思考。而低级语言则必须详尽地描述仼何操作。所以抽象表达能力越强,语言越 高级。 4.C与C+ C++语言包括过程性语言部分和类部分。过程性语言部分与C并无本质的差别,无非 版本提高了,功能增强了。类部分是C中所没有的,它是面向对象程序设计的主体。要学 习面向对象程序设计,首先必须具有过程性语盲的基础。所以学习C十,必先学习其过程
学、计算机、普通物理等课程的计算。 继承性和多态性的组合,可以轻易地生成一系列虽类似但独一无二的对象。由于继承 性,这些对象共享许多相似的特征。但由于多态性,一个对象可以有独特的表现方式,而对 另一个对象有另一种表现方式。 15程序开发过程 大多数现代的编译程序都提供了一个集成开发环境。在这样一个环境中,一般是从菜 单中选定 compile或mke或 build命令,来生成可执行的计算机程序。 程序员编制的源程序被编译(∞ compile)后,会生成一个目标文件,这个文件通常以,作 为文件扩展名。该目标文件为源程序的目标代码,即机器语言指令。但这仍然不是一个可 执行的程序因为目标代码只是一个个的程序块需要相互衔接成为一个适应一定的操作系 统环境的程序整体。为了把它转换为可执行程序,必须进行连接(lnk C++程序通常是通过同时连接一个或几个目标文件与一个或几个库而创建的。库 (.i)是一组由机器指令构成的程序代码,是可连接文件。库有标准库和用户生成的库。标 准库是由C+提供的,用户生成的库是由软件开发商或程序员提供的。文件与库连接的结 果,即生成计算机可执行的程序。 程序员首先在集成开发环境中编辑源程序,或在其他编辑器中输入源程序,然后,在集 成环境中启动编译程序将源程序转化成目标文件。编译之后,很有可能产生一些编译错误 于是程序员回到编辑状态重新开始编辑程序和编译的过程。同样在紧接着的连接中也会遇 到连接错误,此时,又回到编辑状态修改程序,见图1-1 编辑源程序 编译错 连接 连接错 这行 是运行错> 完成 图1-1开发C++程序的步骤
学、计算机、普通物理等课程的计算。 继承性和多态性的组合,可以轻易地生成一系列虽类似但独一无二的对象。由于继承 性,这些对象共享许多相似的特征。但由于多态性,一个对象可以有独特的表现方式,而对 另一个对象有另一种表现方式。 15程序开发过程 大多数现代的编译程序都提供了一个集成开发环境。在这样一个环境中,一般是从菜 单中选定 compile或mke或 build命令,来生成可执行的计算机程序。 程序员编制的源程序被编译(∞ compile)后,会生成一个目标文件,这个文件通常以,作 为文件扩展名。该目标文件为源程序的目标代码,即机器语言指令。但这仍然不是一个可 执行的程序因为目标代码只是一个个的程序块需要相互衔接成为一个适应一定的操作系 统环境的程序整体。为了把它转换为可执行程序,必须进行连接(lnk C++程序通常是通过同时连接一个或几个目标文件与一个或几个库而创建的。库 (.i)是一组由机器指令构成的程序代码,是可连接文件。库有标准库和用户生成的库。标 准库是由C+提供的,用户生成的库是由软件开发商或程序员提供的。文件与库连接的结 果,即生成计算机可执行的程序。 程序员首先在集成开发环境中编辑源程序,或在其他编辑器中输入源程序,然后,在集 成环境中启动编译程序将源程序转化成目标文件。编译之后,很有可能产生一些编译错误 于是程序员回到编辑状态重新开始编辑程序和编译的过程。同样在紧接着的连接中也会遇 到连接错误,此时,又回到编辑状态修改程序,见图1-1 编辑源程序 编译错 连接 连接错 这行 是运行错> 完成 图1-1开发C++程序的步骤
义的对象(在 iostream. h中定义),前面包含的头文件就是为了能在这里使用输出设备outo 当程序要在设备上进行输出时就需要在程序中指定该对象。输出操作由操作符“<”来表 达,它表示将该操作符右边的数据送到显示设备上 程序中用双引号括起的数据“ I am a student.\n"被称为字符串常量。其中字符“\n表 示一个回车控制符。字符申常量在24节中介绍。 ;”表示一个语句的结束。 例如,下面的程序求一个表达式的值 钟黄著折菁 include <iostream.h> void main() int a, b, result cout << please input two numbers:\: cin > a >> b: cout << result is << result < endlt 运行结果为: c>ch12 ENTER> please input two numbers: 12345<ER> result is 280 该程序从main()开始运行。C+中,一个变量必须在声明之后才能使用,所以程序首 先进行变量定义。“ina,b, result;"表示分别定义a,b,resu这3个int(整型)变量。C+语 言提供的标准数据类型之一是it。定义变量时,要求在变量之前申明变量的类型。C++中 定义变量,意味着给变量分配内存空间,用来存放变量值。 随后,在显示“ please input two numbers:"之后,执行“cin>a>b;",它从标准输人设备 (键盘)中输入两个整型数a和b。运行中屏幕将等待输人,直至输入了两个数123和45。 输入时,两个数之间用空格隔开。该两数分别赋给了变量a和b。 rult=3新县-2操b+1;”是赋值语句,*是乘号,将表达式3*a-2*b+1的值(280) 赋给变量 result,使之等于280。然后,在接下来的语句中将 result值输出。在cut语句中,有 3个“<”符号,表示各项内容的连续输出。“<rult"表示输出变量的值,“<end”表示输 出一个回车符,与“<'\n”是等价的。 在输出格式中,<ENER>表示键入的回车符,在以后的例子中将省略之。 17函数 C++用函数组织程序 虽然mn()也是函数,但它并不是普通的函数。大多数函数是在程序运行时被调用