第1章主要内容和教学要求程序员
1、计算机系统算法
- 计算机系统由硬件、软件组成;
- 指令系统是硬件和软件的界面。
2、计算机语言和程序设计方法编程
- 计算机语言
- 程序员与计算机沟通的语言;
- 描述解决问题的方法和相关数据。
- 计算机语言的级别
- 二进制代码构成的机器语言;
- 使用助记符的汇编语言;
- 使用相似英语单词和语句的高级语言;
- C++是面向对象的高级语言
- C++支持的程序设计方法
- 面向过程的程序设计方法;
- 面向对象的程序设计方法;
- 泛型程序设计方法。
3、C++程序的开发过程安全
4、信息在计算机中的表示与存储数据结构
- 计算机中的数据用二进制表示;
- 逻辑数据、字符数据用二进制编码表示。
学习建议学习
计算机系统基本概念测试
计算机硬件编码
计算程序语言spa
- 计算机解决问题是程序控制的;
- 程序就是操做步骤;
- 程序要使用语言来表达。
机器语言翻译
- 计算机能识别的是机器语言;
- 机器语言指令是由0和1编码的;
- 例如:
加法指令多是“0001”。
计算机指令系统
- 机器硬件可以识别的语言(机器语言)的集合;
- 它是软件和硬件的主要界面。
计算软件
- 是一系列按照特定顺序组织的计算机数据和指令的集合。通常来说软件被划分为系统软件、应用软件和介于这二者之间的中间件;
- 软件包括程序和文档。
计算机程序
计算机语言和程序设计方法
最初的计算机语言——机器语言
- 由二进制代码构成
- 计算机硬件能够识别
- 能够表示简单的操做
- 例如:加法、减法、数据移动等等
汇编语言
- 将机器指令映射为助记符
- 抽象层次低,须要考虑机器细节。
高级语言
- 关键字、语句容易理解;
- 有含义的数据命名和算式;
- 抽象层次较高;
- 屏蔽了机器的细节;
例如,这样显示计算结果:cout<<a+b+c/d
C++语言
- 是高级语言
- 支持面向对象的观点和方法
- 将客观事物看作对象
- 对象间经过消息传送进行沟通
- 支持分类和抽象
面向过程的程序设计方法:
- 机器语言、汇编语言、高级语言都支持;
- 最初的目的:用于数学计算;
- 主要工做:设计求解问题的过程。
- 大型复杂的软件难以用面向过程的方式编写
面向对象的程序设计方法:
- 由面向对象的高级语言支持;
- 一个系统由对象构成;
- 对象之间经过消息进行通讯。
面向对象的基本概念
对象
- 通常意义上的对象:现实世界中实际存在的事物。
- 面向对象方法中的对象:程序中用来描述客观事物的实体。
抽象与分类
- 分类依据的原则——抽象;
- 抽象出同一类对象的共同属性和行为造成类;
- 类与对象是类型与实例的关系。
封装
- 隐蔽对象的内部细节;
- 对外造成一个边界;
- 只保留有限的对外接口;
- 使用方便、安全性好。
继承
多态
- 一样的消息做用在不一样对象上,能够引发不一样的行为。
程序的开发过程
程序
- 源程序:
- 目标程序:
- 可执行程序:
- 链接目标程序以及库中的某些文件,生成的一个可执行文件;
- 例如:Windows系统平台上的.EXE文件。
三种不一样类型的翻译程序
C++程序的开发过程
- 算法与数据结构设计;
- 源程序编辑;
- 编译;
- 链接;
- 测试;
- 调试。
计算机中的信息与存储单位
计算机的基本功能
计算机中信息:
- 控制信息——指挥计算机操做;
- 数据信息——计算机程序加工的对象。
信息的存储单位
- 位(bit,b):数据的最小单位,表示一位二进制信息;
- 字节(byte,B):八位二进制数字组成(1 byte = 8 bit);
- 千字节 1 KB = 1024 B;
- 兆字节 1 MB = 1024 K;
- 吉字节 1 GB = 1024 M。
计算机的数字系统
计算机的数字系统
程序中经常使用的数制:
R 进制转换为十进制:
(11111111.11)2=1×27+1×26+1×25+1×24+1×23+1×22+1×21+1×20+1×2-1+1×2-2 =(255.75)10
十进制整数转换为R 进制整数:
因此 6810=10001002
十进制小数→ R 进制小数:
因此 0.312510 = 0.01012
2、8、十六进制的相互转换
- 1位八进制数至关于3位二进制数;
- 1位十六进制数至关于4位二进制数,例如:
(1011010.10)2=(001 011 010 .100)2=(132.4)8
(1011010.10)2=(0101 1010 .1000)2=(5A.8)16
(F7)16=(1111 0111)2=(11110111)2
数据在计算机中的编码表示
二进制数的编码表示
- 须要解决的问题:负数如何表示?
- 最容易想到的方案:
0:表示“+”号;
1:表示“-”号。
例如:
[+0]原 =000...0
[-0]原 =100...0
- 补码
- 符号位可做为数值参加运算;
- 减法运算可转换为加法运算;
- 0的表示惟一。
- 补码的原理
n位二进制整数的模数为 2n ;
n位二进制小数的模数为 2。
- 补数:
- 一个数减去另外一个数(加一个负数),等于第一个数加第二个数的补数,例(时钟指针): 8+(-2)=8+10 ( mod 12 )=6;
- 一个二进制负数可用其模数与真值作加法 (模减去该数的绝对值) 求得其补码,例(时钟指针):-2+12=10。
- 补码的计算
- 借助于“反码”做为中间码;
- 负数的反码与原码有以下关系:
符号位不变(仍用1表示),其他各位取反(0变1,1变0),例如:
X=-1100110 [X]原 =1 1100110 [X]反 =1 0011001
- 正数的反码与原码表示相同,正数的补码与原码相同;
- 反码只是求补码时的中间码;
- 负数的补码由该数反码的末位加 1 求得。
- 对补码再求补即获得原码。
- 补码的优势:
- 0的表示惟一;
- 符号位可做为数值参加运算;
- 补码运算的结果仍为补码。
实数的浮点表示
- 计算机中一般采用浮点方式表示小数;
- 实数 N 用浮点形式可表示为: N=M×2E
E:2的幂,N:阶码;
M:N的尾数。
字符在计算机中的表示
ASCII码是一种经常使用的西文字符编码:用7位二进制数表示一个字符,最多能够表示27=128个字符;
- 《GB 18030-2005 信息技术 中文编码字符集》是中国国家标准。