课程来自学堂在线的C++语言程序设计基础(2020春)
导学:
1、计算机系统由硬件、软件组成;指令系统是硬件和软件的界面。
2、计算机语言的级别 :二进制代码构成的机器语言-》使用助记符的汇编语言-》使用类似英语单词和语句的高级语言
C++是面向对象的高级语言
3、C++支持的程序设计方法:面向过程的程序设计方法、面向对象的程序设计方法、泛型程序设计方法。
4、C++程序的开发过程:算法设计-》源程序编辑-》编译-》连接-》运行调试
5、信息在计算机中的表示与存储:计算机中的数据用二进制表示;逻辑数据、字符数据用二进制编码表示。
计算机系统简介:
6、硬件:
外存储器:永久存储数据
内存储器:即将要运行的数据
7、计算程序语言计算机解决问题是程序控制的;程序就是操作步骤;程序要使用语言来表达。
8、计算机指令系统:机器硬件能够识别的语言(机器语言)的集合;它是软件和硬件的主要界面。
9、计算软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件;软件包括程序和文档。
10、计算机程序:指令的序列;描述解决问题的方法和数据。
计算机语言和程序设计方法的发展进度:未阅读
计算机语言和程序设计方法
面向过程:
11、机器语言:由二进制代码构成;计算机硬件可以识别;可以表示简单的操作
12、汇编语言:将机器指令映射为助记符;抽象层次低,需要考虑机器细节。
面向对象:
13、高级语言:关键字、语句容易理解;有含义的数据命名和算式;抽象层次较高;屏蔽了机器的细节;
14、C++语言:是高级语言;支持面向对象的观点和方法
*将客观事物看做对象、对象间通过消息传送进行沟通、支持分类和抽象
面向对象的基本概念
15、对象:程序中用来描述客观事物的实体。(在面向对象方法中,不属于”对象”基本特点的是:一致性)
16、抽象与分类:抽象出同一类对象的共同属性和行为形成类;类与对象是类型与实例的关系。
17、封装:隐蔽对象的内部细节;对外形成一个边界;只保留有限的对外接口;使用方便、安全性好。(C++中,实现封装性需借助于类)
18、继承:意义在于软件复用;改造、扩展已有类形成新的类。
19、多态:同样的消息作用在不同对象上,可以引起不同的行为。(eg.打乒乓球的“打”和打篮球的“打”意义不一样)
程序的开发过程进度:未阅读
程序的开发过程
20、C++程序的开发过程
算法与数据结构设计=》源程序编辑=》编译=》连接=》测试=》调试。
源程序【 用源语言写的,有待翻译的程序】
目标程序【源程序通过翻译程序加工以后生成的机器语言程序】
可执行程序【连接目标程序以及库中的某些文件,生成的一个可执行文件】
翻译程序:
汇编程序:n 将汇编语言源程序翻译成目标程序;
编译程序:将高级语言源程序翻译成目标程序;
解释程序:将高级语言源程序翻译成机器指令,边翻译边执行。
(编译方式是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户将高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。解释方式是指源程序进入计算机后,解释程序边扫描边解释,逐句输入逐句翻译,计算机一句句执行,并不产生目标程序。)
-C/C++直接编译成为针对特定平台的代码,如果需要跨平台,则需要使用相应的编译器重新编译。由于直接一次性编译,所以执行效率比较高。
-Java是编译-解释型的语言,半编译半执行,可以跨平台( .java文件编译【一次性】给本电脑的Java虚拟机(JVM)形成与平台无关的字节码文件 .class文件,再由虚拟机解释【逐条】成为机器语言进行执行)
(这方面有一个b站的博主的专栏写的非常清晰,推荐大家看一看网址:https://www.bilibili.com/read/cv5137227?from=articleDetail)
计算机中的信息与存储单位
21、计算机的基本功能:算术运算、逻辑运算。
22、计算机中信息:控制信息——指挥计算机操作;数据信息——计算机程序加工的对象。
23、信息的存储单位
-位(bit,b):数据的最小单位,表示一位二进制信息;
-字节(byte,B):八位二进制数字组成(1 byte = 8 bit);
-千字节 1 KB = 1024 B;
-兆字节 1 MB = 1024 K;
-吉字节 1 GB = 1024 M。
计算机的数字系统
24、计算机使用:二进制系统;基本符号:0、1。
25、程序中常用的数制:
26、 进制转换
R 进制转换十进制:
l 各位数字与它的权相乘,其积相加,例如:
(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 进制整数:
l “除以R取余”法。
所以 6810=10001002
十进制小数→ R 进制小数:
l “乘 以R 取整”法。
所以 0.312510 = 0.01012
二、八、十六进制的相互转换
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
数据在计算机中的编码表示
27、二进制数的编码表示
-原码: "符号(0/1)──绝对值"表示的编码
问题:零的表示不惟一(+0:000| -0:100);进行四则运算时,符号位须单独处理,运算规则复杂。
-补码
优点:符号位可作为数值参加运算;减法运算可转换为加法运算;0的表示唯一。
补码的计算
借助于“反码”作为中间码;
负数的反码与原码有如下关系:
符号位不变(仍用1表示),其余各位取反(0变1,1变0),例如:
X=-1100110 [X]原 =1 1100110 [X]反 =1 0011001
正数的反码与原码表示相同,正数的补码与原码相同;
反码只是求补码时的中间码;
负数的补码由该数反码的末位加 1 求得。
对补码再求补即得到原码。
-补码的优点:0的表示唯一;符号位可作为数值参加运算;补码运算的结果仍为补码
28、实数的浮点表示:计算机中通常采用浮点方式表示小数;实数 N 用浮点形式可表示为: N=M×2E(E:2的幂,N:阶码;M:N的尾数。)
29、字符在计算机中的表示:字符在计算机中是通过编码表示的;