计算机和编程语言
计算机是生活必需品
- 如果想要自己设计一些功能和行为,让计算机按照你的意图做事情,就需要写程序了
- 本课程的主要的目的是通过学习编程,来理解计算机是如何解决问题的,理解计算机的能与不能,擅长于非擅长。
计算机如何解决问题
- 请给我一杯水
- 转身到厨房
- 找到一个杯子
- 找到一个水壶
- 在杯子中倒入一些水
- 拿着杯子走回桌子
- 人:What to do
- 计算机:How to do
计算机语言
- 程序是用特殊的编程语言写出来表达如何解决问题的
- 不是用编程语言和计算机交谈,而是描述要求它如何做事情的过程或方法
算法
- 我们要让计算机做计算,就需要想这样找出计算的步骤,然后用编程写出来
- 计算机做的所有的事情都叫做计算
计算机的思维
- 2x+6=20
- 解方程
- 枚举
- 二分搜索
程序的执行
- 解释:借助一个程序,那个程序能试图理解你的程序,然后按照你的要求执行
- 编译:借助一个程序,就像是一个翻译,把你的程序翻译成计算机真正能懂的语言--------机器语言---------写的程序,然后这个机器语言写的程序就能直接运行了
解释语言 VS 编译语言
- 语言本身无编译/解释之分
- 常用的执行方式而已
- 解释性语言有特殊的计算能力
- 编译型语言有确定的运算性能
C 语言
为什么是C,不是其他语言?
- 现代的编程语言语法上的差异很小
- 几乎都是 C-like 语言
- 语言的能力/适用领域主要是由
- 库和
- 传统所决定的
C 语言
- C语言是从B语言发展而来的,B语言是从BCPL发展而来的,BCPL是从 FORTRAN发展而来的
- BCPL和B都支持指针间接方式,所以C也支持了
- C语言还受到了PL/I的影响,还和PDP-II的机器语言有很大的关系
- 1973年3月,第三版的Unix上出现了C语言的编译器
- 1973年11月,第四版的Unix (System Four) 发布了这个版本是完全用C语言重新写的
C的发展与版本-标准
- 1989年ANSI发布了一个标准--------ANSI C
- 1990年ISO接受了ANSI的标准-------C89
- C的标准在1995年和1999年两次更新------C95 和 C99
- 所有的当代编译器都支持C99了
C语言用在哪里?
- 操作系统
- 嵌入式系统
- 驱动程序
- 底层驱动
- 图形引擎、图像处理、声音效果
C是一种工业语言
- 开发效率>>学习过程
- 开发效率>>开发乐趣
- 日常应用很少直接用C语言编写
- 学习C的过程主要是写练习代码
- 而非真是软件
编译——>运行
- C需要被编译才能运行,所以你需要
- 编辑器
- 编译器
- 或者,IDE(集成开发环境)
推荐的编程软件
- Dev C++ (4.9 forWin7, 5.0 for Win8)
- 免费
- 安装简单
- 不用建工程
第一个C程序
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
输出
printf("Hello Would!\n")
- “” 里面的内容叫做"字符串",
printf
会把其中的内容原封不动地输出 - \n 表示换行
暂定
- 如果你在使用Dev C++ 4.9.9.2
- system(“pause”);
- 让程序运行完成后,窗口还能留下
- 不是Dev C++ 4.9.9.2 就不需要这个了
程序中的错误
- 编译的时候发现的错误所在的地方会以红色的底表示出来
- 具体的错误原因在下方的窗口里(是英文的)
- C的编译器给出的错误提示往往不是那么好"猜"
不要用中文!!!
- 中国学生还有一个极其常见的低级错误,就是用了中文输入法来输入程序。那些标点符号在中文和英文可能看上去相似,但是对于计算机是完全不同的符号,如果你还开了全角标点的话,问题就更严重了
做计算
printf("%d \n", 23+43);
- %d 说明后面有一个整数要输出在这个位置上
printf("23+43=%d \n", 23+43);
四则运算
四则运算 | C符号 | 意义 |
---|---|---|
+ | + | 加 |
- | - | 减 |
× | * | 乘 |
÷ | / | 除 |
% | 取余 | |
() | () | 括号 |
- % 表示取两个数相除后的余数
以下两个小程序
-
Hello.c
#include <stdio.h> int main() { printf("Hello World!\n"); return 0; }
-
change.c
#include <stdio.h> int main() { int price = 0; printf("请输入金额(元):"); scanf("%d", &price); int change = 100 - price; printf("找您%d元。\n", change); return 0; }
计算
1.1变量
做计算
int price = 0; // 定义了一个变量,变量的名称是 price,类型是int,初始值是0
printf("请输入金额(元):");
scanf("%d", &price);
int change = 100 - price;
printf("找您%d元。\n", change);
/*
变量是一个保存数据的地方,当我们需要在程序里保存数据时,比如上面的例子中要记录用户输入的价格,就需要一个变量来保存它。用一个变量保存了数据,"它才能参加到后面的计算中,比如计算找零。
*/
变量定义
- 变量定义的一般形式就是:
- <类型名称> <变量名称>;
int price;
int num;
int price,num;