C程序设计教程修改版课件.pptx

上传人:飞****2 文档编号:69945483 上传时间:2023-01-12 格式:PPTX 页数:41 大小:148.79KB
返回 下载 相关 举报
C程序设计教程修改版课件.pptx_第1页
第1页 / 共41页
C程序设计教程修改版课件.pptx_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《C程序设计教程修改版课件.pptx》由会员分享,可在线阅读,更多相关《C程序设计教程修改版课件.pptx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、06:39:031第一章 概述1.1.程序设计语言的发展程序设计语言的发展2.C+2.C+语言发展历史语言发展历史3.C+3.C+编程流程编程流程4.4.程序与算法程序与算法5.5.过程化程序设计过程化程序设计6.6.对象化程序设计对象化程序设计06:39:0321.程序设计语言的发展*程序设计(编程)语言:人类与计算机交流的工具。程序设计(编程)语言:人类与计算机交流的工具。*计算机的工作是用程序来控制的。计算机的工作是用程序来控制的。*程序:软件程序:软件u对人而言:对人而言:用计算机语言编写的语句序列用计算机语言编写的语句序列 u对机器而言:按硬件设计规范编制的指令序列对机器而言:按硬件

2、设计规范编制的指令序列(即:机即:机器指令序列器指令序列)*指令是计算机可以识别的命令。指令是计算机可以识别的命令。06:39:033机器语言*由计算机硬件系统可以识别的二进制指令组成由计算机硬件系统可以识别的二进制指令组成的语言称为的语言称为机器语言机器语言*例如:例如:u0100 00000100 0000u把寄存器把寄存器eaxeax的值加的值加1 1;*缺点:难懂,不易修改,移植性差缺点:难懂,不易修改,移植性差*优点:可直接执行,运行效率高优点:可直接执行,运行效率高06:39:034汇编语言*汇编语言汇编语言将机器指令映射为一些可以被人读懂将机器指令映射为一些可以被人读懂的助记符,

3、如的助记符,如ADDADD、SUBSUB等。等。*例如:例如:uINC EAX;INC EAX;(0100 0000)(0100 0000)*不能直接执行,需要经过不能直接执行,需要经过汇编汇编,变成机器语言,变成机器语言程序。程序。*抽象层次很低,仍然是低级语言。抽象层次很低,仍然是低级语言。06:39:035汇编语言(续)a=3*aa=3*a2*b+12*b+1汇编语言和某个特定的机器语言:汇编语言和某个特定的机器语言:mov eax,DWORD PTR amov eax,DWORD PTR a$ebp 8b 45 fc$ebp 8b 45 fclea eax,DWORD PTR eax+

4、eax*2 8d 04 40lea eax,DWORD PTR eax+eax*2 8d 04 40mov ecx,DWORD PTR bmov ecx,DWORD PTR b$ebp 8b 4d f8$ebp 8b 4d f8add ecx,ecx add ecx,ecx 03 c9 03 c9sub eax,ecx 2b c1sub eax,ecx 2b c1inc eax 40inc eax 40mov DWORD PTR amov DWORD PTR a$ebp,eax 89 45 fc$ebp,eax 89 45 fc06:39:036高级语言*高级语言高级语言屏蔽了机器的细节,提高

5、了语言的抽象层屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的数据命名和容次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。易理解的执行语句。(eg:c,c+,Java,C#)(eg:c,c+,Java,C#)*例如:例如:uif(x3)if(x3)z=x*y;z=x*y;u类似英语和数学表达式类似英语和数学表达式*不能直接执行不能直接执行06:39:037*高级语言有两种翻译方式:高级语言有两种翻译方式:1 1、解释方式解释方式 2 2、编译方式编译方式源源程程序序解解释释程程序序运运行行结结果果源源程程序序编编译译程程序序目目标标代代码码06:39:038总

6、结:总结:*程序语言越低级,则必须对过程描写的越具体,程序语言越低级,则必须对过程描写的越具体,指令也就越接近机器的硬件逻辑。指令也就越接近机器的硬件逻辑。*程序语言越高级,就越接近对问题的描述与表达,程序语言越高级,就越接近对问题的描述与表达,因而更直观,更容易被人们所立即。因而更直观,更容易被人们所立即。*程序语言的发展,总是从低级到高级,也就是从程序语言的发展,总是从低级到高级,也就是从具体描述到抽象描述,当然高级语言的抽象描述具体描述到抽象描述,当然高级语言的抽象描述最后都自动转换成了机器的具体实现。最后都自动转换成了机器的具体实现。06:39:0392.C+语言发展前史*1954年,

7、IBM公司John Backus设计实现FORTRAN语言,用于科学计算的“公式翻译语言”;*1966年,标准化FORTRAN语言,称为FORTRAN66;后又被更新FORTRAN77和FORTRAN90;*1959年,设计面向商业的通用语言COBOL;*1968年,标准化COBOL语言,后标准化更新;*1960年,定义ALGOL 60语言,首次引入局部变量和递归概念。06:39:03102.C+语言发展前史(续)*20世纪60年代,在简化FORTRAN基础上,设计BASIC语言;*1983年推出TRUE BASIC;*1985年推出QBASIC;*1991年推出的Visual BASIC(V

8、B)*20世纪60年代中期,设计与实现了用于人工智能研究的Lisp语言。*1967年,为儿童设计LOGO语言;*1967年,推出Simula67语言,首次提出类的概念;06:39:03112.C+语言发展历史*1972 1972年:贝尔实验室首次实现年:贝尔实验室首次实现C C语言语言*19801980年:贝尔实验室开始对年:贝尔实验室开始对C C进行改进和扩充进行改进和扩充带带类的类的C C*1983 1983年:取名年:取名C+C+*1994 1994年:制定年:制定ANSI(ANSI(美国国家标准化协会美国国家标准化协会:American:American National Standa

9、rds Institute)C+National Standards Institute)C+标准草案标准草案*19981998年:年:C+C+的的ANSI/ISOANSI/ISO标准被投入使用,标准被投入使用,标标准的准的C+C+06:39:0312*C与C+的最大区别在于解决问题的思想方法不一样。1、C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入进行运算处理得到输出;对于C+,首要考虑的是如何构造一个对象模型,让这个模型能够契合对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程控制。C与C+语言比较06:39:0313 2、就

10、语言本身而言,在C中更多的是算法的概念。算法是程序设计的基础,好的设计如果没有好的算法,一样不行。3、C语言设计目标:简捷、高效。*缺点:比较适用于解决小的问题,对于大规模编程,程序模块之间的协调性差,程序的可重用性、程序的安全、健壮以及可维护性、可扩充性差。06:39:03144 4、C是C+的子集,C不仅包括了整个C,C的全部特征、属性、优点,还有一些优点:#支持面向对象编程(OOP),也支持结构化程序设计;#修补的C语言的一些漏洞,提供更好的类型检查机制和编译分析;#生成目标程序质量高,程序执行效率较高;#提供异常处理机制,简化程序的出错处理;#函数可以重载以及使用缺省参数;#提供模板机

11、制:类模板和函数模板;06:39:03153.C+编程流程1 1、编程过程:编程过程:*一般的编程操作流程为:一般的编程操作流程为:1 1、编辑(、编辑(editedit)2 2、编译(、编译(compilecompile)3 3、链接(、链接(linklink或或makemake或或buildbuild)4 4、调试运行(、调试运行(debugdebug或或runrun)该过程循环往复,直至完成。该过程循环往复,直至完成。编辑源程序(键入程序).cpp编译程序 .obj连接 .exe调试运行06:39:0316*源程序:源程序:u用源语言写的,有待翻译的程序*目标程序:目标程序:u也称为“结

12、果程序”,是源程序通过翻译程序加工以后所生成的程序。06:39:0317*编辑编辑u将源程序输入到计算机中,生成后缀为cpp的磁盘文件。*编译编译u将程序的源代码转换为机器语言代码。*连接连接u将多个源程序文件以及库中的某些文件连在一起,生成一个后缀为exe的可执行文件。*运行调试运行调试06:39:0418标准输出的小程序:标准输出的小程序:#include#includeint main()std:couthello World.n;int main()std:couthello World.n;*程序不但要使计算机能理解,而且也要让人能理解,程序不但要使计算机能理解,而且也要让人能理解,

13、因此,上述程序最好写成有结构形式的代码:因此,上述程序最好写成有结构形式的代码:#include#includeint main()int main()std:couthello World.n;std:couthello World.n;06:39:0419 *说明:说明:u#include:#include:编译预处理命令,文件包含。编译预处理命令,文件包含。uiostreamiostream是是C+C+为特定环境编制的标准输入为特定环境编制的标准输入/输出流类输出流类的标准库的标准库头文件头文件,也就是说,这个头文件,也就是说,这个头文件提供了输入提供了输入/输出设施输出设施。uint

14、main()int main()是是C+C+程序的入口,称为主函数。程序的入口,称为主函数。mainmain是函是函数名,数名,intint表示整数(表示整数(integerinteger)数据类型,位于)数据类型,位于mainmain的前面,表示的前面,表示mainmain函数应该返回一个整型值函数应该返回一个整型值 。u一对花括号一对花括号“”是表示是表示mainmain的函数体。的函数体。uC C语句以分号(;)结束语句以分号(;)结束06:39:0420ucoutcout是标准输出设备的名称,是标准输出设备的名称,“”是操作命令,是操作命令,指示将后面的数据送到显示器设备上去指示将后面

15、的数据送到显示器设备上去 。u:表示字符串常量,原样输出。:表示字符串常量,原样输出。unn:控制字符,表示换行操作,控制字符是:控制字符,表示换行操作,控制字符是 和另一个字符的组合。和另一个字符的组合。ustdstd是是“名空间名空间”,避免名称冲突。,避免名称冲突。06:39:0421n/*/*n/*ch1_1.cpp */*ch1_1.cpp *n/*/*n#include#include nint main()int main()n n std:coutI am a std:coutI am a student.n;student.n;n/*/*ch1_2.cpp */*#inclu

16、de int main()int a,b,result;std:coutab;result=3*a-2*b+1;std:coutresult is“resultendl;注释注释编译预编译预处理行处理行函数函数06:39:04222 2、编程风格:编程风格:u程序设计风格应以程序设计风格应以可读性可读性为准则,为准则,合理的紧凑性、模块整体性、对齐、合理的紧凑性、模块整体性、对齐、注释注释都是形都是形成特定风格的因素。成特定风格的因素。06:39:04234.程序与算法 1 1、程序、程序:以某种计算机程序设计语言为工具编制出:以某种计算机程序设计语言为工具编制出来的动作序列,表达人的系统性思

17、维。是一系列逐来的动作序列,表达人的系统性思维。是一系列逐一执行的操作。一执行的操作。(注意:每种语言都有特定的规范)(注意:每种语言都有特定的规范)u对人而言:对人而言:用计算机语言编写的语句序列用计算机语言编写的语句序列 u对机器而言:按硬件设计规范编制的指令序列对机器而言:按硬件设计规范编制的指令序列(即:即:机器指令序列机器指令序列)06:39:04242 2、算法:、算法:求特定问题的一组有限的操作序列。求特定问题的一组有限的操作序列。*算法引入原因:程序的动作序列包含了对数据的存取算法引入原因:程序的动作序列包含了对数据的存取访问和算术运算,因此对数据的合理描述、组织、存访问和算术

18、运算,因此对数据的合理描述、组织、存放和读取,关系到程序运行的正确性和高效性;放和读取,关系到程序运行的正确性和高效性;*目的性、抽象性、研究性;目的性、抽象性、研究性;*用特定的计算机语言来描述算法,就使该算法成为特用特定的计算机语言来描述算法,就使该算法成为特定计算机语言下的程序。同时,算法要靠程序是先来定计算机语言下的程序。同时,算法要靠程序是先来验证。验证。06:39:0425例如,我们考虑以下代数问题:例如,我们考虑以下代数问题:一辆汽车一辆汽车2 2小时走了小时走了5050英里,它的速度是多少?英里,它的速度是多少?第一步,为得到答案所需要的信息是路程和时间,第一步,为得到答案所需

19、要的信息是路程和时间,也既输入信息。也既输入信息。第二步,用到的公式:速度第二步,用到的公式:速度=路程路程/时间时间第三步,判断要得到的答案,答案是以英里每小第三步,判断要得到的答案,答案是以英里每小时为单位的速度值,也就是输出信息。时为单位的速度值,也就是输出信息。06:39:0426n#include#include nusing namespace std;using namespace std;nint main(int argc,char*argv)int main(int argc,char*argv)n n double distance,hour,velocity;doubl

20、e distance,hour,velocity;n cindistancehour;cindistancehour;n velocity=distance/hour;velocity=distance/hour;n coutvelocityendl;coutvelocity实数的加法 -复数的加法06:39:0440*优点:优点:u程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。u通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。06:39:0441小结:小结:1 1、C+C+是从是从C C进化而来的,继承了其高效灵活性,并植进化而来的,继承了其高效灵活性,并植入新的机制,体现其包容性和灵活性;入新的机制,体现其包容性和灵活性;2 2、学习编程,首先搞清楚编程操作流程;、学习编程,首先搞清楚编程操作流程;3 3、在了解程序框架之后,要学习简单的算法和数据结、在了解程序框架之后,要学习简单的算法和数据结构;构;4 4、简单了解、简单了解C+C+程序的过程化设计和面向对象思想;程序的过程化设计和面向对象思想;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁