当前课程知识点:C++语言程序设计基础 > 第1章 绪论 > 计算机系统简介 > 计算机系统简介
计算机系统基本概念
l计算机解决问题是程序控制的;
l程序就是操作步骤;
l程序要使用语言来表达。
l计算机能识别的是机器语言;
l机器语言指令是由0和1编码的;
l例如:
加法指令可能是“0001”。
l机器硬件能够识别的语言(机器语言)的集合;
l它是软件和硬件的主要界面。
l是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件;
l软件包括程序和文档。
l指令的序列;
l描述解决问题的方法和数据。
欢迎大家回来继续学习C++
语言程序设计
现在我们来一起
简单地了解一下计算机系统
那么大家请看这张图
在这张图中呢
我们看到有输入设备
输出设备 外存储器
这个大家可能都是比较熟悉的
另外我们看有内储存器和CPU
这些大家也会听说过
但是可能如果你自己没有
装过计算机
没有维修过计算机的话
你就没有见过CPU和内存
是什么样
平常大家来存数据的话
只知道
我把数据拷到计算机里面了
可能也没有关注到
它是在外存储器还是在内存储器
那么实际呢
计算机的主机
它是包括CPU内存储器
这是包括在主机里面的
那么虽然我们现在用的PAD
笔记本电脑这些
它的永久存储设备
也是封装在机壳里面的
但是它还是属于外部设备
那么我们要运行的程序
程序要处理的数据
都是由输入设备输入的
输入到计算机里面去以后呢
可能首先我们就把它存在
比如说硬盘这样的
永久存储设备里面了
那等你说我这个软件安装完了
我什么时候需要启动它了
我点图标启动它
启动的时候你观察一下
你计算机那个硬盘的灯
它就在闪亮
实际上这个过程就是你的程序
被装入到计算机的内存里面去了
我们运行中的程序
肯定它是放在内存里面的
而且你马上要运行的这条指令
又要从内存里面被提取出来
放到寄存器里面去的
绝对它不是在硬盘上运行的
好 那程序的处理结果
计算结果如果想要永久保留
或者想要输出来给用户看一下
那么这个都需要把这个结果
存到永久存储设备
一般都是外存储器上面去
还有可以通过输出设备
给播放出来
放到显示器上给大家看
这个就是我们所熟悉的
计算机的硬件结构
我们从宏观上
这样理解它一下就可以了
接下来我们要知道
计算机它还有个指令系统
我们有没有想过这样一个问题呢
计算机它为什么能够工作
有没有同学尝试过
自己组装过一台计算机
或者有没有你观看过
别人替你组装计算机
一个只有硬件的计算机
我们称它为裸机
一台裸机组装好了以后
它能干什么 什么都干不了
为什么呢
因为机器是死的 人是活的
这个俗语大家经常听到 对吧
那好 就得我们这个活的人
告诉这个死的机器
请你替我工作
请你替我做什么事情
这个够不够了 大家会觉得够了
我只要跟计算机交互
让它给我做什么事情它都可以做
那是因为什么呢
因为它上面有很多软件
一个只有硬件的机器
它没法听懂你告诉它
请你做事情 请你做什么
那我们要写软件
写软件就要用什么
用一种语言吧 对吧
我们跟计算机交互
也是需要语言的
就像你我交互
咱们家交互现在在用语言
是一样的
好 那计算机能识别什么语言呢
刚才我们说了
计算机能识别的所有信息
都是用二进制
0和1的代码构成的
所以说计算机能够识别的语言
它的最小最小的信息元素是什么
0和1这两个数字
那这两个数字只能表示两个信息
怎么能够组成那么多语言呢
那就编码呗
若干0 若干1
它们的各种组合代表不同的含义
这就是编码
所以我们要控制计算机
替我们做事情
替我们怎么做事情
要把这些指令发出去
就要通过编码
二进制0和1组成的这些编码
来表示这些指令
那么一个计算机它的硬件
所能够识别的所有的0和1
组成的这些指令的集合
就是这种计算机系统
它的指令系统
指令系统
是计算机硬件和软件的界面
硬件在底层
然后所有硬件设备
它要能够识别这些指令
并且协同起来
执行这些指令所规定的操作
而我们的计算机软件呢
最终都被转换成
这种指令系统里面的指令的序列
这就是我们很重要的指令系统
那么计算机软件呢
我们大家就很熟悉
你要玩游戏你装个软件
你要上网 你装个浏览器软件
你要聊天 你装个聊天的软件
大家很熟悉
那么这些是什么呢
我们经常用的
经常跟我们打交道的这些
它们多数都是应用软件
有一个东西
其实大家也天天在打交道
是什么 操作系统 对吧
说我装了一个Linux系统
我装了一个Windows系统
我装了MacOS
大家说的这些是什么
这些是操作系统
它们是系统软件
系统软件是干什么的
是计算机系统的大管家
它要管理所有的
计算机里面所有的资源
它要管理计算机要执行的
这么多的任务
所以在裸机上面
首先安装的就应该是
这个系统软件 操作系统
当然还有一类软件
它介于系统软件和应用软件之间叫做中间件
关于中间件呢
当大家做
大型应用软件开发的时候
会需要了解它
那么作为初学者呢
我们先不用去考虑这一部分
你就知道这是系统软件
那是应用软件就可以了
软件呢 大家一说起来
就想那是我安装上去的
什么什么程序
它会出现一个游戏
它会给我播放音乐等等
但是还有一个重要因素
大家有可能会忽略掉
那就是什么 文档
软件是由程序和文档构成的
这个在我们初学程序设计的时候
大家必须就要了解这一点
同学们写程序呢
热情还是很高的
看了例题很有意思
习题我要自己做
但是一旦让你写文档 写说明
描述你的数据结构
描述你的算法
就没有这耐心了
对于简单程序来说呢
你不写任何文档也没有问题
你可以直接写程序
你没有任何说明文档
别人用也会用
因为一般来说
我们的例题
习题程序都太简单了
但是对于复杂程序来说
你没有文档
那么它将来升级 维护等等
都会有问题
包括用户使用也要说明书嘛
所以一开始大家要有这个观念
要重视起来
软件它是由程序和文档构成的
好 接下来呢
我们就集中到我们这门课
要学习的内容上面
就是计算机程序
计算机程序是什么
计算机程序它就是由指令构成的
是你给计算机描述的
这些解决问题的方法
以及解决问题中
所需要的这些数据
那么关于程序呢
我就不多说了
整个我们这一门课
都始终在教大家怎么写程序
-导学
--第1章导学
-计算机系统简介
--计算机系统简介
--计算机系统简介 测试题
-计算机语言和程序设计方法的发展
--计算机语言和程序设计方法的发展 测试题
-面向对象的基本概念
--面向对象的基本概念 测试题
-程序的开发过程
--程序的开发过程
--程序的开发过程 测试题
-信息的表示和储存
--计算机的数字系统
--数据的编码表示
--信息的表示和储存 测试题
-实验指导
-导学
--第二章导学
-C++语言概述
--C++语言概述 测试题
-基本数据类型、常量、变量
--程序举例
--基本数据类型、常量、变量 测试题
-运算与表达式
--运算与表达式 测试题
-实验二:简单程序设计(上)
-数据的输入和输出
--数据的输入和输出
--数据的输入和输出 测试题
-选择结构
--if语句
--switch语句
--选择结构 测试题
-循环结构
--for语句
--循环结构 测试题
-自定义类型
--自定义类型
--自定义类型
-第2章小结
--第二章小结
-实验二:C++简单程序设计(下)
-导学
--导学
-函数定义
--函数定义
--函数定义 测试题
-函数调用
--例3-2
--例3-3
--例3-4
--例3-5
--例3-6
--函数调用 测试题
-嵌套与递归
--例3-9
--例3-10
--嵌套与递归 测试题
-函数的参数传递
--函数的参数传递
--函数的参数传递 测试题
-引用类型
--引用类型 测试题
-含有可变参数的函数
--含有可变参数的函数 测试题
-内联函数
--内联函数 测试题
-constexpr函数
--CONSTEXPR函数课后习题
-带默认参数值的函数
--带默认参数值的函数 测试题
-函数重载
--函数重载 测试题
-C++系统函数
--C++系统函数习题
-第3章小结
--第三章小结
-实验三(上)函数的应用
-实验三(下)函数的应用
-导学
--导学
-面向对象程序的基本特点
--面向对象程序的基本特点 测试题
-类和对象
--类和对象的定义
--类和对象 测试题
-构造函数
--构造函数基本概念
--委托构造函数
--复制构造函数
--构造函数 测试题
-析构函数
--析构函数
--析构函数 测试题
-类的组合
--类的组合
--类的组合程序举例
--前向引用声明
--类的组合 测试题
-UML简介
--UML简介
--UML简介课后习题
-结构体与联合体
--结构体与联合体 测试题
-枚举类
--枚举类
--枚举类 测试题
-第4章小结
--第四章小结
-实验四(上)
--实验四(上)
-实验四(下)
--实验四(下)
-导学
--导学
-标识符的作用域与可见性
--标识符的作用域与可见性 测试题
-对象的生存期
--对象的生存期
--对象的生存期 测试题
-类的静态成员
--类的静态成员 测试题
-类的友元
--类的友元 测试题
-共享数据的保护
--共享数据的保护 测试题
-多文件结构和预编译命令
--多文件结构和预编译命令 测试题
-第5章小结
--小结
-实验五
--实验五
-导学
--导学
-数组的定义与初始化
--数组的定义与使用
--一维数组应用举例
--数组的定义与初始化 测试题
-数组作为函数的参数
--数组作为函数的参数 测试题
-对象数组
--对象数组
--对象数组 测试题
-基于范围的for循环
-指针的定义和运算
--指针的定义和运算 测试题
-综合实例
--综合实例
-实验六(上)
--实验六上
-指针与数组
--指针数组
--指针与数组 测试题
-指针与函数
--指针类型的函数
--指向函数的指针
--指针与函数 测试题
-对象指针
--对象指针
--对象指针 测试题
-动态内存分配
--动态内存分配 测试题
-智能指针
--智能指针
-vector对象
--vector对象
--vector对象 测试题
-对象复制与移动
--移动构造
--对象复制与移动 测试题
-字符串
--C风格字符串
--string类
--字符串 测试题
-第6章小结
--第六章小结
-综合实例
--综合实例
-实验六(下)
--实验六(下)