第一章:计算机与编程
认识计算机
计算机的本质
计算的本质,是在信息的控制下,利用能量实现运算,从运动学上说这是一种机械运动。
计算机最初只是便于计算,看过的三体的朋友应该都知道,秦始皇的三千万大军被用于制造人列计算机,来计算太阳的运行轨迹。随着计算机的发展,逐渐有以下的发展。

进制数
计算机也叫——电脑,所以它的运行离不开电,而电信号只有高低电平两种状态 0 和 1,所以就有了最初的进制数——二进制。随着后来的发展,又出现了如:八进制、十进制、十六进制等等。
二进制: 0 1
八进制: 0 1 2 3 4 5 6 7
十进制: 0 1 2 3 4 5 6 7 8 9
十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f
0 和 1 两种二进制状态,同时表示信息量的最小单位,称之为 bit(比特),是 binary digit 的英文缩写。8 个 bit 组成一个 Byte(字节),能够容纳一个英文字母。以下为信息量单位的介绍。
| 缩写 | 英文名 | 换算 |
|---|---|---|
| bit | binary digit | 0 或 1 = 1bit |
| bytes | bytes | 8bit = 1bytes |
| KB | KiloByte | 1024bytes = 1KB |
| MB | MegaByte | 1024KB = 1MB |
| GB | GigaByte | 1024MB = 1GB |
| TB | TeraByte | 1024GB = 1TB |
计算机的五大组成部分
- 控制器
-- 类似于人的大脑 控制计算机各个硬件的工作,控制计算机各个硬件的工作。 - 运算器
-- 类似于人的大脑进行数学运算、逻辑运算。控制器+运算器=CPU(中央处理器) 。 - 存储器
-- 类似于人的记忆 短期记忆、长期记忆存储数据
内存:基于电工作 存取数据的速度快 但是断电数据立刻丢失——类似于人的短期记忆
外存:不基于点工作 存储数据的速度较内存慢 但是可以永久保存数据——类似于人的长期记忆,如:U盘、磁盘、磁带、硬盘、固态。 - 输入设备
-- 类似于人的眼睛 接收外界信息,如:显示屏、打印机、音响。 - 输出设备
-- 类似于人的嘴巴 给外界传递信息,如:鼠标、键盘、触摸屏。
计算机三大核心硬件
三大核心硬件:CPU、内存、硬盘
程序起初存放于硬盘中,当程序运行时,则要经历的过程是:
1. 先从硬盘把程序的代码、数据读入内存
2. 然后 CPU 从内存中读取代码、指令进行运行的
操作系统
在计算机中,操作系统是最基本也是最为重要的基础性系统软件。控制、协调和管理计算机各个硬件的工作。
从计算机用户的角度来说,计算机操作系统体现在提供的各项服务;从程序员的角度说,主要是指用户登录的界面或者接口;如果从设计人员的角度来说,就是指各式各样模块和单元之间的联系。
PC 端常见的操作系统:windows、macOS、linux
移动端常见操作系统:安卓、IOS、鸿蒙
认识编程
初识编程
-
什么是编程语言 ?
好比世界上的各个国家的语言,如:中文、英文、法语、俄语、阿拉伯语等等。这是人类中的语言,那计算机呢?也有这样的区分,如:python、java、go、C++、C# 等等。语言的特性就是解决人与人之间复杂的信息交流,计算机语言也大体相同,用于人与计算机之间沟通交流的媒介。
-
什么是编程?
程序员将自己的思维逻辑和想法用计算机能够读懂的语言写下来的过程就是编程。
编程语言发展史
编程的起源
编程最早可以追溯到提花机的使用,那时我国古代人为了在衣服上设计出绚丽多彩的图案,研制出了花本提花机。
织布工人提前将织布图案精心编织设计在花本上,这个编织花本的过程就可以看作现在程序员的编程,织布线可以看作现在的编程语言,花本就是对应编程出来的程序,织布工人就是现在的程序员。

人类历史上公认的,第一位程序员 —— 阿达·洛芙莱斯

机器语言
机器语言,即第一代计算机语言,程序员是直接使用二进制与计算机沟通交流。
优点:
1. 能够被机器直接运行
2. 灵活
3. 速度非常快,执行效率高
缺点:
1. 不便于阅读,学习难度太大
2. 难以记忆
3. 很难确保程序的正确性、高效性,开发效率低
4. 争对某一种特定的计算机,移植性差,重用性差
汇编语言
汇编语言, 即第二代计算机语言,用一些容易理解和记忆的缩写单词来代替一些特定的指令。
例如:用"ADD"代表加法操作指令,"SUB"代表减法操作指令,
//ADD指令用来进行整形数据的相加。
add eax, 4 //eax = eax + 4
add al, ah //al = al + ah
//SUB指令用来进行整形数据的相减。
sub bx, 10 //bx = bx - 10
sub ebx, edi //ebx = ebx - edi
优点:
1.可以轻松的读取存储器状态以及硬件I/O接口情况
2.编写的代码因为少了很多编译的环节,可以能够准确的被执行
3.作为一种低级语言,可扩展性很高
缺点:
1.因为代码非常单调,特殊指令字符很少,所以造成了代码的冗长以及编写的困难
2.汇编仍然需要自己去调用存储器存储数据,很容易出现BUG,而且调试起来也不容易
3.就算完成了一个程序,后期维护时候也需要耗费大量的时间。
4.因为机器的特殊性造成了代码兼容性差的缺陷,依赖于特定的计算机硬件。
高级语言
高级语言, 即第三代计算机语言,用人类能够读懂的字符与计算机沟通交流。常见高级语言:C++、Java、PHP、python、Golang
优势:学习难度低 开发效率高 门槛低
劣势:执行速度没有上述两个语言快

编程语言的发展史
-
解释型和编译型
解释型语言:C++ 类似于谷歌翻译(一次性翻译) 翻译之后可以反复使用翻译的结果 优势:一次翻译可以反复使用 执行效率高 速度快 劣势:当程序中频繁出现bug 那么需要反复编译 编译语言通常有:C、C++、Pascal/Object Pascal(Delphi)、Go等等 解释型语言 python 类似于同声传译(说一句翻一句) 优势:有bug和没有bug执行效率几乎一样 劣势:速度没有编译型语言快 解释型语言通常有:JavaScript、VBScript、Perl、Python、Ruby、Basic、MATLAB 等等介于两者直接的语言有:Java
PS:要想让计算机能够识别并运行高级语言需要对应类型的翻译官 -
面向过程和面向对象
面向过程结构化程序设计语言: “面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了;而面向对象是将构成问题的事物,分解成若干个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题过程中的行为。 面向过程语言有:C、Fortran、 Pascal 等 面向对象程序设计语言: 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。 面向对象语言有:c++、c#、java、delphi、Python、Simula 等
面向过程和面向对象都是解决实际问题的一种思维方式
二者相辅相成,并不是对立的。解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理
介于两者之间有:c++、perl 等

浙公网安备 33010602011771号