学员学习c语言基础

上传人:ll****x 文档编号:242866145 上传时间:2024-09-10 格式:PPT 页数:52 大小:732KB
返回 下载 相关 举报
学员学习c语言基础_第1页
第1页 / 共52页
学员学习c语言基础_第2页
第2页 / 共52页
学员学习c语言基础_第3页
第3页 / 共52页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,语言程序设计,1,第一章程序设计及语言概述,1.1 程序设计的概念,1.2 算法的概念及常用算法描述,1.3 结构化程序设计方法,1.4 面向对象的程序设计方法,1.5 语言的产生及发展,1.6 语言的特点,1.7 简单程序介绍,1.8 本章要点小结,2,1.1程序设计的概念,1.1.1,程序设计语言的发展,1.1.2,程序设计的概念,3,程序是由一条条指令组成的,而所有指令的集合就称为程序设计语言。,一、,机器语言,在PDP-11机上:,0110 000000 000001,1.1.1 程序设计语言的发展,4,可由机器直接识别并执行的二进制数指令称为,机器语言指令,,而所有机器语言指令的集合就称为,这台计算机,的,机器语言,。,优点:可以直接被机器理解和执行,缺点:不直观、不易读写、不易理解和记忆、不易查错;是一种“面向机器”的语言。,5,二、,汇编语言,0110 000000 000001,ADD R0, R1,由符号和数字组成的指令称为,汇编语言指令,,而汇编语言指令的集合称为,这台计算机,的“,汇编语言,”。,6,优点:直观,易理解,缺点:不能被计算机直接识别和执行,必须通过,汇编程序,将汇编语言指令翻译成二进制代码的机器语言指令,7,特点:不再面向机器,而是“,面向解题过程,”的。,三、,高级语言,所谓,高级语言,,是指以更接近于人们的自然语言和数学公式编写程序的语言,如C、Basic、Fortran等。,8,把高级语言的源程序翻译成机器语言的目标程序有两种方式:,1、编译方式,2、解释方式,自1954年产生第一种高级语言Fortran以来,产生了数百种不同类型的高级语言。,9,1.1.2 程序设计的概念,程序设计,就是用计算机语言来编写程序的过程。,什么是程序呢?著名的计算机科学家,沃思,提出一个公式:,算法+数据结构=程序,10,程序的两大要素:,算法,:即问题的求解过程,也就是计算机的工作步骤。这是对操作的描述。,数据结构,:即在程序中数据的类型和组织形式,这是对数据的描述。,11,1.2,算法的概念及 常用算法描述,1.2.1,算法的概念,1.2.2,算法的表示,1.2.3,常用算法描述,12,1.2.1 算法的概念,广义的说,为解决一个问题而采取的方法和步骤就称为,算法,。包含两大要素:,1、,计算机所能执行的操作,:算术运算、逻辑运算、关系运算、函数运算、位运算、I/O操作等。,2、,控制结构,:即如何控制构成算法的各种操作的执行顺序。,13,按照结构化程序设计原则,一个程序由三种基本控制结构组成:,1、,顺序结构,:按语句书写的先后次序执行的程序结构;,2、,选择(分支)结构,:根据指定条件的判断结果从若干组语句中选择一组执行;,3、,循环结构,:根据判断给定条件是否满足,决定是否继续执行程序中的某一模块。,14,1.2.2 算法的表示,计算机通常采用三种方法来表示:,自然语言,传统的程序流程图,N-S流程图,15,自然语言表示法,例如,求两数之和:,、输入a、b两数;,、求和sum=a+b;,、输出两数之和sum。,注意:用自然语言表示的每一个操作步骤必须是计算机所能实现的。,特点:通俗易懂,但文字冗长,易出现歧义,较少使用。,16,传统的程序流程图,用一些图形符号形象直观的描述算法,ANSI规定了常用的程序流程图符号。,17,例1.1 输入三个数a、b、c,输出其中的最大者。,开始,输入a,b,c,ab?,ac?,T,bc?,F,结束,输出c,F,输出a,T,输出b,T,输出c,F,18,传统的程序流程图,特点:绘制简单,描述直观,缺点:1、不易表示算法或程序的层次结构;,2、用箭头表示的控制流可能引起随意的转移控制;,3、可能诱使人们过早地考虑局部程序的控制结构而忽视全局性的程序结构;,4、不易表示数据结构和程序模块间的关系。,19,N-S图,提供了描述三种基本逻辑结构的图形工具,与传统的程序流程图对照描述如下:,一、,顺序结构,图 1.3 顺序结构,A模块,B模块,(a),A模块,B模块,(b),20,二、,选择(分支)结构,图 1.4 选择结构,(b) N-S图表示,判断条件,成立吗?,成立 不成立,A模块,B模块,(a) 流程图表示,A模块,B模块,判断条件,成立吗?,成立,不成立,N-S 图,21,由分支结构派生出来的多分支结构:,图 1.5 多分支结构,K=?,A1块,A2块,An块,K1,K2,Kn,(a) 流程图表示,K=?,K1 K2 Kn,A1块 A2块 An块,(b) N-S图表示,N-S 图,22,三、,循环结构,图 1.6 当型循环结构,1、当型循环结构:,先判断循环条件是否满足,当条件满足,执行一遍循环体,再判断循环条件,仍满足再执行一遍循环体直到不满足条件,则退出循环,执行循环体后的下一语句。若第一次判断条件就不满足,则一次也不执行循环体。,不满足,满足,循环体,循环条件,满足吗?,(a) 流程图表示,(b) N-S图表示,循环条件满足吗?,循环体,23,图 1.7 直到型循环结构,2、直到型循环结构:,先执行一遍循环体,再判断循环条件是否满足,如不满足再执行一遍循环体直到条件满足,则退出循环,执行循环体后的下一语句。这种循环结构至少要执行一遍循环体。,循环结构,(a) 流程图表示,不满足,满足,循环体,循环条件,满足吗?,(b) N-S图表示,循环体,直到循环条件满足为止,24,1.2.3 常用算法描述,下面给出两个常用算法的举例:,例1.3 描述n!的值的算法。,开始,F = 1, i = 1,输入 n,i n?,F = F * i,i = i + 1,输出 F,结束,图1.8 求n!的N-S图,25,例1.4 描述求 的算法。设a0,d0?,T,T,F,F,d0?,26,1.3 结构化程序设计方法,荷兰学者E.W.dijkctra提出了结构化程序设计(structured programming)的理论,成为70年代后程序设计的主流方法。它提出了一些大家都要遵循的原则,这些原则可以归纳为32个字:,“,自顶向下,逐步细化。基本结构,组合而成。清晰第一,效率第二。书写规范,缩进格式。,”,27,1.4 面向对象的程序设计方法,70年代后,软件开发的手段和方法越来越不能适应开发大型系统软件的要求,因而出现了“软件危机”。针对这种情况,1972年由Xerox公司首先推出著名的面向对象的程序设计语言Smalltalk。1983年美国Bell实验室的B.Stroustrup在C语言基础上,扩充引进了面向对象的概念,推出了C+语言。它与C语言完全兼容,是目前使用最为广泛的一种面向对象的程序设计语言。,28,面向对象的程序设计方法,1、,对象,(object),:是数据以及对数据施加的操作结合在一起所构成的独立实体的总称。对象可以用来表示各种信息,如数据、字符串、矩阵、堆栈等。,一、,基本概念,2、,类,(class),:是对一组具有相同数据和相同操作的对象的描述,即对一组对象的抽象概括,而每个对象都是某个类的一个具体实例。,29,面向对象的程序设计方法,3、,实例,(Instance),:实例是由某个特定类所描述的一个对象。一般而言,“对象”和“类的实例”是同义。,4、,消息,(message),:是对某个对象执行类中所定义的某个操作的请求。消息中仅指明执行何种操作,不指明如何执行这种操作。发送消息是让对象实施操作的唯一途径。,5、,方法,(method),:方法是在类中所定义的过程。对象通过调用方法来完成预期的操作。,30,1、,封装性,:,对象的数据和加工处理该数据的方法紧密结合封装为一个整体。对用户而言,仅看到对象的外特性,即该对象能接受的消息和有那些处理能力,对于对象的内特性,如使用的算法和内部私有数据,是看不到的,也不需了解。,3、,多态性,:,对同样发送的一条消息,根据不同的接受对象可能引起不同的反应。,面向对象的程序设计方法,二、,基本特点,2、,继承性,:,一个类的上层可以有父类,下层可以有子类,组成一个层次结构。一个类可以直接继承其父类的全部描述,且这种继承具有向下传递性,即某个类的对象除具有该类所描述的性质外,还具有该类之上的全部基类所描述的相关性质。,31,语言的产生和发展与UNIX操作系统分不开。操作系统的编写需要即具有高级语言的优点,又具有低级语言的特点的语言。,语言是在语言的基础上发展而来的,而语言又是由语言发展而来的。,1963年,英国的剑桥大学推出了CPL (Combined Programming Language)语言,它比Algol 60更接近硬件一些,但规模比较大,难以实现。,1.5语言的产生及发展,所谓语言是指高级语言Algol 60,它是一种面向问题的高级语言,离硬件比较远,不宜用来编写系统软件。,一、,语言的产生,32,1967年,英国剑桥大学的Martin Richads对CPL语言作了简化,推出了BCPL(basic CPL)语言。,1973年,Bell实验室的D.M.Ritchie在语言的基础上设计了语言,语言既保留了B语言的精炼、接近硬件的优点,又克服了过于简单、无数据类型等缺点。同年,K.Thompson和D.M.Ritchie合作用语言改写Unix操作系统获得巨大成功。,1970年,美国Bell实验室的Ken Thompson以BCPL语言为基础,设计出了简单而且接近硬件的语言,并且用语言写了第一个Unix操作系统,在PDP-7上实现。,语言的产生,33,到1978年以后,C语言已先后移植到大、中、小及微型机上,得到广泛的使用。,1978年,Brian W.Kernighan和Dennis M.Richie合著了The C Programming Language一书,这本书成为后来广泛使用的语言的基础,被称为标准。,1983年,美国国家标准协会ANSI重新制定了新的语言标准,即ANSI C。到1987年,ANSI又公布了新的标准87 ANSI C。1990年,国际标准化组织ISO接受87 ANSI C为ISO C的标准。,二、,语言的发展,34,1.6 语言的特点,1、 C语言本身既有一般高级语言的特点,又有低级语言(汇编语言)的特点。,2、C语言是一种结构化的程序设计语言,它具有实现顺序、分支、循环三种基本结构化控制的语句。,3、C语言简洁,紧凑,使用方便灵活。只有32个保留字,9种控制语句,书写形式自由。,35,4、数据类型丰富。有整型、实型、字符型、数组型、指针型、结构体型、共用体型和枚举型等。,语言的特点,5、运算功能强。有32种运算符,包括了算术运算、关系运算、逻辑运算、位运算、指针运算等。,6、目标代码质量高,运行速度快。,7、,可移植性强。,8、语法限制不太严格,程序设计自由度大。,36,1.7 简单程序介绍,37,简单程序介绍,函数体由一对大括号括起来;函数体的范围以“”开始,“”结束。本例中主函数内只有一条输出语句。,例:,main( ),printf(This is a C program!n),;,Eg101.c,printf是C语言的标准输出函数,“”内的字符串按原样输出,“n”是换行符,即输出完后回车换行。,本程序的作用是在屏幕上输出信息:,This is a C program!,main()表示主函数,每个C程序必须有一个main函数,称为主函数,main是函数名,不能更改;“()”表示这是一个函数,括号为空表示函数没有参数。,表示语句结束,38,简单程序介绍,例1.6:,main( ),/*,主程序,*/,int a,b,sum,;,/*,定义变量,*/,a=2,;,b=3,;,sum=a+b,;,printf(sum is %dn,n),;,Eg102.c,1、,“/*/”表示注释部分,以“/*”开始,以“*/”结束;注释部分可以加在程序的任意位置,仅起帮助阅读程序的作用,对编译和运行程序不产生任何影响;,2、第3行为声明部分,定义变量a、b、sum,并且指定为整型(int)变量;,3、第4行为赋值语句;,39,简单程序介绍,例1.6:,main( ),/*,主程序,*/,int a,b,sum,;,/*,定义变量,*/,a=2,;,b=3,;,sum=a+b,;,printf(sum is %dn,sum),;,Eg102.c,4、printf为标准输出函数,“%d”表示“十进制整数类型”,在执行输出时,此位置上代以一个十进制整数值,由“,”后边的内容提供。此处代以sum的值,其它内容原样输出;,因此,本程序的运行结果为:,sum is 5,40,简单程序介绍,scanf是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:),;,scanf(%f%f%f,&a,&b,&c),;,aver=average(a,b,c),;,printf(the average is %4.1f,aver),;,Eg103.c,41,简单程序介绍,#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,c=max(a,b);,printf(max=%d,c);,Eg104.c,42,关于程序基本结构的说明:,一、,程序的构成,1、一个程序由一个或多个函数构成。程序中应至少包含一个main函数。函数是语言的基本单位,可以说语言是函数式语言。,2、,一个程序总是从main函数开始执行,而不论main函数在整个程序中的位置如何;一般说来,又随着main函数的结束而整个程序结束。,43,关于程序基本结构的说明:,3、,被某一函数调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编制设计的函数。,4、,如果调用库函数,则要用include命令行,以向系统提供必要的信息。,、,语言本身没有输入输出语句,输入和输出操作由库函数scanf和printf等函数来完成,对输入输出实行函数化。,44,关于程序基本结构的说明:,、,每个语句和数据定义的最后必须有一个分号;分号是语句的必要组成部分。,1、,函数首部:即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。,二、,函数的构成,一个函数由两部分构成:,45,关于程序基本结构的说明:,float average(float a1, float b1, float c1),2、,函数体:即函数首部下面“ ”内的部分;如果一个函数内有多对大括弧,则最外层的一对大括弧为函数体的范围。,例如,例1.7中的average函数首部为:,注意,:一个函数名后面必须跟“( )”作为函数的标志,main( ),46,关于程序基本结构的说明:,、变量定义(数据声明)部分:,定义在本函数中用到的变量或数组的数据类型;,dump( ), ,函数体内一般又分为两部分:,、执行部分:,由若干语句组成,完成函数所规定的功能。,47,关于程序基本结构的说明:,1、函数首部后面不要加分号。,2、程序的书写格式自由,一个语句可以写在多行上;一行内也可以写几个语句,但是都必须用“;”作为每个语句的结束标志。,三、,源程序的书写格式和程序风格,3、为了清晰的表现出程序的结构,建议采用锯齿形格式。,4、可以用/*/对程序的任何部分作注释。,48,1.8 本章要点小结,机器语言、汇编语言、高级语言,程序的两大要素,算法的表示,结构化程序设计方法,面向对象程序设计的基本概念和特点,语言的产生和发展,简单程序介绍,49,本章作业,一、书面作业,附加1、参照例题,编写一个C程序,在屏幕上输出以下信息:,* * * * * * * * * *,*Very good! *,* * * * * * * * * *,附加2、编写一个程序,输入a、b、c三个数,输出其中最大者。,50,二、上机作业,调试附加1、2,51,第一章,结束,52,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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