第一个视频:C语言简史
为了玩小游戏Space Travel,需要在电脑上使用小型的操作系统。
而当时只有大型机GE-645,以及对应的Multics系统。
于是肯·汤普森和丹尼斯·里奇写出了,Unix操作系统。
记忆:M→多 复杂
U→小 相对简单
1.1.1计算机与编程语言
计算机是怎么做事情的:告诉计算机如何做,ta只会按照要求一步一步做(How to do)
与计算机交流的方式:使用计算机语言写出的程序,以程序告诉计算机步骤。
计算机懂什么语言呢?↓
是不是看不懂?我们需要借助工具将ta转化成我们能看懂的样子↓
在没学编程语言时也许还是看不懂。其实上述程序是在用辗转相除法,计算32和26的最大公约数。
程序之上的是算法↓
关于算法:↓
以上:计算机--程序--算法
编程语言是什么?
起初用编程语言写系统:对机器指令的直接翻译,是很底层的语言。
所以要找一个层次高的工具提高效率
编程语言 (1950)Fortran(放弃)→BCPL(简化)→B语言(改造,充分发挥性能)→C语言
1.1.2计算机的思维方式:重复是计算机最擅长的
2x+6=20 求x是几?
计算机会一个一个试x,即枚举
令x=1错 x=2错 x=3错……x=7对
但这样也太慢了,若下一道题答案是70000000呢?太慢太慢
所以我们→→算法
举个🍐例:“二分法”:已经知道x的大致范围为1-10,我们就先令x=5,式子2x+6=16<20,说明答案x比5大,x范围在5-10之间,可能是性=7或x=8,经过计算,得到x=7。只需两步得到答案。
二分法总结:缩范围
我们已经知道计算机能懂的语言(16进制全是数字)和我们写出的程序(字母和数字)有差异。计算机去执行你的程序有两种方式:解释,编译。
解释:借助一个程序→试图理解你的程序,然后按照你的要求来执行。
编译:借助一个程序→把你的程序翻译成计算机能懂的语言(机器语言)写的程序,然后这个机器语言写的程序就能执行了。
语言无解释/编译之分,只是常用的执行方式而已
解释型语言:有特殊的计算能力(源代码被解读) eg:Python
编译型语言:有确定的运算性能(明确的速度) eg:C语言
1.2.1为什么是C?C语言在工业界上有重要地位,在很多领域无可替代
近12年内各种编程语言的使用占比,很多语言都有使用高峰但避免不了会下降,而C语言的使用占比非常稳定,地位牢固
现代(C语言成熟稳定以后)很多编程语言的语法差异都很小,都像C+like,C是基础。这与C语言取得的历史地位有关。
(上图右边从上至下依次是C语言 JAVA Python)
往往我们说哪个编程语言很厉害很强,不是由于语言本身特点决定的,而是为这个语言别人写的库(比方说C语言的函数库)。有针对各种应用的库,在这些应用上面能做非常强的事,很难做的事可能调用这个库里的函数就可以解决,或在这个库里使用类做一个事情,就解决一个很大的工作。
如果这个语言有针对你要做的事情的库,你用它来写程序就会很容易。
1.2.2简单历史:关于C语言和版本的极其简单的历史
(上图右边也称做小白书,是经典著作,强烈建议亲自阅读学习)
目前,所有的当代编译器都支持C99了
版本的变化意味着能力的提升,C99中变量可以在任意位置定义。
1.2.3 编程软件:C语言的编程软件太多,我们推荐Dev C++
1.3.1 第一个C程序:如何在Dev C++中编译运行
创建文件:文件——新建——源代码
打出“输出Hello world”的程序
程序写完后要记得保存
保存方式:可以点文件——保存或者Ctrl+S
要保存为C source files,即C语言类型
保存成功后就可以编译运行了,下面有两种方式
①
②
编译成功后是这个界面
运行后是这个界面(黑色的叫终端)
进行了以上操作后,恭喜你,第一个c程序运行成功!
下面来介绍程序框架