第一节 计算机语言及发展
计算机是无知觉无生命的机器,要使它能够按照人们的意图工作,就必须使计算机懂得人的意图,接受人向它发出的命令和信息,这就要解决一个"语言"的问题。打个比方,一个中国人想要同一个美国人进行交流,首先需要学习英语,因为英语是美国人可以理解的语言,美国人不理解中国人的汉语。同样,计算机也不懂人类的语言,无论是汉语还是英语,计算机都不能接受,因此要求人们用特定的计算机可以理解的语言与计算机交流,这就是计算机语言。这种语言同英语、汉语等等人类长期使用的自然语言有很大的不同,它有严格的定义,并且一般没有二义性,因为人们在使用自然语言交谈时,很容易根据语境确定具有二义性的对话的含义;但是计算机却做不到这一点,至少现在它还没有这么聪明。
第二节 程序设计方法
什么是程序?
程序规定了计算机执行的动作和动作的顺序。如同开会的议程,每周的课程安排表一样。一个程序应包括以下两方面的内容:
(1) 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。
(2) 对操作的描述。即操作步骤,也就是算法。
数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。作为程序设计人员,必须认真考虑和设计数据结构和操作步骤。著名的计算机科学家Nikiklaus Wirth提出了一个公式:
程序 = 数据结构 + 算法。
程序设计与程序编码
一些程序员,尤其是初学程序设计者,常常认为程序设计就是用某种程序设计语言编写代码,这其实是错误的认识。上述工作应该被看成为编码(coding),它是在程序设计完成之后才开始的。拿房屋设计的例子来讲,房屋设计这个过程不涉及砌转垒瓦的具体工作,这些工作是房屋施工阶段进行的。在完成了房屋设计,有了设计图纸之后,施工阶段才能开始。如果不作设计,直接施工,很难想象房屋能不能建造完成,或者建造的房屋合不合要求。同样,程序设计一定要在具体的程序编码之前完成。程序设计完成的好坏直接影响了后面的编码质量。
程序流程图
起止框输入输出框判断框注释框 处理框流程线连接点
与房屋设计中有图纸一样,程序设计也有自己的表达方式。一种常用的程序设计表达方式是程序流程图。流程图也有不同的表示形式。我们只介绍传统的流程图。
流程图用一些图框表示各种操作,形象直观,易于理解。ANSI(American National Standard Institute, 美国国家标准化协会)规定了一些常用的流程图符号,已为世界各国程序工作者普遍采用。
我们以求n!为例说明流程图如何表示程序流程,见图1-4。
通过上面的例子,可以看出流程图是表示算法的较好工具。一个流程图包括以下几部分:(1)表示相应操作的框;(2)带箭头的流程线;(3)框内外必要的说明文字。需要注意的是:流程线必须加箭头,因为它是反映程序的执行先后次序的,如果不画箭头就难以判定各框的执行顺序了。
第三节 c++语言的特点
C++语言在1980年开始被使用,"C++"这个名字是由Rick Maseitti提出,到1983年夏确定的。C++的创作灵感来源于当时计算机语言多方面的成果,特别是BCPL语言(Basic Combined Programming Language, 它也是C语言的来源之一)和Simula 67语言(以面向对象为核心的语言),同时还借鉴了Algol 68。就如同它的名字表达的那样,C++语言是C语言的一个超集,它是一门混合型的语言,既支持传统的结构化程序设计,又支持面向对象的程序设计,这是C++语言成功流行的一个重要原因。
读者可能产生疑问,既然面向对象的程序设计方法比结构化的程序设计方法先进许多,为什么C++语言仍旧支持后者,而不愿意成为一门纯粹的面向对象的程序设计语言?
实际上,这种做法也是从程序设计语言发展实践中得到的经验。面向对象程序设计的概念提出后,某些公司和机构曾经开发出一些纯面向对象的语言,比如第一个成功的、纯面向对象的程序设计语言的Smalltalk,但是由于广大的程序员不能一下子完全接受面向对象程序设计的思想,不能完全适应面向对象程序设计的技术,这些语言都没有能够广泛的流行起来。事实上,程序员们长期采用结构化的程序设计方法,并从中汲取了许多宝贵经验,形成了巨大的财富,这些财富应该得到继承和发展;而且结构化程序设计方法在小型软件项目的开发设计上仍然很适用,完全否定这种设计方法也是不恰当的。C++作为一门混合型语言,在增加对于面向对象方法的支持的同时,还继承了传统程序设计语言C的优点,克服了其不足之处,使得自身既适用于结构化程序设计,又能满足面向对象程序设计的要求,这就符合广大程序员逐步更新其程序设计观念和方法的要求,因而很快流行起来。总之,对于传统的财富不是完全抛弃,而是继承并发展之,是C++语言成功的重要原因。
第四节 Visual C++6.0环境简介
图1-13 C++程序的编译和连接的过程
C++的流行使得许多软件厂商都提供了自己的C++集成开发环境,称为C++ IDE。著名的有Borland公司的C++ Builder, IBM公司的Visual Age For C++,Microsoft公司的Visual C++等等。其中,Visual C++6.0是当今Windows操作系统下最流行的C++集成开发环境之一。
本章小结
章小结】
本章主要讲述程序设计的基本概念和方法,并简单介绍了C++语言的特点以及Visual C++集成开发环境的使用。
编程者想要得到正确并且易于理解的程序,必须采用良好的程序设计方法。结构化程序设计和面向对象的程序设计是两种主要的程序设计方法。结构化程序设计建立在程序的结构定理基础之上,主张只采用顺序、循环和选择三种基本的程序结构和自顶向下逐步求精的设计方法,实现单入口单出口的结构化程序;面向对象的程序设计主张按人们通常的思维方式建立问题区域的模型,设计尽可能自然的表现客观世界和求解方法的软件,对象、消息、类和方法是实现这一目标而引入的基本概念,面向对象程序设计的基本点在于对象的封装性和继承性以及由此带来的实体的多态性。与结构化程序设计相比较,面向对象的程序设计具有更多的优点,适合开发大规模的软件工程项目。
C++语言是当今最流行的高级程序设计语言之一,它既支持结构化的程序设计方法,也支持面向对象的程序设计方法。使用Microsoft Visual C++提供的集成开发环境,编程者可以轻松完成C++项目的创建、编译、调试和运行。
课后习题
一、选择题
1.最初的计算机编程语言是:
a.机器语言
b.汇编语言
c.高级语言
d.低级语言
2.程序应该必须包含的部分是:
a.头文件
b.注释
c.高级语言
d.数据结构和算法
3.结构化程序设计的基本结构不包含以下哪项?
a.顺序
b.选择
c.跳转
d.循环
4.下列哪项不是面向对象程序设计的主要特征?
a.封装
b.继承
c.多态
d.结构
5.对象之间的相互作用和通信是通过消息。下列哪项不是消息的组成部分?
a.接受消息的对象
b.要执行的函数的名字
c.要执行的函数的内部结构
d.函数需要的参数
二、填空题
1.语言处理程序主要包括 , , 三种。
2.汇编程序的功能是将汇编语言所编写的源程序翻译成由 组成的目标程序。
3.编译过程一般分成5个阶段: 、语法分析、 、代码优化和目标代码生成。
4.目前,有两种重要的程序设计方法,分别是: 和 。
5.在C++中,封装是通过 来实现的?
6.C++程序一般可以分为4个部分: ,全局说明, ,用户自定义的函数。
7.任何程序逻辑都可以用 、 和 等三种基本结构来表示。
三、编程及问答题
1.叙述高级程序设计语言相对于低级语言的优点。
2.什么是结构定理?简单叙述结构化程序设计的过程。
3.面向对象程序设计的基本思想是什么?什么是对象、消息和类?什么是面向对象程序设计的基本特征?
4.C++语言具有哪些特点?
5.既然机器语言和汇编语言都是计算机可以理解的语言,使用它们可以完全控制计算机的行为,那么为什么人们还要创造并使用高级程序设计语言呢?
6.软件危机的含义是什么?
第一章到此结束 谢谢大家支持!!!!!
计算机是无知觉无生命的机器,要使它能够按照人们的意图工作,就必须使计算机懂得人的意图,接受人向它发出的命令和信息,这就要解决一个"语言"的问题。打个比方,一个中国人想要同一个美国人进行交流,首先需要学习英语,因为英语是美国人可以理解的语言,美国人不理解中国人的汉语。同样,计算机也不懂人类的语言,无论是汉语还是英语,计算机都不能接受,因此要求人们用特定的计算机可以理解的语言与计算机交流,这就是计算机语言。这种语言同英语、汉语等等人类长期使用的自然语言有很大的不同,它有严格的定义,并且一般没有二义性,因为人们在使用自然语言交谈时,很容易根据语境确定具有二义性的对话的含义;但是计算机却做不到这一点,至少现在它还没有这么聪明。
第二节 程序设计方法
什么是程序?
程序规定了计算机执行的动作和动作的顺序。如同开会的议程,每周的课程安排表一样。一个程序应包括以下两方面的内容:
(1) 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。
(2) 对操作的描述。即操作步骤,也就是算法。
数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。作为程序设计人员,必须认真考虑和设计数据结构和操作步骤。著名的计算机科学家Nikiklaus Wirth提出了一个公式:
程序 = 数据结构 + 算法。
程序设计与程序编码
一些程序员,尤其是初学程序设计者,常常认为程序设计就是用某种程序设计语言编写代码,这其实是错误的认识。上述工作应该被看成为编码(coding),它是在程序设计完成之后才开始的。拿房屋设计的例子来讲,房屋设计这个过程不涉及砌转垒瓦的具体工作,这些工作是房屋施工阶段进行的。在完成了房屋设计,有了设计图纸之后,施工阶段才能开始。如果不作设计,直接施工,很难想象房屋能不能建造完成,或者建造的房屋合不合要求。同样,程序设计一定要在具体的程序编码之前完成。程序设计完成的好坏直接影响了后面的编码质量。
程序流程图
起止框输入输出框判断框注释框 处理框流程线连接点
与房屋设计中有图纸一样,程序设计也有自己的表达方式。一种常用的程序设计表达方式是程序流程图。流程图也有不同的表示形式。我们只介绍传统的流程图。
流程图用一些图框表示各种操作,形象直观,易于理解。ANSI(American National Standard Institute, 美国国家标准化协会)规定了一些常用的流程图符号,已为世界各国程序工作者普遍采用。
我们以求n!为例说明流程图如何表示程序流程,见图1-4。
通过上面的例子,可以看出流程图是表示算法的较好工具。一个流程图包括以下几部分:(1)表示相应操作的框;(2)带箭头的流程线;(3)框内外必要的说明文字。需要注意的是:流程线必须加箭头,因为它是反映程序的执行先后次序的,如果不画箭头就难以判定各框的执行顺序了。
第三节 c++语言的特点
C++语言在1980年开始被使用,"C++"这个名字是由Rick Maseitti提出,到1983年夏确定的。C++的创作灵感来源于当时计算机语言多方面的成果,特别是BCPL语言(Basic Combined Programming Language, 它也是C语言的来源之一)和Simula 67语言(以面向对象为核心的语言),同时还借鉴了Algol 68。就如同它的名字表达的那样,C++语言是C语言的一个超集,它是一门混合型的语言,既支持传统的结构化程序设计,又支持面向对象的程序设计,这是C++语言成功流行的一个重要原因。
读者可能产生疑问,既然面向对象的程序设计方法比结构化的程序设计方法先进许多,为什么C++语言仍旧支持后者,而不愿意成为一门纯粹的面向对象的程序设计语言?
实际上,这种做法也是从程序设计语言发展实践中得到的经验。面向对象程序设计的概念提出后,某些公司和机构曾经开发出一些纯面向对象的语言,比如第一个成功的、纯面向对象的程序设计语言的Smalltalk,但是由于广大的程序员不能一下子完全接受面向对象程序设计的思想,不能完全适应面向对象程序设计的技术,这些语言都没有能够广泛的流行起来。事实上,程序员们长期采用结构化的程序设计方法,并从中汲取了许多宝贵经验,形成了巨大的财富,这些财富应该得到继承和发展;而且结构化程序设计方法在小型软件项目的开发设计上仍然很适用,完全否定这种设计方法也是不恰当的。C++作为一门混合型语言,在增加对于面向对象方法的支持的同时,还继承了传统程序设计语言C的优点,克服了其不足之处,使得自身既适用于结构化程序设计,又能满足面向对象程序设计的要求,这就符合广大程序员逐步更新其程序设计观念和方法的要求,因而很快流行起来。总之,对于传统的财富不是完全抛弃,而是继承并发展之,是C++语言成功的重要原因。
第四节 Visual C++6.0环境简介
图1-13 C++程序的编译和连接的过程
C++的流行使得许多软件厂商都提供了自己的C++集成开发环境,称为C++ IDE。著名的有Borland公司的C++ Builder, IBM公司的Visual Age For C++,Microsoft公司的Visual C++等等。其中,Visual C++6.0是当今Windows操作系统下最流行的C++集成开发环境之一。
本章小结
章小结】
本章主要讲述程序设计的基本概念和方法,并简单介绍了C++语言的特点以及Visual C++集成开发环境的使用。
编程者想要得到正确并且易于理解的程序,必须采用良好的程序设计方法。结构化程序设计和面向对象的程序设计是两种主要的程序设计方法。结构化程序设计建立在程序的结构定理基础之上,主张只采用顺序、循环和选择三种基本的程序结构和自顶向下逐步求精的设计方法,实现单入口单出口的结构化程序;面向对象的程序设计主张按人们通常的思维方式建立问题区域的模型,设计尽可能自然的表现客观世界和求解方法的软件,对象、消息、类和方法是实现这一目标而引入的基本概念,面向对象程序设计的基本点在于对象的封装性和继承性以及由此带来的实体的多态性。与结构化程序设计相比较,面向对象的程序设计具有更多的优点,适合开发大规模的软件工程项目。
C++语言是当今最流行的高级程序设计语言之一,它既支持结构化的程序设计方法,也支持面向对象的程序设计方法。使用Microsoft Visual C++提供的集成开发环境,编程者可以轻松完成C++项目的创建、编译、调试和运行。
课后习题
一、选择题
1.最初的计算机编程语言是:
a.机器语言
b.汇编语言
c.高级语言
d.低级语言
2.程序应该必须包含的部分是:
a.头文件
b.注释
c.高级语言
d.数据结构和算法
3.结构化程序设计的基本结构不包含以下哪项?
a.顺序
b.选择
c.跳转
d.循环
4.下列哪项不是面向对象程序设计的主要特征?
a.封装
b.继承
c.多态
d.结构
5.对象之间的相互作用和通信是通过消息。下列哪项不是消息的组成部分?
a.接受消息的对象
b.要执行的函数的名字
c.要执行的函数的内部结构
d.函数需要的参数
二、填空题
1.语言处理程序主要包括 , , 三种。
2.汇编程序的功能是将汇编语言所编写的源程序翻译成由 组成的目标程序。
3.编译过程一般分成5个阶段: 、语法分析、 、代码优化和目标代码生成。
4.目前,有两种重要的程序设计方法,分别是: 和 。
5.在C++中,封装是通过 来实现的?
6.C++程序一般可以分为4个部分: ,全局说明, ,用户自定义的函数。
7.任何程序逻辑都可以用 、 和 等三种基本结构来表示。
三、编程及问答题
1.叙述高级程序设计语言相对于低级语言的优点。
2.什么是结构定理?简单叙述结构化程序设计的过程。
3.面向对象程序设计的基本思想是什么?什么是对象、消息和类?什么是面向对象程序设计的基本特征?
4.C++语言具有哪些特点?
5.既然机器语言和汇编语言都是计算机可以理解的语言,使用它们可以完全控制计算机的行为,那么为什么人们还要创造并使用高级程序设计语言呢?
6.软件危机的含义是什么?
第一章到此结束 谢谢大家支持!!!!!