《C语言程序设计PPT课件 第1章 程序设计概述》由会员分享,可在线阅读,更多相关《C语言程序设计PPT课件 第1章 程序设计概述(33页珍藏版)》请在金锄头文库上搜索。
1、C语言程序设计-理论、方法与实践(第2版) 张磊编著,C语言程序设计第1章 程序设计概述,C语言程序设计-理论、方法与实践(第2版) 张磊编著,第1章 程序设计概述,1.1 程序设计语言 1.2 算法 1.3 程序设计与实现 1.4 C语言程序的基本结构,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.1 程序设计语言,程序设计语言:程序设计语言是用来编写计算机程序的语言,它按照特定的规则组织计算机指令,使计算机能够自动进行各种操作处理。 计算机程序: 按照程序设计语言的规则组织起来的一组计算机指令。 程序设计语言分类: 机器语言、汇编语言和高级语言。 C 语言属于高级语言,1972
2、年由美国的Dennis Ritchie设计发明。 1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对 C的发展和扩充,制定了C的标准,称为 ANSI C。1987年ANSI又公布了新的标准87 ANSI C。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.1 程序设计语言,C语言程序示例: 计算1到100的所有自然数的和。,#include int main(void) int i=1,s=0;while(i=100) /* 循环控制 */s=s+i; /* 数据累加 */i=i+1; /* 生成下一个要累加的数 */ printf(“sum=%dn“,s);
3、/* 输出结果 */return 0; ,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2 算法,1.2.1 算法概念与算法描述 1.2.2 算法的逻辑结构 1.2.4 算法的特性 1.2.4 算法评价,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2.1 算法概念与算法描述,算法重要性:程序=数据结构+算法 1算法的概念 算法是为计算机处理问题所设计的解题步骤。算法的最终实现是计算机程序。 2算法的描述方法 自然语言 流程图 N-S图 PAD图 伪码等。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2.1 算法概念与算法描述, 用自然语言描述算法 “计算
4、1到100的所有自然数的和” 步骤 i和s赋初值,使i=1,s=0; 步骤 判断i的值,若i100 则执行步骤;否则,转步骤; 步骤 s加i; 步骤 i加1,转步骤; 步骤 显示s的值,结束。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2.1 算法概念与算法描述, 用流程图描述算法,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2.1 算法概念与算法描述,“计算1100自然数和”的算法,步骤 i=1,s=0; 步骤 若i100 则执行步骤;否则,转步骤; 步骤 s+i; 步骤 i+1,转步骤; 步骤 显示s的值,结束,C语言程序设计-理论、方法与实践(第2版) 张磊
5、编著,1.2.2 算法的逻辑结构,算法的三种结构 顺序结构 分支结构 循环结构 三种结构互相结合,可以实现任何逻辑控制,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2.2 算法的逻辑结构,1、顺序结构 特点:各个步骤由前到后依次执行,每个步骤都执行一次。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2.2 算法的逻辑结构,1、顺序结构举例:输入一个学生的两门课程的成绩,计算并输出平均成绩。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2.2 算法的逻辑结构,2、选择结构 特点:某些步骤是否能够执行,要视当前的条件而定,在同一次处理中,有的步骤可能执行不
6、到。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2.2 算法的逻辑结构,2、选择结构,举例:输入一个学生两门课程的成绩,若平均成绩不低于90,则输出“优等生”;否则,输出“加油!”。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2.2 算法的逻辑结构,3、循环结构 特点:有些步骤会被有条件地重复执行(被重复执行的步骤每次处理的数据也可能发生变化)。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2.2 算法的逻辑结构,3、循环结构,举例: 计算1100自然数和。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2.3 算法的特性,算法特性 有
7、穷性:一个算法必须经过有限步骤之后结束。“有限步骤”,既指步骤量有限,同时也要求步骤量合理。 确定性:每一个步骤所规定的操作必须是确定的,不能有二义性。 有效性:每一个步骤描述的操作必须能够通过已经实现的基本运算有效地执行,并且得到确定的结果。 输入和输出特性。每个有意义的算法有零个或多个输入,并且有一个或多个输出。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.2.4 算法评价, 时间复杂性 算法执行时间与问题规模的关系,是算法执行效率指标。 空间复杂性 算法对计算机内存的需求程度,需求越少越好。 可读性 算法可供人们阅读的容易程度。 健壮性(容错性) 算法对不合理的输入数据的反
8、应能力和处理能力。 通用性 算法适应一类问题,而不是某个特定问题。 正确性 算法最根本的评价指标,指算法的执行结果满足预先规定的功能和性能要求。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.3 程序设计与实现,1.3.1 程序设计的基本过程 1.3.2 编辑运行C语言程序,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.3.1 程序设计的基本过程,分析要处理的问题涉及的各种概念、数据特点、已知条件、所求结果,以及已知条件与所求结果之间的关系等各方面的信息。 明确:要做什么?,确定具体的算法,并选择合适的算法表达工具对算法进行描述。,用程序设计语言的语句和命令实现算法的每
9、一个步骤。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.3.2 编辑运行C语言程序,使用VC+ 6.0实现C程序的基本步骤有4个: 1建立源程序文件,3构建可执行文件,2编译源程序,4运行可执行文件,启动VC+ 6.0系统 使用“File”“New”命令,打开VC+ 6.0的程序编辑窗口 录入编辑源程序,保存文件,使用“Build”“Compile”命令对源程序进行编译,生成二进制目标代码文件。,程序通过编译之后,使用“Build”“Build”命令将编译阶段生成的目标文件和系统的库函数文件等连接起来,生成扩展名是“.exe”的可执行文件。,使用“Build”“!Execute”
10、命令运行程序,获得执行结果。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.3.2 编辑运行C语言程序,例1-1 使用VC+编辑运行自然数累加程序。, 建立源程序文件。 启动VC+ 6.0,使用“File”“New”命令,打开 “new”窗口,选用“Files”选项卡,在主窗口中选择“C+ Source File”项,在“File”对话框中输入文件名,在“Location”对话框中指定文件的存储位置。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.3.2 编辑运行C语言程序, 建立源程序文件 单击“OK”按钮,打开程序编辑窗口录入编辑源程序,并及时存盘。,C语言程序设计
11、-理论、方法与实践(第2版) 张磊编著,1.3.2 编辑运行C语言程序, 建立源程序文件。 编译源程序 程序编辑完成后,使用“Build”“Compile ”命令编译,执行“Build”“Compile”命令后的提示信息,编译结果显示在编译报告窗口,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.3.2 编辑运行C语言程序, 建立源程序文件。 编译源程序。 构建可执行文件。 程序编译完成后,使用“Build”“Build ”构建可执行文件。 运行可执行文件。 成功构建可执行文件之后,使用“Build”“!Execute”命令即可运行程序。,C语言程序设计-理论、方法与实践(第2版)
12、张磊编著,1.4 C语言程序的基本结构,1.4.1 程序的函数化结构 1.4.2 标识符与保留字 1.4.3 程序风格,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.4 1 程序的函数化结构,1简单C语言程序的结构 C语言程序是由函数构成的,任何一个C语言程序都有一个称为主函数的main()函数。 main()函数的一般结构: int main() 函数体 ,例1-2 更简单的C程序。 #include int main() printf(“Hello!n“);return 0; ,特别强调: 任何一个C语言程序,main()函数都是不可缺少的,当一个C语言程序只有一个函数模块时,
13、这个函数必然是main()函数。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.4.1 程序的函数化结构,2C语言程序的一般结构 一个C语言程序,在结构上不仅要有main()函数,还可以包括其他独立的函数,一个函数可以在另一个函数中被使用。,例1-3 输出图案程序。 #include int main(void) /* 主函数 */ void p_s(void);p_s(); p_s(); p_s(); return 0; void p_s() /* 其他函数 */ printf(“$#$n“); ,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.4.1 程序的函数化结构
14、,3C语言程序的基本特点 C语言程序由函数构成,而且每个程序可以有多个函数。 一个源程序不论由多少个函数组成,有且只能有一个main()函数,而且main()函数可以放在程序的任何位置。 一个源程序无论由多少个函数构成,总是从main()函数开始执行程序,与main()函数在程序中的位置无关。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.4.2 标识符与保留字,1. 标识符 在程序中使用的变量名、函数名等。 标识符构成 任何一个标识符只能是由字母(AZ,az)、数字(09)和下划线“_”构成的字符串,其他符号不能出现在标识符中,并且标识符的第一个字符必须是字母或下划线。 合法标识
15、符 a BOOK1 max _add num_1 非法标识符 3sum 不允许以数字开头 ab#cd 使用了非法字符“#” book-1 出现非法字符“-”(减号),注意: 两个标识符中的字母相同而大小写形式不同时,C语言认为是两个不同的标识符。 标识符命名应尽量有相应的意义,以便阅读理解。 建议初学者尽量使用较短而有意义的标识符,既便于上机训练,也会使程序更清晰。,2保留字 由语言规定的用于定义变量类型、命令字等具有特定意义的标识符。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,1.4.3 程序风格, 如果一行能够容下一个语句,那么就让这个语句独占一行。 用 括起来的部分,通常表示
16、了程序的某一层次结构。“”和“”一般与该结构语句的第一个字母对齐,并单独占一行。 低一层次的语句应比高一层次的语句缩进若干列后书写,以便看起来更加清晰。 要在程序的开始或者在程序的关键位置使用注释,以提高程序的可读性。,C语言程序设计-理论、方法与实践(第2版) 张磊编著,小结(1),( 1) 算法是逐步求解问题的方法,是计算机处理问题所需要的具体步骤。流程图、伪代码是常用的描述算法方法。 (2) 顺序结构、分支结构和循环结构是算法的三种基本结构。 (3) 结构化程序设计步骤:问题分析、算法设计、编写程序、调试运行程序。 (4) 实现C语言程序步骤:建立源程序、编译源程序、构建可执行文件、运行程序。,