- level 1:语法基础课
第 0 讲 计算机基础
- 2023-8-2 16:11:34 @
一、计算机设计语言
-
自然语言;例如中文、英文,但计算机不能直接理解我们人类的自然语言。
-
机器语言:其实电子计算机内部是一大堆晶体管(第二代电子计算机),随着科技的发展,晶体管做成了纳米级别,一个集成电路就可以包含成千上万个晶体管。电子计算机存储和处理的是晶体管的状态组合,也就是说电子计算机只能理解两种状态:”开“或者”关“,一般我们用1表示开,0表示关,因此”1或者0“就组成了机器语言,电子计算机才能真正理解。
威廉·肖克利,因对半导体的研究和发现了晶体管效应,与巴丁和布拉顿分享了1956年诺贝尔物理学奖。冗长难理解,可移植性差,可重用性低。(不同CPU理解的不一样)
-
汇编语言:一种符号化的机器语言,采用英文助记符代替机器指令。易识别记忆,可读性强。但仍是低级语言,需要对寄存器或存储器直接操作,开发难度大、效率低。
-
高级语言:更接近自然语言,不特指某一种计算机语言,也不依赖特定的计算机系统,易掌握使用,通用性更好。C、C++、C#、java、Python等。
C++:1982年,贝尔实验室(美国AT&T公司)的Bjarne Stroustrup(本贾尼·斯特劳斯特卢普)博士在C的基础上引入扩充面向对象的概念,发明了C++。丹麦人,计算机科学家,在德克萨斯A&M大学担任计算机科学的主席教授。
-
集成开发环境
Dev C++是一套用于开发C/C++程序的自由集成开发环境(IDE),并以GPL作为分发许可,使用MinGW及GDB作为编译系统与调试系统。界面简洁友好,安装便捷,支持单文件编译。
编译 = 编辑 + 翻译 (C++ -> 机器语言之前,还有很多预处理,如去注释,包含头文件等)
-
谁是世界上第一个程序员?
她是英国诗人拜伦的独生女,第一个为分析机编出了程序(第一套计算机软件)
二、内存
内存是计算机的重要部件,用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据,是外存与CPU沟通的桥梁。计算机中所有程序的运行都在内存中,编程时定义的变量就存放在内存中。变量代表了一个存储单元,其中的值是可以改变的,因此称为变量。
三、输入、输出
四、世界上第一台通用计算机 计算机之父
“ENIAC”于1946年2月14日在美国宾夕法尼亚大学诞生,二战期间被用来计算炮弹轨道。每秒可处理5000次加法运算,对计算机来说,最初就是用来快速而精准的运算器。
内存又称为“主存”,它和CPU一起构成了计算机的主机部分,它存储的信息(程序和数据)可以被CPU直接访问。这是由美籍匈牙利数学家冯·诺依曼提出的计算机基本结构和工作方式的设想。
内存中含有很多存储单元,每个单元可以存放1个8位的二进制数,即一个Byte。内存中的每个字节各有一个固定的编号,这个编号就是地址。CPU在存取存储器中的数据时,是按地址进行的。所谓存储器容量就是存储器中所包含的字节数,通常用KB、MB、GB、TB、PB、EB、ZB等作为存储器容量单位。
五、浮点类型
实数是带有小数部分和整数部分的数字,如圆周率。
南北朝时期杰出的数学家祖冲之算出圆周率 Π 的真值在3.1415926 和 3.1415927 之间,精确到小数第7位,因此入选世界纪录协会世界第一位将圆周率值计算到小数第7位的科学家。
六、算术运算
我们熟知的加减乘除等算术运算都在CPU中的ALU(算术逻辑单元)里完成,CPU相当于电子计算机的大脑。为了设计简单,其实计算机只会做加法,而减法、乘法、除法等都是最终转化成加法实现的。
七、图灵机
艾伦·麦席森·图灵(1912.6.23 - 1954.6.7)英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。1936年,提出了一种抽象的计算模型——图灵机。
图灵机证明了任意复杂的计算都能通过一个个简单的操作完成,给计算机的诞生提供了理论基础。
1950年,图灵在《计算机与智能》一文第一节的开头有这样一句话:I propose to consider the question, 'Can machines think?' (我提议思考这样一个问题,“机器能思考吗?”)
八、布尔类型
bool表示布尔型变量,也事逻辑型变量的定义符,以英国数学家、布尔代数的奠基人乔治·布尔(George Boole)命名。
九、数据结构
我们划分了不同的数据类型,但有时仍然需要设法整理数据并确保数据的有序性,以便我们更加高效地利用数据。这时就需要有一种巧妙的方式进行数据的存储,即数据结构。从抽象的角度来看数据的存储方式可以是这样的:
线性链式存储、树存储、图存储
但数据结构的底层存储方式只有两种:数组(顺序存储)和链表(链式存储)
十、排序算法
稳定:冒泡排序、插入排序(直接/折半)、基数排序、归并排序
不稳定:快速排序、希尔排序、选择排序、 sort(要保持相对顺序用stable_sort)
降序写法 sort(a, a + size, greater());
非比较排序:计数排序、桶排序、堆排序
十一、泛洪填充算法(Flood Fill Algorithm)
大家熟悉的画图的油漆桶功能,就用到了洪水填充算法。其原理是从一个点开始把附近的像素点填充成新的颜色,直到封闭区域内的所有像素点都被填充新颜色为止。
十二、图的存储方式
图是一种复杂的非线性结构。在人工智能、工程、数学、物理、化学、生物和计算机科学等领域中,图结构有着广泛的应用。
1 comments
-
limingyu LV 4 @ 2024-10-19 9:39:50
终于找到了,伤心
- 1