同学们 大家好 我是C++程序设计的主讲教师魏英 欢迎你来到这裡和我一起学习C++程序设计 C++语言是国内外广泛使用的计算机程序设计语言 它的功能强大 面向对象 数据表示丰富 代码运行效率高 可移植性好 适合编写系统软件和各类的应用软件 在开发语言的排行榜上 C++语言多年以来始终处于前5位 学习程序设计从C++入手 对于培养求解现实问题的计算科学思维能力 具有其他语言无法比拟的优点 相信将C++语言作为你学习的第一门语言 一定是一个正确的选择 那麽这一讲 我们首先要给大家介绍的就是计算机系统的组成 以及指令与程序的一个概念 那麽我们学习程序设计 肯定就要接触到计算机系统 所以我们有必要对计算机系统先做一个简单的了解 那麽计算机系统 它包括硬件系统和软件系统 那麽硬件系统就包含运算器 控制器 存储器 输入设备和输出设备 软件系统就包含系统软件和应用软件 那麽系统软件指的是 计算机必须具有的 一般由计算机厂商提供给我们的这类软件 如果计算机不安装这类软件 很难发挥它的功能 甚至无法工作 那麽应用软件 则是为了解决某些具体的实际应用而开发的程序 例如我们的QQ软件 为我们解决了远程通信的这样一个问题 我们的办公软件 为我们解决了办公自动化这样的问题 那麽这些软件都是属于应用软件的 那麽有哪些软件属于系统软件呢 那麽典型的就包括操作系统 我们知道计算机如果不安装操作系统 我们是没有办法使用计算机的 那麽再有就是数据库系统 那麽数据库系统帮助我们管理计算机上大量的数据 再有就是网络系统 因为网络现在已经成为我们每个计算机必须要具有的一个功能了 所以有了网络系统 我们计算机就可以进行网上的相关操作了 那麽再有一个就是程序设计语言与语言处理程序 可能很多同学觉得我们在使用计算机的时候 并没有意识到有这样的一个组成部分 我们说它的功能是什麽呢 它的功能就是将我们编制的高级语言的程序 把它转换成计算机所能识别的目标程序 也就是说没有这一部分的这个程序设计语言与语言处理程序 那我们的计算机呢 是没有办法执行程序的 那麽在程序设计语言与语言处理程序裡面又有哪些组成呢 那麽就包括机器语言与会编语言 它们俩都是属于低级语言 那麽高级语言就有C++ Fortune Pasca等等 那麽现在用的非常多的还有面向对象的程序设计语言 也属于高级语言 就包括我们要学习的C++ 还有Java等等 好 那麽接下来我们来看一下计算机系统的硬件组成 我们说计算机从诞生到现在 曾经产生了大大小小成千上万的计算机 但是计算机的基本结构并没有改变 它们都是属于冯诺伊曼型的计算机 因为冯诺伊曼最先提出计算机系统应该由5大功能部件来组成 那麽这5大功能部件就是我们这列举出来的 包括运算器 控制器 存储器 输入设备和输出设备 那麽接下来我们就对这几个功能部件做一个简单的了解 首先是运算器 那麽计算机要进行大量的运算 这些运算就是在运算器裡面完成的 运算器的主要功能就是进行算术运算 比如说加减乘除这类运算 还有就是逻辑运算 比如说与或非这些运算 那麽这些运算都是属于非常基本的运算 事实上运算器也只能做这些基本的运算 任何一个複杂的运算都是通过这些基本的运算一步一步来实现的 只不过运算器它的运算速度非常的高 所以我们的计算机才有如此强大的信息处理能力 好 接下来我们来看控制器 控制器就好比是计算机的神经中枢和指挥中心 只有在控制器的控制下 我们的其他部件才能够有条不紊的 协同的进行工作 还有就是存储器了 那麽存储器顾名思义 它就是用来存放程序和数据的这样一种装置 那我们的计算机一般都分有内存和外存两种存储器 那麽内存是用来存放我们当前要使用的这部分数据的 而外存是用来存放大量的我们暂时不使用的这部分数据 那麽最后就是输入设备和输出设备了 那麽输入设备的功能是将我们人所能识别的这种数据形式 把它转换成计算机所能识别的01代码 而输出设备恰恰相反 它是将计算机所能识别的这种01代码的形式 再转换回我们人所能识别的信息形式 那麽这就是5大功能部件的基本功能 那麽接下来我们来通过一个图 来看一下这5大功能部件是怎麽样来进行协同的工作的 那麽在这个图裡面我们有两种流 一种是用白色箭头表示出的数据流 一种是用黑色箭头表示出的控制流 那麽我们可以看到 所有的控制流都是通过控制器流向其他的部件的 因为我们说控制命令都是由控制器发送出来的 所以只有控制器能够发出控制指令 好 那麽接下来我们看数据流 那麽首先我们看有数据流向这个输入设备 再由输入设备流向存储器 那我们用户来输入数据的时候 就是将数据通过输入设备输入进去 然后转换成计算机所能识别的数据形式 然后再存放在计算机的存储器裡面去的 那麽当我们要输出数据的时候怎麽办呢 那麽从存储器裡面取数据 然后通过输出设备再将这些数据进行一个输出 我们还看到存储器和运算器之间 有双向的一个数据的流动 因为运算器要进行运算的时候 运算的数据是从存储器裡面拿出来的 那麽运算得到的这个结果 还要保存回到这个存储器裡面去 因此它俩之间是有一个双向的数据流动的 那我们再看 控制器和存储器之间也有数据的流动 存储器裡面有数据会流向控制器 因为我们说我们计算机系统的这个指令系统 它是存放在这个存储器裡面的 当控制器要发送控制指令的时候 它需要将这些指令从存储器裡面拿出来 所以存储器有一个向控制器的一个数据的流动 那麽这就是我们五大功能部件 它基本的一个工作的一个原理图 那麽接下来我们来看一下指令和程序的相关概念 首先我们前面提到过很多次指令这个词 究竟什麽是指令呢 我们说从本质上来说 指令就是能够被计算机所执行并识别的二星质代码 那麽我们说每个计算机系统它都有一个指令系统 指令系统裡面包含有若干条指令 那麽不同的计算机系统 它的指令系统也是不一样的 那麽一条指令它的功能是有限的 但是多条指令集合起来 它的功能却是无限的 那麽指令是由两部分来组成的 一部分就是操作码 一部分就是操作数 那麽操作码指的是我们究竟要执行什麽样的一个操作 比如说我们要进行加法运算 或者进行减法运算 或者进行输入输出运算 那麽操作数一般情况下来 都是表示这个操作数所在内存位置的这个地址码 也就是说操作数通常都是一个地址 表明的就是我这个数是存放在计算机存储器中的哪个位置的 好 那麽接下来我们再来看一下什麽是计算机程序 那麽计算机程序是指完成一定功能的指令的有序集合 那麽我们编好的这个程序 那麽其实是一个什麽东西呢 我们编的这些程序其实就是告诉计算机 我应该去执行哪些指令 并且哪个指令先执行 哪个指令后执行 计算机得到了这个信息以后 才能够执行指令来完成我们程序的这个功能 好 那麽我们将来要做的就是编写程序 那麽编写程序不仅考验程序员的体力 耐力和意志力 而且还需要程序员的智力 想像力和创造力 所以我们在将来学习程序设计的这个过程中 其实也是在培养我们各种能力的这样一个过程 那麽最后我们来看一下软件 那麽很多同学认为软件和程序是等价的 我们说这个概念是错误的 我们这还是对软件是这样定义的 软件是指程序 程序运行所需要的数据 以及开发 使用和维护这些程序所需要的文档的集合 通过这个定义我们可以看出 程序是软件非常重要的一个组成部分 但是软件并不仅仅只有程序 它除了程序以外 还有这个程序运行所需要的数据 以及这个程序的一些相关的文档的一个集合 那麽这一讲呢 我们就先讲到这裡 谢谢大家