《{企业管理制度}第1章程序设计概述》由会员分享,可在线阅读,更多相关《{企业管理制度}第1章程序设计概述(39页珍藏版)》请在金锄头文库上搜索。
1、C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,C语言程序设计 第1章 程序设计概述,课件制作日期:2013年6月.张磊,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,第1章 程序设计概述,1.1 程序设计语言 1.2 算法 1.3 程序设计与实现 1.4 C语言程序的基本结构,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.1 程序设计语言,程序设计语言: 计算机能够理解和识别的一种语言体系,它按照特定的规则组织计算机指令,使计算机能够自动进行各种操作处理。 计算机程序: 按照程序设计语言的规则组织起来的一组计算机
2、指令。 程序设计语言分类: 机器语言、汇编语言和高级语言。 C 语言属于高级语言,1972年由美国的Dennis Ritchie设计发明。 1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对 C的发展和扩充,制定了C的标准,称为 ANSI C。1987年ANSI又公布了新的标准87 ANSI C。,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.1 程序设计语言,C语言程序示例: 计算1到100的所有自然数的和。,#include int main(void) int i=1,s=0; while(i=100) /* 循环
3、控制 */ s=s+i; /* 数据累加 */ i=i+1; /* 生成下一个要累加的数 */ printf(sum=%dn,s); /* 输出结果 */ return 0; ,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2 算法,1.2.1 算法概念与算法描述 1.2.2 算法的逻辑结构 1.2.4 算法的特性 1.2.4 算法评价,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.1 算法概念与算法描述,算法重要性:程序=数据结构+算法 1算法的概念 算法是求解问题的方法,是在有限步骤内求解某一问题所使用的一组定义明
4、确的规则,是计算机处理问题所需要的具体步骤。 2算法的描述方法 自然语言 流程图 N-S图 PAD图 伪码等。,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.1 算法概念与算法描述, 用自然语言描述算法 “计算1到100的所有自然数的和” 步骤 i和s赋初值,使i=1,s=0; 步骤 判断i的值,若i100 则执行步骤;否则,转步骤; 步骤 s加i; 步骤 i加1,转步骤; 步骤 显示s的值,结束。,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.1 算法概念与算法描述, 用流程图
5、描述算法,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.1 算法概念与算法描述,“计算1100自然数和”的算法,步骤 i=1,s=0; 步骤 若i100 则执行步骤;否则,转步骤; 步骤 s加上i; 步骤 i加上1,转步骤; 步骤 显示s的值,结束,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.1 算法概念与算法描述,(3) 用伪代码描述算法 “计算1到100的所有自然数的和”,begin i=1,s=0 while i100 s=s+i i=i+1 end while ptin
6、t s end,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.2 算法的逻辑结构,顺序结构、分支结构、循环结构是算法的三种基本结构,这三种结构互相结合,可以实现任何逻辑控制。,算法 步骤 输入一个学生两门课的成绩a1,a2; 步骤 计算平均成绩 (a1+a2)/2ave; 步骤 输出平均成绩ave,结束。,问题1-顺序结构:输入一个学生的两门课的成绩,计算出平均成绩。,伪代码 begin intput a1,a2 ave=(a1+a2)/2 print ave end,课件制作日期:2013年6月.张磊,课件制作日期:2013年6月.张
7、磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.2 算法的逻辑结构,问题2-分支结构:输入一个学生的两门课的成绩,若平均成绩不低于90分,则显示“优等生”,否则显示“要加油啊!”,算法 步骤 输入一个学生两门课的成绩a1、a2; 步骤 计算平均成绩(a1+a2)/2ave; 步骤 若ave90,则执行步骤;否则执行步骤; 步骤 输出“优等生”,结束。 步骤 输出“要加油啊!”,结束。,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.2 算法的逻辑结构,问题2-分支结构 输入一个学生的两门课的成绩,若平均成绩不低于9
8、0分,则显示“优等生”,否则显示“要加油啊!”,伪代码描述算法 begin input a1,a2 ave=(a1+a2)/2 if ave90 then print “优等生!” else print “要加油啊!” end,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.2 算法的逻辑结构,问题3-循环结构:按照问题2的标准,统计全班的优等生人数(全班共30人)。,算法 步骤 设置变量count对输入的数据量计数,其初值为1;设置变量result对优等生计数,其初值为0; 步骤 若count30,则执行步骤;否则转步骤; 步骤 输入一个学生两门课的成绩a1、a2; 步骤
9、 计算平均成绩(a1+a2)/2ave; 步骤 若ave90,则执行步骤;否则转步骤; 步骤 result+1result; 步骤 count+1count;转步骤; 步骤 输出统计结果,结束。,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.2 算法的逻辑结构,问题3-循环结构 按照问题2的标准,统计全班的优等生人数(全班共30人)。,伪代码描述 begin count=1,result=0 while count30 input a1,a2 ave=(a1+a1)/2 if ave90 then result=result+1 count=count+1 end whi
10、le print result end,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.2 算法的逻辑结构,算法逻辑结构框图, 顺序结构,顺序结构传统流程图 顺序结构N-S图,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.2 算法的逻辑结构,算法逻辑结构框图,(2) 分支结构,分支结构流程图 分支结构N-S图,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.2 算法的逻辑结构,算法逻辑结构框图,(3) 循环结构,循环结构流程图
11、 循环结构N-S图,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.3 算法的特性,算法特性 有穷性:经过有限步骤解决问题。 确定性:每个步骤所规定的操作必须是确定的。 有效性:每一个步骤必须能够有效地执行 。 输入和输出特性。有零个或多个输入,有一个或多个输出。,还应注意 算法的多样性:一个具体问题可以有不同的解决方法,因此可以设计解决问题的不同算法。 算法的通用性:一个算法应是适用于某类问题,而不只是适用于某一个问题。,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.2.4 算法评价
12、,算法复杂程度 算法的时间复杂性:规模与执行速度关系 算法空间复杂性:对系统资源的需求程度 算法的通用性 正确和清晰易读永远是一个好算法的基本条件。,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.3 程序设计与实现,1.3.1 程序设计的基本过程 1.3.2 使用VisualC+ 6.0实现C语言程序 1.3.3 程序设计示例,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.3.1 程序设计的基本过程,分析要处理的问题涉及的各种概念、数据特点、已知条件、所求结果,以及已知条件与所求结果之间
13、的关系等各方面的信息。 明确:要做什么?,确定具体的算法,并选择合适的算法表达工具对算法进行描述。,用程序设计语言的语句和命令实现算法的每一个步骤。,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.3.2 使用VC+ 6.0实现C语言程序,使用VC+ 6.0实现C程序的基本步骤有4个: 1建立源程序文件,3构建可执行文件,2编译源程序,4运行可执行文件,启动VC+ 6.0系统 使用“File”“New”命令,打开VC+ 6.0的程序编辑窗口 录入编辑源程序,保存文件,使用“Build”“Compile”命令对源程序进行编译,生成二进制目标代码
14、文件。,程序通过编译之后,使用“Build”“Build”命令将编译阶段生成的目标文件和系统的库函数文件等连接起来,生成扩展名是“.exe”的可执行文件。,使用“Build”“!Execute”命令运行程序,获得执行结果。,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.3.3 程序设计示例,例1-1 设计计算矩形面积的程序。,3编写程序,2算法设计,4调试运行程序,1问题分析, 设矩形的边长为a和b、矩形面积为s,则s=ab。 通过键盘输入等方式为矩形边长a、b提供数据。 程序执行后要输出计算结果。 2算法设计 3编写程序 4调试运行程序,
15、 假设该矩形都是整型数据,因此,要使用int对a、b、s进行说明。 使用scanf()函数输入数据a、b。 使用“s=a*b”计算矩形面积,并存储到s中。 使用printf()函数输出计算结果s。 把上面的一些具体语句放在main()函数中。 程序清单,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.3.3 程序设计示例,/* program e1-1.c */ #include int main() int a,b,s; printf(Input a,b: ); scanf(%d,%d, ,C语言程序设计-理论、方法与实践 张磊编著 清华大
16、学出版社,1.3.3 程序设计示例,4调试运行程序,例1-1 设计计算矩形面积的程序。, 建立源程序文件。 启动VC+ 6.0,使用“File”“New”命令,打开 “new”窗口,选用“Files”选项卡,在主窗口中选择“C+ Source File”项,在“File”对话框中输入文件名,在“Location”对话框中指定文件的存储位置。,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.3.3 程序设计示例,4调试运行程序,例1-1 设计计算矩形面积的程序。, 建立源程序文件 单击“OK”按钮,打开程序编辑窗口录入编辑源程序,并及时存盘。,课件制作日期:2013年6月.张磊,C语言程序设计-理论、方法与实践 张磊编著 清华大学出版社,1.3.3 程序设计示例,4调试运行程序,例1-1 设计计算矩形面积的程序。, 建立源程序文件 编译源程序 程序编辑完成后,使用“Build”“C