C++程序设计第一章

C++程序设计第一章

计算机语言

程序员与计算机沟通的语言
描述解决问题的方法和相关数据

计算机语言的级别

  • 二进制代码得机器语言
  • 使用助记符的汇编语言
  • 使用类似英语单词和语句的高级语言

C++是面向对象的高级语言

  • 封装
  • 消息通信

C++支持的程序设计方法

  • 面向过程的程序设计方法
  • 面向对象的程序设计方法
  • 泛型程序设计方法

C++程序的开发过程

  • 算法设计
  • 源程序编辑
  • 编译
  • 连接

信息在计算机中的表示存储

  • 计算机中的数据都是二进制的
  • 逻辑数据,字符数据也用二进制码表示

计算机系统简介

  • 输入设备
  • 内存储器
  • 外存储器
  • CPU
  • 输出设备

计算机的工作需要人来指挥

  • 计算机解决问题是软件控制的
  • 软件的程序就是操作步骤
  • 程序要使用语言来表达

计算机能识别的是机器语言
机器语言指令是由0和1编码的
例如:
加法指令可能是 0001

计算机指令系统

  • 机器硬件能够识别的语言(机器语言)的集合
  • 它是软件和硬件的主要界面

计算机软件:

  • 应用软件
  • 系统软件 操作系统
  • 中间件 提供系统软件和应用软件之间链接的软件

软件 = 程序 + 文档

计算机程序

  • 指令的序列
  • 描述解决问题的方法和数据

计算机语言和程序设计方法的发展

机器语言

  • 由二进制代码构成
  • 计算机硬件可以识别
  • 可以表示简单的操作
  • 例如:
    加法,减法,数据移动等等

最初的计算机语言–机器语言和人类的自然语言之间存在巨大鸿沟

汇编语言

  • 将机器指令映射为一些助记符。如ADD,SUB,MOV等
  • 抽象层次低,需要考虑机器细节

高级语言

  • 关键字,语句容易理解
  • 有含义的数据命名和算式
  • 抽象层次高,例如 A + B
  • 屏蔽了机器的细节,例如 count << a + b + c

C++语言

  • 是高级语言
  • 支持面向对象的观点和方法
  • 将客观事物看做对象
  • 对象间通过消息传送进行沟通
  • 支持分类和抽象

程序设计方法和发展历程

面向过程的程序设计方法

  • 机器语言,汇编语言,高级语言都支持
  • 最初的目的,用于数学计算
  • 主要工作,设计求解问题的过程

大型复杂的软件,难以用面向过程的方式编写

面向对象的程序设计方法

  • 面向对象的高级语言支持
  • 一个系统有对象构成
  • 对象与对象之间通过消息通信

面向对象的基本概念

对象(Object)

  • 一般意义上的对象:
    是现实世界中一个实际存在的事物
  • 面向对象方法中的对象:
    是系统中用来描述客观事物的一个实体

抽象与分类

  • 分类所依据的原则–抽象
  • 抽象出同一类对象的共同属性和行为,形成类

类与对象的关系

  • 类型与实例的关系

封装

  • 隐蔽对象的内部细节
  • 对外形成一个边界
  • 只保留有限的对外接口
  • 使用方便,安全性好

继承

  • 软件复用
  • 改造,扩展已有类行成新的类

多态

  • 同样的消息作用在不同对象上有可能引起不同的行为

程序的开发过程

高级语言 要翻译成 机器语言

源程序

  • 用源语言写的,有待翻译的程序

目标程序

  • 源程序通过翻译加工以后生成的机器语言程序

可执行程序

  • 连接目标程序以及库中的某些文件,生成的可执行程序

三种不同类型的翻译程序

  • 汇编程序
    将汇编语言源程序翻译成目标程序
  • 编译程序
    将高级语言源程序翻译成目标程序
  • 解释程序
    将高级语言源程序翻译成机器指令,是边翻译边执行

JAVA语言是半编译半解释的,目的是为了跨平台

C++程序是直接编译成本地机器语言代码

C++程序开发过程

  • 算法与数据结构设计
  • 源程序编辑
  • 编译
    先做语法检查
    编译
  • 连接
  • 测试
  • 调试

信息的表示和存储

计算机中的信息与存储单位

计算机中的基本功能

  • 算术运算
  • 逻辑运算

计算机中的信息

  • 控制信息
    指挥计算机操作
  • 数据信息

信息的存储单位

  • 位 bit
    数据的最小单位
  • 字节 Byte
    8位二进制 1Byte = 8bit
  • 千字节
    1KB = 1024B
  • 兆字节
    1MB = 1024KB
  • 吉字节
    1GB = 1024MB

计算机的数字系统

数字系统是二进制系统,基本符合0,1

三个二进制 = 一个八进制 四个二进制 = 一个十六进制

R进制 转 十进制:

  • 各位数字与他的权相乘,其积想加

例如:
11111111.11 = 1 * 27 + 1 * 26 + 1 * 25 + 1 * 24 + 1 * 23 + 1 * 22 + 1 * 21 + 1 * 20 + 1 * 2-1 + 1 * 2-2
= 255.75

十进制 转 R进制:

  • 除以R 取余

十进制小数 转 R进制小数:

  • 乘以R 取整

数据的编码表示

0 表示正数
1 表示负数

原码:

  • 符号 – 绝对值 表示的编码
  • 缺点
    • 0的表示不唯一
    • 进行四则运算时,符号位需单独处理且运算规则复杂

补码:

  • 0的表示唯一
  • 符号位可作为数值参加运算
  • 补码运算结果还是补码

模数:
n位二进制整数的模数为2的n次方
n位小数的模数是2

补数:
一个数减去另一个数(加上一个负数)
等于第一个数加第二个数的补数

例如:
8 + (-2) = 8 + 10 (mod 12) = 6

补码的计算规则

反码:作为中间码

反码的计算规则:
负整数

  • 原码符号位不变(仍是1)
  • 其余各位取反(0 变 1 , 1 变 0)

例如:
X = -1100110
原码 = 11100110
反码 = 10011001

正整数
原码就是反码就是补码

补码的计算规则

  • 反码作为中间码
  • 负数补码 = 反码 + 1
  • 正数补码 = 原码 = 反码

如果负数之和得正数或正数之和为负数说明运算结果溢出

小数的表示
浮点方案

N = M * 2E

E:2的幂次,称数N的阶码,反映了该浮点数所表示的数据范围
M:N的尾数 位数反映了数据的精度

字符的表示

字符在计算机中通过编码表示

  • ASCII码:
    常用的西文字符编码,7位二进制表示一个字符,最多可表示 2的7次方 = 128个字符
  • 汉字编码
    中国国家标准
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值