C++程序设计 教学课件 ppt 作者 郑莉第1章程序与数据

上传人:w****i 文档编号:92479071 上传时间:2019-07-10 格式:PPT 页数:73 大小:933.50KB
返回 下载 相关 举报
C++程序设计 教学课件 ppt 作者 郑莉第1章程序与数据_第1页
第1页 / 共73页
C++程序设计 教学课件 ppt 作者 郑莉第1章程序与数据_第2页
第2页 / 共73页
C++程序设计 教学课件 ppt 作者 郑莉第1章程序与数据_第3页
第3页 / 共73页
C++程序设计 教学课件 ppt 作者 郑莉第1章程序与数据_第4页
第4页 / 共73页
C++程序设计 教学课件 ppt 作者 郑莉第1章程序与数据_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《C++程序设计 教学课件 ppt 作者 郑莉第1章程序与数据》由会员分享,可在线阅读,更多相关《C++程序设计 教学课件 ppt 作者 郑莉第1章程序与数据(73页珍藏版)》请在金锄头文库上搜索。

1、1,第 1 章 程序与数据,清华大学 郑 莉,2,目录,1.1 程序设计概述 1.2 数据的存储与表示,3,1.1程序设计概述,程序 所谓程序,简单地讲就是我们写给计算机的一系列操作指令以及要处理的数据 “计算任务的处理对象和处理规则的描述” 如何向计算机准确描述我们希望的操作呢 这就需要借助于计算机语言,4,1.1程序设计概述,多数情况下使用高级语言来编写程序,因为高级语言的抽象程度更高。计算机能够识别的却只有机器语言。这中间就需要由翻译程序来进行翻译 翻译程序有三种不同类型:汇编程序、编译程序,解释程序 汇编程序:其任务是把用汇编语言写成的源程序,翻译成机器语言形式的目标程序 编译程序:若

2、源程序是用高级程序设计语言所写,经翻译程序加工生成目标程序,那么,该翻译程序就称为“编译程序” 解释程序:这也是一种翻译程序,同样是将高级语言源程序翻译成机器指令 C+语言是高级语言,将C+程序翻译为机器语言的是编译程序,5,1.1.1 计算机程序设计语言,语言是人类思维与表达的工具 计算机没有能力理解人类的语言,计算机能够理解的只有二进制代码,称为“机器语言”,1.1 程序设计概述,6,1.1.1 计算机程序设计语言,面向过程的程序设计 1956年IBM公司的J.Backus等人研制出了第一个高级语言,Fortran语言。 高级语言采用了英语中的词汇作为关键字,其语句也与英语有些相近。相对于

3、低级语言来说,高级语言与人类自然语言之间的鸿沟小了一些。 高级语言能够描述数据、运算、控制和传输,能够实现相对复杂的算法,但是对于大型、复杂的程序,比如目前普遍使用的图形界面程序,其开发的难度仍然非常大,甚至可以说不能胜任了 由于这时的程序设计的思想都是面向任务解决的过程的,因而这种程序设计思想也称为面向过程的编程思想。,1.1 程序设计概述,7,1.1.1 计算机程序设计语言,面向对象的程序设计 到了80年代末,传统的面向过程的编程思想的缺点渐渐的变得突出起来。因为,随着时代的发展和计算机及其程序设计语言功能的强大,人们越来越需要计算机处理更大量的数据。随着数据量的增大,数据和操作的严格分离

4、使得程序可理解性越来越差,这种分离的思想渐渐的成为了程序开发能力和效率的瓶颈。 始于上个世纪60年代的SIMULA 67、形成于70年代的Smalltalk是面向对象语言的开始,1.1 程序设计概述,8,1.1.1 计算机程序设计语言,面向对象的程序设计 面向对象的语言,可以支持以人类习惯的面向对象的观点描述问题,适合大型复杂程序的开发。目前应用最为普遍的面向对象语言是C+和Java,而C+不仅支持面向对象的程序设计,也支持面向过程的程序设计、泛型程序设计(generic programming)、生成式程序设计(generative programming),1.1 程序设计概述,9,1.1

5、.1 计算机程序设计语言,面向对象的本质 它将数据及对数据的操作方法放在一起,作为一个相互依存、不可分离的整体对象 对同类型对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通讯。 程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。 通过继承与多态性,还可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。,1.1 程序设计概述,10,1.1.1 计算机程序设计语言,对象 对象可以看作是对客观世界事物的抽象,被抽象的事物可以是有形的物理实体,也可以是无形的计划、规则等。在面向对象

6、的编程思想中,对象是程序反映客观世界的基本单元。客观世界的事物都拥有其静态属性(如组成部件等)和动态属性(如运作方式等),与之相对应的,对象也包含属性和行为两个部分。其中,属性是用于描述客观事物静态属性的一组数据项,而行为则是用于描述客观事物动态属性的一组对数据项进行操作的操作序列。,1.1 程序设计概述,11,1.1.1 计算机程序设计语言,类 类可以看作是对具有相同属性的对象的抽象。类是对所有具有同样属性和操作的对象的抽象,而每个对象是它所属的类的具体实例。面向对象的三个重要性质封装性、可复用性与多态性。,1.1 程序设计概述,12,1.1.2 C+语言,C语言是由贝尔实验室的Dennis

7、 Ritchie在B语言的基础上开发而来的 C语言设计严谨,而且与硬件实现无关,使得用C语言编写的程序可以比较容易的移植到不同的平台下使用 C语言仍然只是一个面向过程的语言 1980年,AT&T贝尔实验室的Bjarne Stroustrup博士开始对C语言进行改进和扩充,创建了一个新的语言,最初这个语言被称为“带类的C”,1983年正式取名为C+,1.1 程序设计概述,13,1.1.2 C+语言,C+的两个“+”号各有含义。第一个“+”号表示C+语言首先是一个更好的C语言,它根除了C语言中存在的一些问题;第二个“+”号表示C+在C语言的基础加入了对面向对象程序设计的支持 1989年,C+语言的

8、标准化工作正式开始,到1994年制定了ANSI C+标准草案,之后又几经改进和完善,在1998年11月被国际标准化组织(ISO)批准为国际标准,就成为了现在的C+标准。尽管如此,目前C+语言仍然在不断的发展和改进中,1.1 程序设计概述,14,1.1.2 C+语言,C+语言完全兼容C语言 许多C语言程序可以不加修改就可以被C+语言使用 C+语言不是一个完全纯正的面向对象的语言,它同时支持面向过程的程序设计和面向对象的程序设计 我们要更好的使用C+,就必须更注重学习其面向对象的思想,这样才更便于我们更高效的开发出功能更强大的程序来,1.1 程序设计概述,15,1.2数据的存储与表示,计算机内部的

9、信息可以分成二大类,16,1.2.1数据的存储,信息的存储单位 在计算机内部,各种信息都是以二进制编码形式存储。信息的单位通常采用“位”、“字节”、“字” 位(bit):度量数据的最小单位,表示一位二进制信息 字节(byte):一个字节由八位二进制数字组成(1 byte = 8 bit)。字节是信息存储中最常用的基本单位 字(word):字是位的组合,并作为一个独立的信息单位处理。字又称为计算机字,它的含义取决于机器的类型、字长以及使用者的要求。常用的固定字长有8位、16位、32位等,1.2 数据的存储与表示,17,1.2.1数据的存储,信息的存储单位 计算机的存储器(包括内存与外存)通常也是

10、以多少字节来表示它的容量。常用的单位有: K 字节 1 K = 1024 byte M(兆)字节 1 M = 1024 K G 字节 1 G = 1024 M,1.2 数据的存储与表示,18,1.2.1数据的存储,二进制数的编码表示 一个数在机内的表达形式称为“机器数”,而它代表的数值称为此机器数的“真值” 一般情况下,用“0”表示正号,“1”表示负号,符号位放在数的最高位。 例如:8位二进制数A=(+1011011) B=(-1011011) 它们在机器中可以表示为: 其中最左边一位代表符号位,连同数字本身一起作为一个数,1.2 数据的存储与表示,19,1.2.1数据的存储,二进制数的编码表

11、示 为了改进符号数的运算方法和简化运算器的硬件结构,人们研究了符号数的多种二进制编码方法,其实质是对负数表示的不同编码,1.2 数据的存储与表示,20,1.2.1数据的存储,二进制数的编码表示 原码 将符号位数字化为 0 或 1,数的绝对值与符号一起编码,即所谓“符号绝对值表示”的编码,称为原码 X=+0101011 X原 =00101011 X=-0101011 X原 =10101011 X=0.1011 X原 =0.1011 X=-0.1011 X原 =1.1011,1.2 数据的存储与表示,21,1.2.1数据的存储,二进制数的编码表示 反码 反码很少使用,但作为一种编码方式和求补码的中

12、间码。正数的反码与原码表示相同。负数的反码与原码有如下关系: 负数反码的符号位与原码相同(仍用1表示),其余各位取反(0变1,1变0) X=+1100110 X原 =01100110 X反 =01100110 X=-1100110 X原 =11100110X反 =10011001 X=0.1011 X原 =0.1011 X反 =0.1011 X=-0.1011 X原 =1.1011 X反 =1.0100,1.2 数据的存储与表示,22,1.2.1数据的存储,二进制数的编码表示 补码 对于一个负数,其补码由该数反码的最末位加 1 求得。 对于正数来说,其原码、反码、补码形式相同。 求 X = -

13、1010101 的补码, X原 = 11010101 X反 = 10101010 X补 = 10101011 求 X = -0.1011 的补码 X原 = 1.1011 X反 = 1.0100 X补 = 1.0101,1.2 数据的存储与表示,23,1.2.1数据的存储,定点数和浮点数 在计算机中通常都采用浮点方式表示小数 一个数 N 用浮点形式表示(即科学表示法),可以写成: N=MRE 其中R表示基数,一旦机器定义好了基数值,就不能再改变了。因此基数在数据中不出现,是隐含的。在人工计算中,一般采用十进制,10就是基数。在计算机中一般用二进制,因此以2为基数。 E表示R的幂,称为数N的阶码。

14、阶码确定了数N的小数点的位置,其位数反映了该浮点数所表示的数的范围。 M表示数N的全部有效数字,称为数N的尾数。其位数反映了数据的精度,1.2 数据的存储与表示,24,1.2.1数据的存储,定点数和浮点数 浮点数的具体格式随不同机器而有所区别。例如,假设有一台16位机,其二进制浮点数组成为阶码4位,尾数12位,则浮点数格式如下: 下面是一个实际的例子,其中阶码,尾数分别用补码和原码表示,1.2 数据的存储与表示,25,1.2.1数据的存储,数值的范围 一个M位整数(包括一位符号位),如果采用原码或反码表示法,能表示的最大数为2m-1 -1,最小数为-(2m-1 -1)。若用补码表示,能表示的最

15、大数值为2m-1 -1,最小数为-2m-1 例如,设M=8,则原码表示范围为-127+127,反码的表示范围也是-127+127。补码的表示范围是-128+127。,1.2 数据的存储与表示,26,1.2.1数据的存储,数值的范围 一个n位定点小数,小数点左边一位表示数的符号,采用原码或反码表示时,表数范围为-(1-2-n )(1-2-n )。采用补码表示时,表数范围为-1 (1-2-n )。 浮点数的表示范围,由阶码位数和尾数位数决定 若阶码用r位整数(补码)表示,尾数用n位定点小数(原码)表示,则浮点数范围是 为了扩大数的表示范围,应该增加阶码的位数,每加一位,数的表示范围就扩大一倍 要增

16、加精度,就需要增加尾数的位数,1.2 数据的存储与表示,27,1.2.1数据的存储,非数值信息的存储 西文字符的最流行编码方案是“美国信息交换标准代码”,简称ASCII码。 ASCII码用一个字节中的七位二进制数来表示一个字符,最多可以表示27=128个字符 用于表示字符的还有另一种EBCDIC码,即Extended Binary Coded Decimal Interchange Code (扩展的二十进制交换码),采用8位二进制表示,有256个编码状态。,1.2 数据的存储与表示,28,1.2.1数据的存储,非数值信息的存储 汉字的数量大,常用的也有几千个之多,显然用一个字节(八位编码)是不够的。目前的汉字编码方案有二字节、三字节甚至四字节的。应用较为广泛的是“国家标准信息交换用汉字编码”(GB2312-80标准),简称国标码 国际码是二字节码,用二个七位二进制数编码表示一个汉字,1.2 数据的存储与表示,29,1.2.1数据的存储

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号