1.计算机和编程语言
- 程序是用特殊的编程语言写出来表达如何解决问题的
- 不是用编程语言来和计算机交谈、而是描述要求它如何做事的过程和方法
- 辗转相除法(在数据结构中,这称为自然语言描述的算法)
(1)如果v不等于0,计算结束,u就是最大公约数;
(2)如果v不等于0,那么计算u除以v的余数,让u等于v,而v等于那个余数;
(3)回到第一步。
代码如下:
int u = 32;
int v = 26;
while(v != 0)
{
int temp = u % v;
u = v;
v = temp;
}
printf("%d",u);
- 算法
- 我们要让计算机做计算,就需要像这样找出计算的步骤,然后用编程语言写出来
- 计算机做的所有事情都叫做计算
2.算法
1)算法的定义 - 一般来说,为解决一个问题而采取的方法和步骤,就称为算法
- 计算机算法是用计算机求解一个具体问题或执行特定任务的一组有序的操作步骤(或者指令),是构成计算机程序的核心部分
2)算法的表示方法 - 使用自然语言描述算法
- 使用伪代码描述算法
- 使用流程图描述算法
3.计算机的思维 - 2*x+6=20
- 解方程 x=(20 - 6)/ 2 = 7
- 枚举,就是将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,合适就保留,不合适就丢弃。上述求最大公约数的例子就是枚举法
- 二分搜索(以后会讲)
4.程序的执行 - 解释:
借助一个程序,那个程序能试图理解你的程序然后按照你的要求执行 - 编译:
借助一个程序,就像一个翻译,把你的程序翻译成计算机真正能懂的语言——机器语言写的程序,然后,这个机器语言写的程序就能直接执行了
5.解释语言VS编译语言 - 语言本无编译/解释之分
- 常用的执行方式而已
- 解释型语言有特殊的计算能力
- 编译型语言有确定的运算性能
6.程序和程序设计语言 - 程序设计语言
是一组用来定义计算机程序的语法规则,用来向计算机发出指令 - 低级语言和高级语言
低级语言有汇编语言、机器语言,主要由机器基本指令构成。
高级语言有C语言、C++、java、python、fortran等等
7.C语言的历史和特点
(1)历史 - C语言是从B语言发展而来的,B语言是从BCPL发展而来的,BCPL是从FORTRAN发展而来的
- BCPL和B都支持指针间接方式,所以C也支持了
- C语言还受到PL/1的影响,还和PDP-II的机器语言有很大的关系
- 1973年3月,第三版的Unix上出现C语言编译器
- 1973年11月,第四版的Unix (System Four)发布了,这个版本是完全用C语言重新写的
(2)特点 - 可移植性强
- 语言简洁紧凑,使用方便
- 数据类型和运算符丰富多样
- 生成的目标代码质量好,程序执行效率高
8.C的发展与版本 - 经典C,又被叫做”K&R the C”
- The C Programming Language by Brian Kernighan and Dennis Richie, 2nd Edition, Prentice Hall
注:这是一本学C的好书 - 1989年ANSI发布了一个标准——ANSIC
- 1990年ISO接受了ANSI的标准——C89
- C的标准在1995年和1999年两次更新——C95和C99
- 所有的当代编译器都支持C99了(注:visual C++6.0不支持C99)
9.C语言应用 - 操作系统
- 嵌入式系统 -
- 驱动程序
- 底层驱动
- 图形引擎、图像处、声音效果
10.编程软件
C需要被编译才能运行,所以你需要编辑器和编译器或者直接用IDE(集成开发环境)
11.推荐的编程软件
1) Dev C++ - 免费
- 安装简单
- 不用建工程
2)其他选择 - MS visual studio Expres(windows)
- Xcode(Mac OS X)
- Eclipse-CDT
-以下是轻量级的编译器 - Geany(和MinGW一起)
- Sublime(和MinGW一起)
- vim/emacs(和MinGW一起)