Presentation is loading. Please wait.

Presentation is loading. Please wait.

培养目标 1.建立基本的程序设计概念体系,掌握基础程序设计方法。

Similar presentations


Presentation on theme: "培养目标 1.建立基本的程序设计概念体系,掌握基础程序设计方法。"— Presentation transcript:

1 主讲: 许恒迎 xuelang8@gmail.com 办公室:10B502

2 培养目标 1.建立基本的程序设计概念体系,掌握基础程序设计方法。
2 .理解和掌握C语言的基本语法和语义,掌握数组、函数和指针的应用,初步掌握面向过程程序设计的方法。 3 .逐步提高学生的编程能力和调试程序的能力,为将来的学习和就业打好基础。

3 1.一定要有独立的人格、独立的思想。一个经过独立思考而坚持错误观点的人比一个不假思索而接受正确观点的人更值得肯定。不要成为灌输教育的牺牲品。
3.专业无冷热,学校无高低。没有哪个用人单位会认为你代表了你的学校或者你的专业。千万不要因为你是名牌大学或者热门专业而沾沾自喜,也大可不必因为你的学校不好或者专业冷门而自卑。 4.千招会,不如一招熟。十个百分之十并不是百分之百,而是零。如果你有十项工作每项都会做百分之十,那么,在用人单位眼中,你什么都不会。所以,你必须要让自己具备核心竞争力。“通才”只有在“专才”的基础上才有意义。 6.一定要学会理财。对于贫困生来说,首先要做的不是挣钱,而是省钱。很多大学生读书的时候一掷千金,可是,毕业以后一个月的工资还不够交半个月的房租。  7.大部分女生将电脑当成了影碟机,大部分男生将电脑当成了游戏机。大学生要掌握必要的计算机操作能力,但是,很多时候电脑会成为浪费时间的堂而皇之的借口。有电脑的大学生非常多,可是,这中间很多人可能大学毕业的时候还不会Excel,不会做一个像样的PPT. 题外话

4     9.互联网固然威力无穷,但是,如果你沉迷于网络聊天,或者沉迷于网络游戏,浪费的金钱倒是可以弥补,荒废的青春就无可追寻了。轻舞飞扬已经红颜薄命了,而痞子蔡却继续跟别的女孩发生着一次又一次的亲密接触。对于很多大学生而言,网吧就是一个血淋淋的黑洞。     11.研究生扩招的速度是30%,也就意味着硕士学历贬值的速度是30%。千万不要以为考研究生就是积极进取的表现。对于很多人而言,考研不过是一种消极逃避的方式罢了。对于绝大多数人而言,读研究生纯粹是浪费时间浪费金钱,立志从事科研、学术的人及其他少数人除外。     题外话

5     18.大学期间一定要多去图书馆多去自习室。很多书你现在不读,一辈子就再也没有机会去读了。虽然不是每本书看了都一定有用,但是,因为你不知道究竟哪本书以后会有用,所以只好多看书,并且抛弃那些过于功利的想法。尽管每次网到鱼的不过是一个网眼,但要想捕到鱼,就必须要编织一张网。 题外话

6 课时安排 第五章选择 2(1节上机) 第六章循环 4(1节上机) 第七章数组 6(2节上机) 第八章函数 6 (2节上机) 第九章预处理 1
第十章指针 7 (2节上机) 第十一章结构体 6 (1节上机) 第十二章位运算 第十三章文件 2 第十四章常见错误 习题课+答疑 58学时,48学时授课 10学时上机。 具体上机时间:待定 第一章概述 2 第二章算法 3 第三章数据类型 3(1节上机) 第四章简单程序

7 学习方法 编程能力的提高需要慢慢积累,不能急功近利 “三分编程七分调试”,多上机,理解程序执行过程 多看课本,牢记具体语法,理解基本概念

8 C语言程序设计入门学习六步曲 第一步、验证性练习      在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用方法(包括新建、打开、保存、关闭C程序,熟练地输入、编辑C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格)。 教材上的数字1和字母l,字母o和数字0的区别 英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号,分号;括号(),双引号“”造成非法字符错误。 

9 第二步、照葫芦画瓢      在第一步输入的C程序的基础上进行试验性的修改,运行一下程序看一看程序结果发生了什么变化,分析结果变化的原因,加深新学知识点的理解。事实上这和第一步时同步进行的,实现“输入”加深知识的记忆,“修改”加深对知识的理解。记忆和理解是相辅相成的,相互促进。 例如:将最简单的Hello World!程序 #include "stdio.h" int main() {     printf("Hello World!\n");     return 0; } 中的 printf("Hello World!\n"); 中的Hello World!改成你的姓名,运行一下程序,看有什么变化?

10 第三步、不看教材看是否能将前两步的程序进行正 确地输入并运行。     在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对前两步的记忆、理解进一步强化。
第四步、增强程序的调试能力     在教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。 例如,将Hello World程序中语句printf("Hello World!\n"); 中的;改成中文的分号; 运行一下程序,看有什么结果?

11 第五步、研究典型的C语言程序,提高程序设计能力
    在教材上有很多经典的源程序,研究它的实现方法,提高自己的程序设计能力。   第六步、研究课程设计源成序,提高C语言的综合应用能力。     逐步提高综合编程能力。

12 参考资料 全国计算机等级考试二级C语言教程

13 第一章 C语言概述

14 C语言的特点 C程序的结构 在计算机上运行C程序的方法
本章要点 C语言的特点 C程序的结构 在计算机上运行C程序的方法

15 主要内容 引言 硬件、软件、程序 1.1 计算机程序设计语言的发展 1.2 面向过程的程序设计方法 1.3 C语言出现的历史背景
1.4 C程序的特点 1.5 简单的C语言程序介绍 1.6 运行C程序的步骤和方法

16 1.硬件 引言、硬件、软件和程序 硬件:计算机及其它直接参与数据运算或信息交流的物理设备 。硬件就是设备。

17 2.软件 引言、硬件、软件和程序 软件:控制计算机硬件功能及其运行的指令、例行程序和符号语言。软件是用来控制硬件运行的。
譬如汽车,其本身自然是硬件,但关于驾驶车的那一套技术,及有关交通规则,我们可称为软件,因为后者控制了前者的运行方式。 说软件看不见摸不着其实也正确。因为它们是思想,精神,规则,逻辑。本身是抽象的,确实不可触及。但软件总是要有载体来存放,要有表达或表现方式,这些使得它们变得形象具体起来。

18 3.程序 引言、硬件、软件和程序 程序是一组按照一定的逻辑的进行组合的指令。
因此,在以后的学习过程上,很多时候,我们会觉得程序就是指令;同样很多时候,我们会觉得程序就是逻辑。 当然,更多的时候,我们并不区分程序和软件二者。也许前者更趋于抽象,而后者趋于具体。比如我们在写那些表达我们的思想逻辑时,我们喜欢说“写程序”;而当程序完成,可以待价而沽时,我们称它为软件产品。

19 程序(或软件)是用计算机语言写出来的。 写一个程序,大致是这么一个过程: 人有一个问题或需求,想用计算机解决…… 人想出解决问题或实现需求的思路…… 人将思路抽象成数学方法和逻辑表达或某种流程的模式…… 程序员将数学方法,逻辑表达中的数据和流程用计算机语言表达,称为代码…… 引言、硬件、软件和程序

20 1、机器语言 11110100 由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。 一、计算机程序设计语言的发展
计算机发展的初期,软件工程师们只能用机器语言来编写程序。这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟。 (如用孔表示1,则左图表示三行数110,011,101)

21 2、汇编语言 汇编语言将机器指令映射为一些可以被人读懂的助记符,如ADD、SUB等。 一、计算机程序设计语言的发展
此时编程语言与人类自然语言间的鸿沟略有缩小,但仍与人类的思维相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节。 已知b 等于 1; c等于2; 然后计算 b + c 值,并将该值赋给 a 。 把这段代码的机器语言(左)和汇编语言(右)进行对照,你可看出二者各自特点。 mov edx,[ebp-0x3c]   add edx,[ebp-0x40] mov [ebp-0x38],edx 一、计算机程序设计语言的发展

22 2、高级语言 一、计算机程序设计语言的发展 高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。 例如 if y<3 z=x+y; 类似英语和数学表达式

23 3、高级语言的发展 一、计算机程序设计语言的发展 第一代语言对数学表达式有很强的运算能力,代表是Fortran和Algol 60
第二代语言的重点在于如何有效地表达算法,代表是Pascal和C(1973,贝尔实验室) 第三代语言引入抽象数据类型的程序设计语言,代表是Ada 第四代面向对象程序设计的语言,代表是Smalltalk、C++(1983,贝尔实验室)、Java

24 面向过程的结构化程序设计方法 二、面向过程的程序设计方法 程序的目的:用于数学计算 主要工作:设计求解问题的过程 程序结构:
按功能划分为若干个基本模块,形成一个树状结构。 各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。 其模块化实现的具体方法是使用子程序。

25 面向过程的结构化程序设计方法 二、面向过程的程序设计方法 设计思路 自顶向下、逐步求精。采用模块分解与功能抽象,分而治之。

26 优点: 有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。 二、面向过程的程序设计方法

27 二、面向过程的程序设计方法

28 二、面向过程的程序设计方法 数据采集系统 实时采集 实时显示 数据存储

29 C语言是国际上广泛流行的高级语言。 C语言是在B语言的基础上发展起来的。 B (BCPL)语言是1970年由美国贝尔实验室设计的, 并用于编写了第一个UNIX操作系统,在PDP 7上实现。优点:精练,接近硬件,缺点:过于简单,数据无类型。 1973年贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言,对B取长补短,并用之改写了原来用汇编编写的UNIX,(即UNIX第5版),但仅在贝尔实验室使用。 三、C语言出现的历史背景

30 1975年UNIX第6版发布,C优点突出引起关注。 1977年出现了《可移植C语言编译程序》 ,推动了UNIX在各种机器上实现 ,C语言也得到推广,其发展相辅相成。 1978年影响深远的名著《The C Programming Language》由 Brian W.Kernighan和Dennis M.Ritchie 合著,被称为标准C。 之后,C语言先后移植到大、中、小、微型计算机上,已独立于UNIX和PDP,风靡世界,成为最广泛的几种计算机语言之一。 三、C语言出现的历史背景

31 1983年,美国国家标准化协会(ANSI)根据C语言各种版本对C的发展和扩充,制定了新的标准ANSI C ,比标准C有了很大的发展。
1988年K & R按照 ANSI C修改了他们的《The C Programming Language》。 1987年,ANSI公布了新标准——87 ANSI C。 1990年,国际标准化组织接受了87 ANSI C为ISO C 的标准(ISO9899—1990)。 1994年,ISO又修订了C语言标准。 目前流行的C语言编译系统大多是以ANSI C为基础进行开发的。 三、C语言出现的历史背景

32 三、C语言出现的历史背景 说明: 不同版本的C编译系统所实现的语言功能和语法规则又略有差别,因此读者应了解所用的C语言编译系统的特点(可以参阅有关手册)。本书的叙述基本上以ANSI C 为基础。

33 四、C语言的特点 (1)语言简洁、紧凑,使用方便、灵活。 32个关键字、9种控制语句,程序形式自由 (2)运算符丰富。34种运算符 (3)数据类型丰富,具有现代语言的各种数据结构。 (4)具有结构化的控制语句 ,是完全模块化和结构化的语言。 (5)语法限制不太严格,程序设计自由度大。

34 (6)允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可直接对硬件进行操作。兼有高级和低级语言的特点 。
(7)目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率低10%-20%。 (8)程序可移植性好(与汇编语言比)。基本上不做修改就能用于各种型号的计算机和各种操作系统。 四、C语言的特点

35 问题:既然有了面向对象的C++语言,为什么还要学习C语言?
四、C语言的特点 问题:既然有了面向对象的C++语言,为什么还要学习C语言? 解释1:C++是由于开发大型应用软件的需要而产生的,并不是所有的人都要去编写大型软件; 解释2:面向对象的基础是面向过程。C++是面向对象的语言,C是面向过程的,学起来比C语言困难得多,所以不太适合程序设计的初学者。

36 #include <stdio.h> void main( ) {
说明: 本程序的作用是输出一行信息: This is a C program. §1-3 简单的C语言程序介绍 #include <stdio.h> void main( ) { printf ("This is a C program.\n"); } /*文件包含*/ /*主函数 */ /*函数体开始*/ /*输出语句*/ /*函数体结束*/ 四、C语言的特点 说明: main-主函数名, void-函数类型 每个C程序必须有一个主函数main { }是函数开始和结束的标志,不可省 每个C语句以分号结束 使用标准库函数时应在程序开头一行写: #include <stdio.h>

37 说明: 输出一行信息:sum is 579 例1.2 求两数之和 #include <stdio.h> void main( ) /*求两数之和*/ { int a,b,sum; /*声明,定义变量为整型*/ /*以下3行为C语句 */ a=123; b=456; sum=a+b; printf(″sum is %d\n″,sum); } 四、C语言的特点 说明: /*……*/表示注释。注释只是给人看的,对编译和运行不起作用。所以可以用汉字或英文字符表示,可以出现在一行中的最右侧,也可以单独成为一行。

38 int max(int x, int y) { int z; if (x>y) z=x; else z=y; return (z);
程序运行情况如下: 8,5 ↙(输入8和5赋给a和b) max=8 (输出c的值) 例1.3 求3个数中较大者。 #include <stdio.h> void main( ) /* 主函数*/ { int max(int x,int y); / 对被调用函数max的声明 */ int a, b, c; /*定义变量a、b、c */ scanf(″%d,%d″,&a,&b); /*输入变量a和b的值*/ c=max(a,b); /*调用max函数,将得到的值赋给c */ printf(″max=%d\\n″,c); /*输出c的值*/ } 四、C语言的特点 max(a,b); int max(int x, int y) { int z; if (x>y) z=x; else z=y; return (z); } 说明:本程序包括main和被调用函数max两个函数。max函数的作用是将x和y中较大者的值赋给变量z。return语句将z的值返回给主调函数main。

39 C程序: (1) C程序是由函数构成的。 这使得程序容易实现模块化。 (2) 一个函数由两部分组成: 函数的首部:例1.3中的max函数首部 int max(int x,int y ) 函数体:花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。 函数体包括两部分 : 声明部分:int a,b,c; 可缺省 执行部分:由若干个语句组成。可缺省 五、简单的C语言程序介绍

40 注意: 五、简单的C语言程序介绍 函数的声明部分和执行部分都可缺省,例如: void dump ( ) { }
这是一个空函数,什么也不做,但是它是合法的函数。

41 C的程序书写格式 五、简单的C语言程序介绍 一般情况下每个语句占一行 不同结构层次的语句,从不同层次起始位置开始 大括号占一行
适当添加空格、空行

42 小结: 五、简单的C语言程序介绍 (3) C程序总是从main函数开始执行的,与main函数的位置无关。
(5) 每个语句和数据声明的最后必须有一个分号。 (6) C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。C对输入输出实行“函数化”。

43 一、运行C程序的步骤 上机输入与编辑源程序 对源程序进行编译 与库函数连接 运行目标程序 六、运行C程序的步骤和方法

44 二、上机运行C程序的方法 六、运行C程序的步骤和方法
目前使用的大多数C编译系统都是集成环境(IDE)的。可以用不同的编译系统对C程序进行操作 常用的有Turbo C 2.0、Turbo C++ 3.0、Visual C++等 Turbo C 2.0:是一个集成环境,它具有方便、直观和易用的界面。 路径设置: 设置方法为: OPTION->DIRECTORIES: INCLUDE: [TC2/3所在目录]/include LIB: [TC2/3所在目录]/lib output输出目录请自己设置一个工作目录,以免混在一起。 最后还提醒一点:FILES中的Change dir(改变当前目录)中应设置为当前程序所在目录。 六、运行C程序的步骤和方法

45 例:Turbo C 2.0的安装和启动 六、运行C程序的步骤和方法
运行Turbo C2.0时, 只要在TC 子目录下键入TC并回车即可进入Turbo C 2. 0 集成开发环境。 六、运行C程序的步骤和方法

46 其中顶上一行为Turbo C 2.0 主菜单, 中间窗口为编辑区, 接下来是信息窗口, 最底下一行为参考行。这四个窗口构成了Turbo C 2.0的主屏幕, 以后的编程、编译、调试以及运行都将在这个主屏幕中进行。下面详细介绍主菜单的内容 六、运行C程序的步骤和方法 主菜单   主菜单在Turbo C 2.0主屏幕顶上一行, 显示下列内容:File Edit Run Compile Project Options Debug Break/watch   除Edit外, 其它各项均有子菜单, 只要用Alt加上某项中第一个字母(即大写字母), 就可进入该项的子菜单中。 a. File (文件)菜单 ----按Alt+F可进入File菜单, 该菜单包括以下内容:

47 Load (加载) 装入一个文件, 可用类似DOS的通配符(如
Load (加载) 装入一个文件, 可用类似DOS的通配符(如*.C)来进行列表选择。也可装入其它扩展名的文件, 只要给出文件名(或只给路径)即可。该项的热键为F3, 即只要在主菜单中按F3即可进入该项, 而不需要先进入File菜单再选此项。 .Pick (选择) 将最近装入编辑窗口的8个文件列成一个表让用户选择, 选择后将该程序装入编辑区, 并将光标置在上次修改过的地方。其热健为Alt-F3。 .New (新文件) 说明文件是新的, 缺省文件名为NONAME.C, 存盘时可改名。 .Save (存盘) 将编辑区中的文件存盘, 若文件名是NONAME.C时, 将询问是否更改文件名, 其热键为F2。 六、运行C程序的步骤和方法

48 六、运行C程序的步骤和方法 .Write to (存盘) 可由用户给出文件名将编辑区中的文件存盘, 若该文件已存在, 则询问要不要覆盖。
.Directory (目录) 显示目录及目录中的文件, 并可由用户选择。 .Change dir (改变目录) 显示当前目录, 用户可以改变显示的目录。 .Os shell (暂时退出) 暂时退出Turbo C 2.0到DOS提示符下, 此时可以运行DOS 命令, 若想回到Turbo C 2.0中, 只要在DOS状态下键入EXIT即可。 .Quit (退出) 退出Turbo C 2.0, 返回到DOS操作系统中, 其热键为Alt+X。 说明: 以上各项可用光标键移动色棒进行选择, 回车则执行。也可用每一项的第一个大写字母直接选择。若要退到主菜单或从它的下一级菜单列表框退回均可用Esc键,Turbo C 2.0所有菜单均采用这种方法进行操作, 以下不再说明。 六、运行C程序的步骤和方法

49 b.Edit (编辑)菜单---按Alt+E可进入编辑菜单, 若再回车, 则光标出现在编辑窗口, 此时用户可以进行文本编辑。编辑方法基本与wordstar相同,
可用F1键获得有关编辑方法的帮助信息。与编辑有关的功能键如下: F1 获得Turbo C 2.0编辑命令的帮助信息 F5 扩大编辑窗口到整个屏幕 F6 在编辑窗口与信息窗口之间进行切换 F10 从编辑窗口转到主菜单 六、运行C程序的步骤和方法

50 六、运行C程序的步骤和方法 c.Run (运行)菜单---按Alt+R可进入Run菜单, 该菜单有以下各项:
.Run (运行程序) 运行由Project/Project name项指定的文件名或当前编辑区的文件。如果对上次编译后的源代码未做过修改, 则直接运行到下一个断点(没有断点则运行到结束)。否则先进行编译、连接后才运行, 其热键为Ctrl+F9。 .Program reset (程序重启) 中止当前的调试, 释放分给程序的空间, 其热键为Ctrl+F2。 .Go to cursor (运行到光标处) 调试程序时使用, 选择该项可使程序运行到光标所在行。光标所在行必须为一条可执行语句, 否则提示错误。其热键为F4。 .Trace into (跟踪进入) 在执行一条调用其它用户定义的子函数时, 若用Trace into项, 则执行长条将跟踪到该子函数内部去执行, 其热键为F7。 .Step over (单步执行) 执行当前函数的下一条语句, 即使用户函数调用, 执行长条也不会跟踪进函数内部, 其热键为F8。 .User screen (用户屏幕) 显示程序运行时在屏幕上显示的结果。其热键为Alt+F5。 六、运行C程序的步骤和方法

51 六、运行C程序的步骤和方法 d.Compile (编译)菜单---按Alt+C可进入Compile菜单, 该菜单有以下几个内容:
.Compile to OBJ (编译生成目标码) 将一个C源文件编译生成.OBJ目标文件, 同时显示生成的文件名。其热键为Alt+F9。 .Make EXE file (生成执行文件) 此命令生成一个.EXE的文件, 并显示生成的.EXE文件名。其中.EXE文件名是下面几项之一。 a. 由Project/Project name说明的项目文件名。 b. 若没有项目文件名, 则由Primary C file说明的源文件。 c. 若以上两项都没有文件名, 则为当前窗口的文件名。 .Link EXE file (连接生成执行文件) 把当前.OBJ文件及库文件连接在一起生成.EXE文件。 .Build all (建立所有文件) 重新编译项目里的所有文件, 并进行装配生成.EXE文件。该命令不作过时检查(上面的几条命令要作过时检查, 即如果目前项目里源文件的日期和时间与目标文件相同或更早, 则拒绝对源文件进行编译)。 .Primary C file (主C文件) 当在该项中指定了主文件后, 在以后的编译中, 如没有项目文件名则编译此项中规定的主C文件, 如果编译中有错误, 则将此文件调入编辑窗口, 不管目前窗口中是不是主C文件。 .Get info 获得有关当前路径、源文件名、源文件字节大小、编译中的错误数目、可用空间等信息。 六、运行C程序的步骤和方法

52 (3) 对源程序进行编译 选择“Compile”(或“Alt+F9”)对源程序进行编译。 六、运行C程序的步骤和方法

53 选择菜单“Compile” →“Link” ,如果不出现错误,会得到一个后缀为.exe的可执行文件。
(4) 将目标程序进行连接 选择菜单“Compile” →“Link” ,如果不出现错误,会得到一个后缀为.exe的可执行文件。 六、运行C程序的步骤和方法 (5) 执行程序。 选菜单“Run” →“Run”( 或按“Ctrl+F9” 键)。

54 六、运行C程序的步骤和方法 (6) 退出Turbo C2.0环境 选择“File”→“Quit” 。


Download ppt "培养目标 1.建立基本的程序设计概念体系,掌握基础程序设计方法。"

Similar presentations


Ads by Google