学员学习c语言基础.pptx

上传人:莉*** 文档编号:80041348 上传时间:2023-03-22 格式:PPTX 页数:52 大小:665.79KB
返回 下载 相关 举报
学员学习c语言基础.pptx_第1页
第1页 / 共52页
学员学习c语言基础.pptx_第2页
第2页 / 共52页
点击查看更多>>
资源描述

《学员学习c语言基础.pptx》由会员分享,可在线阅读,更多相关《学员学习c语言基础.pptx(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第一章程序设计及语言概述第一章程序设计及语言概述1.1 程序设计的概念1.2 算法的概念及常用算法描述1.3 结构化程序设计方法1.4 面向对象的程序设计方法1.5 语言的产生及发展1.6 语言的特点1.7 简单程序介绍1.8 本章要点小结第1页/共52页1.11.1程序设计的概程序设计的概念念1.1.1程序设计语言的发展1.1.2程序设计的概念第2页/共52页程序是由一条条指令组成的,而所有指令的集合就称为程序设计语言。一、一、机器语言机器语言在PDP-11机上:0110 000000 0000011.1.1 程序设计语言的发程序设计语言的发展展第3页/共52页可由机器直接识别并执行的二进制

2、数指令称为机器语言指令,而所有机器语言指令的集合就称为这台计算机的机器语言。优点:可以直接被机器理解和执行缺点:不直观、不易读写、不易理解和记忆、不易查错;是一种“面向机器”的语言。第4页/共52页二、二、汇编语言汇编语言0110 000000 000001ADD R0,R1由符号和数字组成的指令称为汇编语言指令,而汇编语言指令的集合称为这台计算机的“汇编语言”。第5页/共52页优点:直观,易理解缺点:不能被计算机直接识别和执行,必须通过汇编程序将汇编语言指令翻译成二进制代码的机器语言指令第6页/共52页特点:不再面向机器,而是“面向解题过程”的。三、三、高级语言高级语言所谓高级语言,是指以更

3、接近于人们的自然语言和数学公式编写程序的语言,如C、Basic、Fortran等。第7页/共52页把高级语言的源程序翻译成机器语言的目标程序有两种方式:1、编译方式2、解释方式自1954年产生第一种高级语言Fortran以来,产生了数百种不同类型的高级语言。第8页/共52页1.1.2 程序设计的概程序设计的概念念程序设计就是用计算机语言来编写程序的过程。什么是程序呢?著名的计算机科学家沃思提出一个公式:算法+数据结构=程序第9页/共52页程序的两大要素:算法:即问题的求解过程,也就是计算机的工作步骤。这是对操作的描述。数据结构:即在程序中数据的类型和组织形式,这是对数据的描述。第10页/共52

4、页1.2 1.2 算法的概念及算法的概念及 常用算法描常用算法描述述1.2.1算法的概念1.2.2算法的表示1.2.3常用算法描述第11页/共52页1.2.1 1.2.1 算法的概算法的概念念广义的说,为解决一个问题而采取的方法和步骤就称为算法。包含两大要素:1、计算机所能执行的操作:算术运算、逻辑运算、关系运算、函数运算、位运算、I/O操作等。2、控制结构:即如何控制构成算法的各种操作的执行顺序。第12页/共52页按照结构化程序设计原则,一个程序由三种基本控制结构组成:1、顺序结构:按语句书写的先后次序执行的程序结构;2、选择(分支)结构:根据指定条件的判断结果从若干组语句中选择一组执行;3

5、、循环结构:根据判断给定条件是否满足,决定是否继续执行程序中的某一模块。第13页/共52页1.2.2 1.2.2 算法的表示算法的表示计算机通常采用三种方法来表示:自然语言传统的程序流程图N-S流程图第14页/共52页自然语言表示法例如,求两数之和:、输入a、b两数;、求和sum=a+b;、输出两数之和sum。注意:用自然语言表示的每一个操作步骤必须是计算机所能实现的。特点:通俗易懂,但文字冗长,易出现歧义,较少使用。第15页/共52页传统的程序流程图用一些图形符号形象直观的描述算法,ANSI规定了常用的程序流程图符号。第16页/共52页例1.1 输入三个数a、b、c,输出其中的最大者。开始输

6、入a,b,cab?ac?Tbc?F结束输出cF输出aT输出bT输出cF第17页/共52页传统的程序流程图传统的程序流程图特点:绘制简单,描述直观缺点:1、不易表示算法或程序的层次结构;2、用箭头表示的控制流可能引起随意的转移控制;3、可能诱使人们过早地考虑局部程序的控制结构而忽视全局性的程序结构;4、不易表示数据结构和程序模块间的关系。第18页/共52页N-S图提供了描述三种基本逻辑结构的图形工具,与传统的程序流程图对照描述如下:一、一、顺序结构顺序结构图 1.3 顺序结构A模块B模块(a)A模块B模块(b)第19页/共52页二、二、选择(分支)结构选择(分支)结构图 1.4 选择结构(b)N

7、-S图表示判断条件成立吗?成立 不成立A模块B模块(a)流程图表示A模块B模块判断条件成立吗?成立不成立N-S 图图第20页/共52页由分支结构派生出来的多分支结构:图 1.5 多分支结构K=?A1块A2块An块K1K2Kn(a)流程图表示K=?K1 K2 KnA1块 A2块 An块(b)N-S图表示N-S 图图第21页/共52页三、三、循环结构循环结构图 1.6 当型循环结构1、当型循环结构:先判断循环条件是否满足,当条件满足,执行一遍循环体,再判断循环条件,仍满足再执行一遍循环体直到不满足条件,则退出循环,执行循环体后的下一语句。若第一次判断条件就不满足,则一次也不执行循环体。不满足满足循

8、环体循环条件满足吗?(a)流程图表示(b)N-S图表示循环条件满足吗?循环体第22页/共52页图 1.7 直到型循环结构2、直到型循环结构:先执行一遍循环体,再判断循环条件是否满足,如不满足再执行一遍循环体直到条件满足,则退出循环,执行循环体后的下一语句。这种循环结构至少要执行一遍循环体。循环结构循环结构(a)流程图表示不满足满足循环体循环条件满足吗?(b)N-S图表示 循环体 直到循环条件满足为止第23页/共52页1.2.3 1.2.3 常用算法描常用算法描述述下面给出两个常用算法的举例:例1.3 描述n!的值的算法。开始F=1,i=1输入 ni n?F=F*i i=i+1输出 F结束图1.

9、8 求n!的N-S图第24页/共52页例1.4 描述求 的算法。设a0开始输入a、b、cd=b2-4ac输出x1、x2输出两个虚根x1、x2结束d0?TTFFd0?第25页/共52页1.3 1.3 结构化程序设计方结构化程序设计方法法荷兰学者E.W.dijkctra提出了结构化程序设计(structured programming)的理论,成为70年代后程序设计的主流方法。它提出了一些大家都要遵循的原则,这些原则可以归纳为32个字:“自顶向下,逐步细化。基本结构,组合而成。清晰第一,效率自顶向下,逐步细化。基本结构,组合而成。清晰第一,效率第二。书写规范,缩进格式。第二。书写规范,缩进格式。”

10、第26页/共52页1.4 1.4 面向对象的程序设计方面向对象的程序设计方法法 70年代后,软件开发的手段和方法越来越不能适应开发大型系统软件的要求,因而出现了“软件危机”。针对这种情况,1972年由Xerox公司首先推出著名的面向对象的程序设计语言Smalltalk。1983年美国Bell实验室的B.Stroustrup在C语言基础上,扩充引进了面向对象的概念,推出了C+语言。它与C语言完全兼容,是目前使用最为广泛的一种面向对象的程序设计语言。第27页/共52页1、对象(object):是数据以及对数据施加的操作结合在一起所构成的独立实体的总称。对象可以用来表示各种信息,如数据、字符串、矩阵

11、、堆栈等。一、基本概念2、类(class):是对一组具有相同数据和相同操作的对象的描述,即对一组对象的抽象概括,而每个对象都是某个类的一个具体实例。第28页/共52页3、实例(Instance):实例是由某个特定类所描述的一个对象。一般而言,“对象”和“类的实例”是同义。4、消息(message):是对某个对象执行类中所定义的某个操作的请求。消息中仅指明执行何种操作,不指明如何执行这种操作。发送消息是让对象实施操作的唯一途径。5、方法(method):方法是在类中所定义的过程。对象通过调用方法来完成预期的操作。第29页/共52页1、封装性:对象的数据和加工处理该数据的方法紧密结合封装为一个整体

12、。对用户而言,仅看到对象的外特性,即该对象能接受的消息和有那些处理能力,对于对象的内特性,如使用的算法和内部私有数据,是看不到的,也不需了解。3、多态性:对同样发送的一条消息,根据不同的接受对象可能引起不同的反应。面向对象的程序设计方法面向对象的程序设计方法二、基本特点2、继承性:一个类的上层可以有父类,下层可以有子类,组成一个层次结构。一个类可以直接继承其父类的全部描述,且这种继承具有向下传递性,即某个类的对象除具有该类所描述的性质外,还具有该类之上的全部基类所描述的相关性质。第30页/共52页语言的产生和发展与UNIX操作系统分不开。操作系统的编写需要即具有高级语言的优点,又具有低级语言的

13、特点的语言。语言是在语言的基础上发展而来的,而语言又是由语言发展而来的。1963年,英国的剑桥大学推出了CPL (Combined Programming Language)语言,它比Algol 60更接近硬件一些,但规模比较大,难以实现。1.51.5语言的产生及发语言的产生及发展展所谓语言是指高级语言Algol 60,它是一种面向问题的高级语言,离硬件比较远,不宜用来编写系统软件。一、语言的产生第31页/共52页1967年,英国剑桥大学的Martin Richads对CPL语言作了简化,推出了BCPL(basic CPL)语言。1973年,Bell实验室的D.M.Ritchie在语言的基础上

14、设计了语言,语言既保留了B语言的精炼、接近硬件的优点,又克服了过于简单、无数据类型等缺点。同年,K.Thompson和D.M.Ritchie合作用语言改写Unix操作系统获得巨大成功。1970年,美国Bell实验室的Ken Thompson以BCPL语言为基础,设计出了简单而且接近硬件的语言,并且用语言写了第一个Unix操作系统,在PDP-7上实现。语言的产生语言的产生第32页/共52页到1978年以后,C语言已先后移植到大、中、小及微型机上,得到广泛的使用。1978年,Brian W.Kernighan和Dennis M.Richie合著了The C Programming Language

15、一书,这本书成为后来广泛使用的语言的基础,被称为标准。1983年,美国国家标准协会ANSI重新制定了新的语言标准,即ANSI C。到1987年,ANSI又公布了新的标准87 ANSI C。1990年,国际标准化组织ISO接受87 ANSI C为ISO C的标准。二、语言的发展第33页/共52页1.6 1.6 语言的特点语言的特点1、C语言本身既有一般高级语言的特点,又有低级语言(汇编语言)的特点。2、C语言是一种结构化的程序设计语言,它具有实现顺序、分支、循环三种基本结构化控制的语句。3、C语言简洁,紧凑,使用方便灵活。只有32个保留字,9种控制语句,书写形式自由。第34页/共52页4、数据类

16、型丰富。有整型、实型、字符型、数组型、指针型、结构体型、共用体型和枚举型等。语言的特点语言的特点5、运算功能强。有32种运算符,包括了算术运算、关系运算、逻辑运算、位运算、指针运算等。6、目标代码质量高,运行速度快。7、可移植性强。8、语法限制不太严格,程序设计自由度大。第35页/共52页1.7 1.7 简单程序介绍简单程序介绍第36页/共52页简单程序介绍简单程序介绍函数体由一对大括号括起来;函数体的范围以“”开始,“”结束。本例中主函数内只有一条输出语句。例:main()printf(This is a C program!n);Eg101.cprintf是C语言的标准输出函数,“”内的字

17、符串按原样输出,“n”是换行符,即输出完后回车换行。本程序的作用是在屏幕上输出信息:This is a C program!main()表示主函数,每个C程序必须有一个main函数,称为主函数,main是函数名,不能更改;“()”表示这是一个函数,括号为空表示函数没有参数。表示语句结束第37页/共52页简单程序介绍简单程序介绍例1.6:main()/*主程序*/int a,b,sum;/*定义变量*/a=2;b=3;sum=a+b;printf(sum is%dn,n);Eg102.c1、“/*/”表示注释部分,以“/*”开始,以“*/”结束;注释部分可以加在程序的任意位置,仅起帮助阅读程序的

18、作用,对编译和运行程序不产生任何影响;2、第3行为声明部分,定义变量a、b、sum,并且指定为整型(int)变量;3、第4行为赋值语句;第38页/共52页简单程序介绍简单程序介绍例1.6:main()/*主程序*/int a,b,sum;/*定义变量*/a=2;b=3;sum=a+b;printf(sum is%dn,sum);Eg102.c4、printf为标准输出函数,“%d”表示“十进制整数类型”,在执行输出时,此位置上代以一个十进制整数值,由“,”后边的内容提供。此处代以sum的值,其它内容原样输出;因此,本程序的运行结果为:sum is 5第39页/共52页简单程序介绍简单程序介绍s

19、canf是C语言的标准输入函数;“%f”是格式输入符号,表示用户输入的数据应该是实数,“&”的含义是“取地址”。调用average函数,求出平均值并赋值给变量aver。return语句将aver1的值返回给主调函数main,返回值是通过函数名average带回到main的调用处例1.7 从键盘上输入三个数,求该三个数的平均值float average(float a1,float b1,float c1)float aver1;aver1=(a1+b1+c1)/3;return(aver1);main()float a,b,c,aver;printf(please input a,b,c:);

20、scanf(%f%f%f,&a,&b,&c);aver=average(a,b,c);printf(the average is%4.1f,aver);Eg103.c第40页/共52页简单程序介绍简单程序介绍#include int max(int x,int y)int z;if(xy)z=x;else z=y;return(z);main()int a,b,c;scanf(%d,%d,&a,&b);c=max(a,b);printf(max=%d,c);Eg104.c第41页/共52页关于程序基本结构的说明:关于程序基本结构的说明:一、程序的构成1、一个程序由一个或多个函数构成。程序中应至

21、少包含一个main函数。函数是语言的基本单位,可以说语言是函数式语言。2、一个程序总是从main函数开始执行,而不论main函数在整个程序中的位置如何;一般说来,又随着main函数的结束而整个程序结束。第42页/共52页关于程序基本结构的说明:关于程序基本结构的说明:3、被某一函数调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编制设计的函数。4、如果调用库函数,则要用include命令行,以向系统提供必要的信息。、语言本身没有输入输出语句,输入和输出操作由库函数scanf和printf等函数来完成,对输入输出实行函数化。第43页/共52页关于程序基本结构的说明:关于程序基本结构的说

22、明:、每个语句和数据定义的最后必须有一个分号;分号是语句的必要组成部分。1、函数首部:即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。二、函数的构成一个函数由两部分构成:第44页/共52页关于程序基本结构的说明:关于程序基本结构的说明:float average(float a1,float b1,float c1)2、函数体:即函数首部下面“”内的部分;如果一个函数内有多对大括弧,则最外层的一对大括弧为函数体的范围。例如,例1.7中的average函数首部为:注意:一个函数名后面必须跟“()”作为函数的标志main()第45页/共52页关于程序基本结构的说明:关

23、于程序基本结构的说明:、变量定义(数据声明)部分:定义在本函数中用到的变量或数组的数据类型;dump()函数体内一般又分为两部分:、执行部分:由若干语句组成,完成函数所规定的功能。第46页/共52页关于程序基本结构的说明:关于程序基本结构的说明:1、函数首部后面不要加分号。2、程序的书写格式自由,一个语句可以写在多行上;一行内也可以写几个语句,但是都必须用“;”作为每个语句的结束标志。三、源程序的书写格式和程序风格3、为了清晰的表现出程序的结构,建议采用锯齿形格式。4、可以用/*/对程序的任何部分作注释。第47页/共52页1.8 1.8 本章要点小结本章要点小结机器语言、汇编语言、高级语言机器语言、汇编语言、高级语言程序的两大要素,算法的表示程序的两大要素,算法的表示结构化程序设计方法结构化程序设计方法面向对象程序设计的基本概念和特点面向对象程序设计的基本概念和特点语言的产生和发展语言的产生和发展简单程序介绍简单程序介绍第48页/共52页本章作业本章作业附加1、参照例题,编写一个C程序,在屏幕上输出以下信息:*Very good!*附加2、编写一个程序,输入a、b、c三个数,输出其中最大者。第49页/共52页调试附加1、2第50页/共52页第一章第一章 结束结束第51页/共52页感谢您的观看。第52页/共52页

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

当前位置:首页 > 应用文书 > PPT文档

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

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