清华大学C语言黄维通
清华大学 黄维通 设计制作
13
1.2 几个基本概念
清华大学 黄维通 设计制作
14
1.2.1 程序
程序:一系列遵循一定规则和思想并能正确完成 指定工作的代码(也称为指令序列)。 软件的开发不仅需要处理大量的关系复杂的 数据,这些数据通常都具有一定的结构性。因此, 软件设计的实质就是设计合适的数据结构和基于 这个数据结构的算法。于是N.沃恩提出了著名公 式对程序的描述,经常有如下等式:
清华大学 黄维通 设计制作
3
计算机与程序设计
清华大学 黄维通 设计制作
4
谈到计算机的发展,不可不提的人:图灵
英国数学家、逻辑学家,被 称为计算机之父。1931年图灵进 入剑桥国王学院,毕业后到普林 斯顿大学攻读博士学位,二战爆 发后回到剑桥,曾协助军方破解 德国的著名密码系统Enigma,帮 助盟军取得了二战的胜利。
并不能说明一门编程语言好不好,或者一门语言所编
写的代码数量多少。)
清华大学 黄维通 设计制作
10
1.1.1
贝尔lab的Ken Thompson想编 写模拟太阳系 航行的游戏 Space Travel, 找来PDP-7机器, 但该机器无OS, 他为PDP-7编写 OS,并被命名 为UNIX
C语言的发展
/ibm/cn/ibm100/icons/deepblue/index.shtml
•
•
还有很多很多……,所有的一切,都离不开程序
设计
清华大学 黄维通 设计制作
7
1.1 C语言的发展与特点
清华大学 黄维通 设计制作
8
/index.php/content/paperinfo/tpci/index.html
清华大学 黄维通 设计制作
28
1.6 C语言程序的编译和执行
编辑源程序→编译→连接→运行
后缀为.cpp
清华大学 黄维通 设计制作
29
清华大学 黄维通 设计制作
30
清华大学 黄维通 设计制作
31
清华大学 黄维通 设计制作
32
清华大学 黄维通 设计制作
33
清华大学 黄维通 设计制作
34
清华大学 黄维通 设计制作
19
软件开发步入 工程化阶段
大型软件开发一般要经历“规划”、 “需求分析”、“设计”、“编码”、 “测试”和“运行维护”等阶段
清华大学 黄维通 设计制作
20
软件工程是开 发、运行、维 护和修复软件 的系统方法
方 法
过 程
工 具
包括三个要素
清华大学 黄维通 设计制作
21
程序设计的步骤:
• 需求分析:对于接受的任务要进行认真的分析,研究所给定的 条件,分析最后应达到的目标,找出解决问题的规律,选择解 题的方法,完成实际问题。 设计算法:即设计出解题的方法和具体步骤。 编写程序:将算法翻译成计算机程序设计语言,对源程序进行 编辑、编译和连接。 运行程序,分析结果:运行可执行程序,得到运行结果。能得 到运行结果并不意味着程序正确,要对结果进行分析,看它是 否合理。不合理要对程序进行调试,即通过上机发现和排除程 序中的故障的过程。 编写程序文档:许多程序是提供给别人使用的,如同正式的产 品应当提供产品说明书一样,正式提供给用户使用的程序,必 须向用户提供程序说明书。内容应包括:程序名称、程序功能 、运行环境、程序的装入和启动、需要输入的数据,以及使用 22 注意事项等。
• • •
ቤተ መጻሕፍቲ ባይዱ
•
正确的“需求分 析”对程序设计 是至关重要的
清华大学 黄维通 设计制作
“编码”是对需求的 实现。在“编码” 过程中,算法很重 要,良好的算法决 定了程序的质量和 性能 23
1.4 C语言程序的基本标识符
1 字符集 英文字母 a~z,A~Z 阿拉伯数字 0 ~ 9 +-*/%= { } ()[]_ „ . : ? ~ < > & ; “ | ! # 空格 ^
1971年,酷爱 Space Travel 的Dennis为能 早些玩游戏, 与Thompson合 作开发UNIX, 其主要工作是 改造B语言, 改造后被命名 为C语言
1973年,C的主体 完成,并重写 UNIX,,随着UNIX 的发展,C自身也 不断发展完善,直 到今天,各种版本 的UNIX内核和周边 工具仍使用C作为 主要开发语言。
清华大学 黄维通 设计制作
逐步 求精
17
数据结构与算法密不可分,一个良 好的数据结构,将使算法简单化;只有 明确了问题的算法,才能有较好的设计 数据结构,因此两者是相辅相承的
对同一个问题的求解,允许有不同 的算法和数据结构,依不同算法编写的 操作代码,执行效率不一样。
清华大学 黄维通 设计制作
18
高级语言门类很多,其中影响最大的是C语言
清华大学 黄维通 设计制作
9
高级语言生命力最强的也是C语言, TIOBE(The Importance Of Being Earnest,编程语言排行版)每 个月都会统计各种程序设计语言的受欢迎程度。 (TIOBE排行榜是根据互联网上有经验的程序员、课程 和第三方厂商的数量,并使用搜索引擎ouTube 统计出排名数据,只反映某个编程语言的热门程度,
/art/200804/68773_all.htm
图灵奖,由美国计算机协会于1966年设立,被 喻为计算机界的诺贝尔奖。由于他对早期计算的 理论和实践做出了突出的贡献。该奖主要授予在 计算机技术领域做出突出贡献的人,而这些贡献 必须对计算机业有长远而重要的影响。图灵奖获 得者姚期智在清华工作(还有著名的“姚班”)。
1983
1989
1999
C是C++/java/C#/VC++的基础,还有很多专用语言也学习 或借鉴了C语言,学好C,对以后学习其他语言很有帮助。
清华大学 黄维通 设计制作
12
1.1.2 C语言的特点
1. C语言简洁、紧凑,使用方便、灵活,具有结 构化的特点; 2. C语言允许直接访问物理地址,能进行位操 作,能实现汇编语言的大部分功能,可以直 接对硬件进行操作。因此有人把它称为中级 语言; 3. 生成目标代码质量高,程序执行效率高,移 植性好; 4. 用函数作为程序模块,以实现程序的模块化。
清华大学 黄维通 设计制作
5
贡献之一:人工智能的研究。1950年,图灵被录用为泰丁顿 (Teddington)国家物理研究所的研究人员,开始从事“自动计算 机”(ACE)的逻辑设计和具体研制工作。1950年,他提出关于机 器思维的问题,他的论文“计算机和智能(Computing machinery and intelligence),引起了广泛的注意和深远的影响。
清华大学 黄维通 设计制作
6
已经实现的人工智能的具有重大影响的事件:
• IBM深蓝----1997年 5月 11日,名为 IBM 深蓝的 IBM 计算机经过六场角逐,击败了世界象棋冠军: 两胜一负三平。比赛持续几天时间,引起了全球媒 体的广泛关注。这次比赛成为经典的人机对决。然 而,比赛的背后是重要的计算机科学作为支撑,推 动着计算机能力的发展,使其能够处理复杂的计算 ,帮助发现新型药品;为识别趋势和进行风险分析 而执行全面的金融建模;处理大型数据库搜索;并 且在许多科技领域进行海量计算任务。
程序设计是什么?
程序设计=数据结构+算法+程序设计方法学
程序设计是给出解决特定问题程序的 过程,是软件构造活动中的重要组成部分。 程序设计往往以某种程序设计语言为工具, 给出这种语言下的程序。程序设计过程应 当包括分析、设计、编码、测试、排错等 不同阶段。专业的程序设计人员常被称为 程序员。
清华大学 黄维通 设计制作
35
清华大学 黄维通 设计制作
36
清华大学 黄维通 设计制作
37
清华大学 黄维通 设计制作
38
第1章
C语言的基本概念
清华大学 黄维通 设计制作
1
本章主要内容
• 计算机与程序设计 • C语言的发展与特点 • 几个基本概念 • 软件工程的概念 • C语言程序的基本标识符 • C程序的几个简单实例 • C程序的结构特点 • C语言程序的编译和执行
清华大学 黄维通 设计制作
2
先考虑几个问题:
(1) 计算机是否仅是一个上网、聊 天、游戏、看电影的工具? (2) 你了解过编程吗?编程高不可 攀吗? (3) 你崇拜“黑客”吗?
清华大学 黄维通 设计制作
27
【例】计算三个实型数的平均值
# include <stdio.h> // 嵌入头文件 void main() // 主函数入口 { float a,b,c,aver; printf(”请输入三个实型数 \n:”); scanf(”%f ,%f,%f”,&a,&b,&c); aver = (a+b+c)/3; // 求平均值 printf(”\n average = %f \n”, aver); }
程序=数据结构+算法
操作的数据对象及其 相互关系和构造方法
问题的求解方法 即加工处理方法
15
算法特征:
• 有穷性:合理算法应在执行有限步后结束
如:N!=1*2*3*…*(N-1)*N 而式子:sum=1+2+3+…+N+… 不能称为算法,因为它执行有限步后仍不能结束
•确定性:算法的规则和步骤的意义唯一,算法的
清华大学 黄维通 设计制作
24
2 标识符
主要用来表示常量、变量、函 数和类型等的名字
不要死记硬背, 自然就会
清华大学 黄维通 设计制作
25
1.5 几个简单程序
【例】显示字符串“Hello World !”