第一章计算机与程序设计_第1页
第一章计算机与程序设计_第2页
第一章计算机与程序设计_第3页
第一章计算机与程序设计_第4页
第一章计算机与程序设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、牟永敏北京信息工程学院计算机系清华大学出版社牟永敏北京信息工程学院计算机系概要概要:本章介绍计算机和程序设计的基本知识,主要内容包括:1. 计算机的基本结构计算机的基本结构2. 程序设计语言程序设计语言3. 面向过程程序设计面向过程程序设计4. 面向对象程序设计面向对象程序设计 通过对这些内容的学习,使读者对计算机和程序设计有一个初步的了解,为后面各章的学习奠定基础。 1.计算机的基本结构(1) 计算机的基本结构主要是由存储器、运算器、控制器、输入设备和输出设备等五个部件组成。 其中: 存储器:是用来存储数据。大致分为内部存储器(内存)和外部存储器(硬盘、软盘等) 运算器:是用来完成各种算术运

2、算和逻辑运算。 控制器:用来控制计算机的各个部件协调工作。 输入设备和输出设备:是用来为数据的输入和输出服务的。控制器内存储器运算器外存储器输入设备输出设备指令程序原始数据原始数据结果结果图1.1 计算机的基本结构1.计算机的基本结构(2) 计算机的工作过程 (以汇编为例): 第一步,用输入设备把事先编制好的解题步骤(即程序)和原始数据输入到存储器指定编号的地方(内存单元)存放起来。 第二步,命令计算机从第一条指令开始执行程序,则计算机在程序控制下自动完成解题的全过程。 返回返回2.程序设计语言 (1) 60年代,冯诺依曼提出了程序存储原理,计算机走向了现代化。 目前,程序设计语言的发展已经经

3、历了四代,第五代语言尚处于萌芽状态。下面简单介绍一下各代语言的基本特点。2.程序设计语言 (2)第一代语言 第一代程序设计语言是机器语言,它是计算机所特有的,不同计算机有不同的机器语言。第二代语言 汇编语言,也称为符号语言。用含义较鲜明的符号,代替机器语言中的二进制编码,因此看起来较直观,不易出错。 2.程序设计语言 (3)第三代语言 称为算法语言,算法语言的基本组成成分是各种语句(如结构化程序设计),比用机器语言或汇编语言编写程序更加方便、简单和直观。第四代语言 实质上是可以快速开发应用软件的各种高生产率的软件工具的统称。如VC+、Delphi等。 2.程序设计语言 (4)第五代语言 多数人

4、认为,第五代语言将是智能化的语言。PROLOG语言可能是第五代语言最著名的雏形。 返回返回3.面向过程程序设计(1) 使用传统程序设计语言进行程序设计时,必须详细准确地描述解题过程 。因为程序设计工作主要围绕设计解题过程来进行,所以传统的程序设计方法称为面向过程的程序设计。 人们在开发软件的长期实践过程中,总结出一些设计原理并研究出一些系统化的技术方法,用于面向过程程序设计,能够提高开发效率,增加系统的可理解性和可维护性。这些原理和技术方法,在进行面向对象程序设计时也有借鉴意义。 3.面向过程程序设计(2) 基本设计原理与技术-模块化 模块是数据说明、可执行的语句等程序元素的集合,它是单独命名

5、的而且可以通过名字来访问,所谓模块化,就是把一个程序划分成若干个模块,每个模块完成一个子功能,把这些模块组装成一个整体,可以完成指定的功能 。如:函数。 请注意:在把程序划分成模块的时候,模块规模应该适当 。3.面向过程程序设计(3) 基本设计原理与技术-抽象 人类在认识复杂现象的过程中使用的最强有力的思维工具是抽象。人们在实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面(共性)。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。 如:各式各样的人=人类。抽象是对事物共性的高度概括。 当我们考虑对任何问题的模块化解法时,可以提出许多抽象的层次。 3.面

6、向过程程序设计(4) 基本设计原理与技术-信息隐藏和局部化 信息隐藏原理指出,在设计和确定模块时,应该使得一个模块内包含的信息(数据和过程)对于不需要这些信息的模块来说,是不可访问的(又称不可见的)。 局部化,是指把一些关系密切的程序元素物理地放得彼此靠近,处于同一局部区城内。 3.面向过程程序设计(5) 基本设计原理与技术-模块独立 模块独立原理是模块化、抽象、信息隐藏和局部化原理的直接结果和进一步发展。应该这样设计程序结构,使得每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系尽可能简单。 耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的

7、紧密程度。简单地说,理想内聚的模块只做一件事情。 高内聚和松耦合是进行模块化设计的重要标准,实践表明内聚更重要。 3.面向过程程序设计(6) 基本设计原理与技术-结构程序设计技术 把一个程序划分成若干个模块之后,进一步的工作就是设计完成每个模块功能的处理过程。 结构程序设计是一种设计程序的技术, 适应于面向过程和面向对象的编程方法,是实现模块的具体技术。自顶向下逐步求精的设计方法和单入口单出口的控制结构。 3.面向过程程序设计(7) 使用结构程序设计技术设计程序的主要好处如下:(1)自顶向下逐步求精的方法符合人类解决复杂问 题的普遍规律,因此可以显著提高开发效率。(2)用先全局后局部、先整体后

8、细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解。 (3)仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致。(4)控制结构有确定的逻辑模式,源程序清晰流畅,易读易懂而且容易测试。 返回返回4. 面向对象程序设计 (1) 人类习惯的解决问题的方法是采用“顾客-服务员”的工作模式。如:厨师与理发师的相互“顾客服务”。 面向对象程序设计方法模拟人类习惯的解题方法,用对象分解取代功能分解,也就是把程序分解成许多对象,不同对象之间通过发消息向对方提出服务要求,接受消息的对象主动完成指定功能(顾客所要求的服务),程序中的所有对象分工协作,共同完成整

9、个程序的功能。 可以认为:面向对象的程序是由对象和对象间的相互作用构成的。 是对象的有机结合。4. 面向对象程序设计 (2)面向对象方法概述面向对象方法具有下述四个要点:(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。面向对象的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。(2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。类中定义的数据用于表示对象的静态属性,是对象的状态信息。类中定义的方法,是允许施加于该类对象上的操作,是该类所有对象共享的,并不需要为每个对象都复制操

10、作的代码。该类中所有对象中的方法共享此代码(但是各个对象中的方法使用的数据是不同的)。 4. 面向对象程序设计 (3)(3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。在这种层次结构中,通常下层的派生类具有和上层的基类相同的特性(包括数据和方法),这种现象称为继承(Inheritance)。但是,如果在派生类中对某些特性又做了重新描述,则在派生类中的这些特性将以新描述为准,也就是说,低层的特性将屏蔽高层的同名特性。(4)对象彼此之间仅能通过传递消息互相联系。 对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进

11、行处理的主体,必须发消息请求它执行它的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。 面向对象的方法学可以用下列方程来概括: OO=Objects + Classes + lnheritance + Communication With messages 只有同时使用对象、类、继承和消息的方法,才是真正面向对象的方法。 所开发的程序才是面向对象的程序。4. 面向对象程序设计 (4) 面向对象方法的主要优点 1.与人类习惯的思维方法比较一致 传统的程序设计技术是面向过程的设计方法,这种方法以算法为核心,把数据和过程作为相互独立的部分,数据代表问题空间中的实体,程序代码则用于

12、处理这些数据 。忽略了数据和操作之间的内在联系,用这种方法所设计出来的软件系统其解空间与问题空间并不一致(因为是彼此独立的),令人感到难于理解。 面向对象的软件技术以对象(Object)为核心,用这种技术开发出的软件系统由对象组成。对象是对现实世界实体的正确抽象,它是由描述内部状态表示静态属性的数据,以及可以对这些数据施加的操作(表示对象的动态行为),封装在一起所构成的统一体。对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系。4. 面向对象程序设计 (5)2. 稳定性好 传统的软件开发方法:软件系统的结构紧密依赖于系统所要完成的功能,当功能需求发生变化时将引起软件结构的整体修改。 面向对象方法:当对系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要作一些局部性的修改。4. 面向对象程序设计 (6)3.可重用性好 传统的软件重用技术是利用标准函数库 。 面对象有两种方法可以重复使用一个对象类: 一种方法是可以创建该类的多个实例,从而直接使用它。 另一种方法是从它派生出一个满足当前需要的新类。继承性机制使得子类不仅可以重用其父类的数据结构和程序代码,而且可以在父类代码的基础上方便地修改和扩充,这种修改并不影响对原有类的使用。 4. 面向对象程序设计 (7)4.可维护性好(包括对软件功能的:增加、修改、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论