C语言ppt课件第1章.ppt

上传人:牧羊曲112 文档编号:1481285 上传时间:2022-11-30 格式:PPT 页数:59 大小:1.60MB
返回 下载 相关 举报
C语言ppt课件第1章.ppt_第1页
第1页 / 共59页
C语言ppt课件第1章.ppt_第2页
第2页 / 共59页
C语言ppt课件第1章.ppt_第3页
第3页 / 共59页
C语言ppt课件第1章.ppt_第4页
第4页 / 共59页
C语言ppt课件第1章.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《C语言ppt课件第1章.ppt》由会员分享,可在线阅读,更多相关《C语言ppt课件第1章.ppt(59页珍藏版)》请在三一办公上搜索。

1、实践是能力赖以生长的土壤!,高级语言程序设计,主讲教师:丁丁计算机与信息技术学院,第一章程序设计与C语言,主要内容,程序和程序语言程序和程序语言算法及其描述工具程序设计方法问题与程序设计,2022/11/30,高级语言程序设计,4,1.1 程序和程序语言,例:到图书馆借参考书,1) 进入图书馆;2 ) 查书目;3 ) 填写索书单;4 ) 如果书未借出 那么:交图书馆工作人员取书;办理借书手续;到5;5) 如果还需借其它书,回到2;否则到6;6 ) 离开图书馆。,“程序”(program)通常指完成某些事务的一种既定方式和过程。,2022/11/30,高级语言程序设计,5,一些直观特征,按部就班

2、地进行;开始与结束;完成某项具体任务;需要用某种记法形式描述(计算机程序需要用某种精确定义的形式描述);是在一些基本动作的基础上描述的;不同的描述粒度(细节程度); ,2022/11/30,高级语言程序设计,6,1 程序,程序:规定了计算机执行的动作和动作的顺序。一个程序应包括以下两方面的内容:对数据的描述:在程序中要指定数据的类型和数据的组织形式,即数据结构。对操作的描述:即操作步骤,也就是算法(解决问题的方法和步骤)。数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。程序 数据结构 算法著名计算机科学家Nikiklaus Wirth作为程序设计人员,必须认真考虑和设计数据

3、结构和操作步聚,2022/11/30,高级语言程序设计,7,2022/11/30,高级语言程序设计,8,例:求12345,C语言编写的程序:#include void main( ) int i,t; t=1; i=2; t=t*i; i=3; t=t*i; i=4; t=t*i; i=5; t=t*i; printf(“%dn”,t);,数据:1,2,3,4,5数据结构:int 类型,算法: 步骤1:先求12,得到结果2 步骤2:将步骤1得到的乘积2再 乘以3,得到结果6; 步骤3:将6再乘以4,得24 步骤4:将24再乘以5,得120,2022/11/30,高级语言程序设计,9,设变量t为

4、被乘数,i为乘数。用循环算法来求结果, 算法可改写为:,C语言编写的程序:#include Void main( )int i,t; t=1; i=2;while(i=5) t=t*i; i=i+1;printf(“%dn”,t);,步骤1:t=1步骤2:i=2步骤3:ti = t步骤4:i+1 = i步骤5:如果i不大于5,返回步骤3;否则结束。最后得到t的值就是5!的值。,硬件层面上的程序是机器指令的序列。程序执行:将程序存入内存,通知CPU第一条指令的地址。命令它“开始”!一般情况下,CPU执行完一条指令后,自动取出下一条指令,并如此继续下去。转跳指令明确指定下一条指令的位置,人可以基于

5、转跳指令描述复杂的执行流程。人命令计算机去执行一个程序,计算机就会一丝不苟地按这个程序的内容,一条一条指令执行,直至程序结束(指令执行到了最后,或者遇到明确的停止指令)。,2022/11/30,高级语言程序设计,10,程序的执行,2 算法,算法:解决问题的方法和步骤 解决一个问题的过程就是实现一个算法的过程。算法分为两大类:数值运算:如解方程、求定积分非数值运算:如排序、检索、绘图,2022/11/30,高级语言程序设计,11,例:用公式y=x2-2x+3计算x=0,1,2,3, 100 所对应的y值,使用如下算法: (1) 置x为0; (2) 置x的上界n=100; (3) 当xn时,重复执

6、行3.1,3.2,3.3步,否则,算法停止。 (3.1) 用公式计算y值; (3.2) 打印一组x和y的值; (3.3) x值增加1。,2022/11/30,高级语言程序设计,12,2022/11/30,高级语言程序设计,13,算法的5个特性,有穷性:即算法通过有限步骤后能够结束确定性:无二义性,算法必须具有清晰的定义、不能存在任何的模糊有零个或多个输入有一个或多个输出可行性:即算法的每一步都是可执行的,同一个问题可以有多种算法,2022/11/30,高级语言程序设计,14,算法的描述工具,(1)流程图(传统流程图)(2)结构流程图(N-S结构图)(3)伪代码,2022/11/30,高级语言程

7、序设计,15,算法的描述工具:流程图,用一些图框表示各种操作,形象直观,易于理解 ANSI规定一些常用的流程图符号,一个流程图包括以下几部分: 表示相应操作的框 带箭头的流程线 框内外必要的说明文字,x=n,x=0, n=100,计算y=x*x-2*x+3打印x,yx=x+1,开始,结束,真,假,2022/11/30,高级语言程序设计,16,2022/11/30,高级语言程序设计,17,算法的描述工具:N-S图,美国学者I.Nassi和B.Shneiderman提出的一种新的流程图全部算法写在一个矩形框内,由一些基本的框组成一个大的框,称N-S图,x=0, n=100,x=n,计算y=x*x-

8、2*x+3打印x,yx=x+1,2022/11/30,高级语言程序设计,18,算法的描述工具:伪码,概念:伪代码(pseudo code)是用来描述算法的介于自然语言和计算机语言之间的文字和符号。特点:自上而下每一行(或几行)表示一个基本操作;不用图形符号,书写方便、格式紧凑;便于向计算机语言算法(即程序)过渡。用处:适用于设计过程中需要反复修改时的流程描述。,伪码 begin initialize x to zero initialize n to 100 while x=n calculate y print x, y add one to x end,2022/11/30,高级语言程序设

9、计,19,例:求1+2+100的和,i=100,sum=0, i=1,sum=sum+ii=i+1,开始,结束,真,假,print sum,传统流程图,2022/11/30,高级语言程序设计,20,例:求1+2+100的和,beginsum0, i1;while i=100 sumsum+i; ii+1;print sumend,sum=0, i=1,i=100,sum=sum+ii=i+1,print sum,NS图,伪代码,2022/11/30,高级语言程序设计,21,课堂练习1,请为246200设计算法并画流程图,2022/11/30,高级语言程序设计,22,课堂练习2,判断某一年是否为

10、闰年能被400整除能被4整除,但不能被100整除,2022/11/30,高级语言程序设计,23,3 程序设计语言,算法是对所解决问题的精确描述,程序设计语言是计算机可处理的代码,是人与计算机交流的最基本最重要的媒介;利用程序设计语言将算法转化为源程序,通过计算机处理解决问题。,2022/11/30,高级语言程序设计,24,计算机与人沟通,2022/11/30,高级语言程序设计,25,计算机与人沟通,2022/11/30,高级语言程序设计,26,计算机与人沟通,2022/11/30,高级语言程序设计,27,计算机与人沟通,2022/11/30,高级语言程序设计,28,计算机与人沟通,人和计算机通

11、信使用的语言为计算机语言,2022/11/30,高级语言程序设计,29,面向机器的语言,程序设计语言的产生发展,CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减,用助记符号描述的指令系统如 ADD A, B,接近于人类的自然语言和数学语言如:c=a+b,面向过程的语言算法语言Basic, Fortan,Pascal,C语言等,Java,C+等,2022/11/30,高级语言程序设计,30,机器语言和程序,机器语言是机器指令形成的语言;形式为二进制编码,机器可直接执行,0000000100000000100000000001000100001010000

12、00101000000000001000000010001000011000000010000000000000100000010000000001110,数据装入寄存器0数据装入寄存器1寄存器0与1的数据乘数据装入寄存器1寄存器0与1的数据加保存寄存器0里的数据,难写难读,不易编程,与机器有关、程序开发效率极低。,2022/11/30,高级语言程序设计,31,汇编语言和程序,汇编语言:采用助记的符号形式,有利于人的阅读和使用。汇编指令与机器指令一一对应,load 0 aload 1 bmult 0 1load 1 cadd 0 1save 0 d,将单元a的数据装入寄存器0将单元b的数据装入

13、寄存器1寄存器0与1的数据乘将单元c的数据装入寄存器1寄存器0与1的数据加将寄存器0里的数据存入单元d,仍然难理解,不易编程,与机器有关、程序开发效率低。,2022/11/30,高级语言程序设计,32,计算机无法直接执行汇编语言程序,执行前需要把汇编语言程序翻译为机器指令程序最早时通过手工翻译为机器指令后来人们开发出称为“汇编系统”的程序,让计算机去完成程序翻译工作,汇编语言的特点:每条指令的意义容易理解程序粒度太小,细节太多程序无结构,缺乏组织手段写大程序仍然很困难,2022/11/30,高级语言程序设计,33,高级语言和程序,高级语言的特点:具有类似文字的表现形式,接近自然语言具有丰富的数

14、据结构,用类似数学表达式形式描述基本计算用变量等概念取代低级的存储概念,使人摆脱各种繁琐低级的工作,例如存储的安排提供高级操作流程控制手段和程序组织手段与具体的机器无关,可移值性好,在C语言里写前面同样的程序:d = a * b + c;,2022/11/30,高级语言程序设计,34,计算机无法直接执行高级语言写出的程序常规方式是做一个编译系统,完成高级语言程序到机器语言可执行程序的翻译加工编程 编译加工 执行,使用高级语言编程:编程工作的效率大大提高人更容易思考和把握复杂程序的意义更多人愿意投身于这种工作,使编程发展成为一种职业和谋生方式术语“程序设计语言”已专指“高级语言”,2022/11

15、/30,高级语言程序设计,35,1954年到1957年:高级语言Fortran诞生;至1960年代中,开发了Algol 60 ,COBOL,BASIC等。还有函数式语言LISP 等;1970年代开始:Pascal 和 C语言逐渐分别为教学科研和软件开发用的主要语言;1980年代:逻辑程序语言Prolog,面向对象语言Smalltalk 和后来的C+;1995年左右的Java 。,高级语言的简单历史,2022/11/30,高级语言程序设计,36,C语言比较小,入门容易,很快就可以开始编程有丰富的程序机制、数据机制、函数定义机制,能满足复杂程序的需要。许多常用功能通过库实现提供接近硬件的低级操作,

16、广泛用于开发效率要求高的程序。被用于代替汇编语言开发底层软件生成目标代码质量高、可移植性好,被称为“中级语言”提供了一些支持大规模复杂软件开发的机制,C 语言的工作得到世界计算机界的广泛赞许。对计算机工业和应用发展起了重要推动作用许多新语言从C汲取营养。如C+,Java,C#等语言设计者获得计算机领域最高奖图灵奖,C语言的特点,C语言1973年由贝尔实验室的Dennis Ritchie 设计,目标是书写操作系统和其他系统程序。C语言最早用于写UNIX系统。70年代成为UNIX的标准开发语言,随UNIX流行而被广泛接受。80年代被搬到各种机器的许多操作系统上,逐渐成为一种开发系统程序和复杂软件的

17、通用语言。后来成为使用最广泛的系统开发语言。人们用C开发各种程序,从简单应用到极其复杂的大型软件。各种计算机都有可用的C语言系统。,C语言简介,2022/11/30,高级语言程序设计,38,标准化应用发展要求C成为更安全可靠、不依赖具体机器或操作系统的标准语言。ANSI在80年代开始标准化工作,1988年颁布ANSI C标准,后被ISO和各国接受,也采纳为中国国家标准(GB/T 15272-94)。新标准C99已经通过。,按ANSI C标准写程序C的原设计注重灵活性,允许许多不安全的编程方式,正确性靠编程者。用户群扩大后缺点凸现,复杂程序常有隐藏错误。标准化也是为修正C的缺陷。,ANSI(Am

18、erican National Standards Institute),2022/11/30,高级语言程序设计,39,由系统定义,不能重作其它定义auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while,32个关键字,2022/11/30,高级语言程序设计,40,if(

19、)elsefor( )while( )dowhile( )continuebreakswitchgotoreturn,9种控制语句,2022/11/30,高级语言程序设计,41,算术运算符:+ - * / % + -关系运算符: = !=逻辑运算符:! & |位运算符 : | &赋值运算符:= 及其扩展条件运算符:?:逗号运算符:,指针运算符:* &求字节数 :sizeof强制类型转换:(类型)分量运算符:. -下标运算符:其它 :( ) -,34种运算符,2022/11/30,高级语言程序设计,42,C 数据类型,2022/11/30,高级语言程序设计,43,主要内容,程序和程序语言程序和程

20、序语言算法及其描述工具程序设计方法问题与程序设计,2022/11/30,高级语言程序设计,44,起床刷牙洗脸吃饭早自习,拿饭碗去食堂排队买饭吃饭洗碗离开食堂,排队选饭选菜付款,“程序”分解实例(早起活动):,编写程序不应该从第一个细节开始逐步分解,直至分解到程序语言提供的功能。,1.3 程序设计方法,2022/11/30,高级语言程序设计,45,程序设计思想:自顶向下、逐步细化从问题出发,从高层开始设计程序;逐步分解程序功能,直至可以用程序语言实现。结构化三种基本结构(顺序、选择、循环)的组合模块化函数,2022/11/30,高级语言程序设计,46,2022/11/30,高级语言程序设计,47

21、,结构化程序设计的三种基本结构,(1)顺序结构,A,B,入口,出口,特点:无条件顺序执行A,B语句或语句串 A,B可能是其他结构,2022/11/30,高级语言程序设计,48,(2)选择结构,A,B,入口,出口,特点:要么执行A,要么执行B 条件P 满足执行A 不满足执行B A,B可能是空语句,条件P,Y,N,结构化程序设计的三种基本结构,2022/11/30,高级语言程序设计,49,(3)循环结构,特点: 条件P 满足执行A再测试条件 不满足结束 先判断,后执行 有可能A一次也没执行,a.当型循环(while),结构化程序设计的三种基本结构,2022/11/30,高级语言程序设计,50,(3

22、)循环结构,特点: 条件P 不满足执行A再测试条件 满足结束 先执行,后判断 A至少执行一次,A,入口,条件P,Y,N,出口,b.直到型循环(do-while),结构化程序设计的三种基本结构,一般一个算法既可以用while型也可以用do-while型实现,2022/11/30,高级语言程序设计,51,N-S结构图表示,主要内容,程序和程序语言程序和程序语言算法及其描述工具程序设计方法问题与程序设计,2022/11/30,高级语言程序设计,52,1.4 问题与程序设计过程,程序设计是智力劳动,编一个程序就是解决一个问题。用计算机解决问题的过程可分为三步:分析问题,设计一种解决问题方案(算法设计)

23、;用某种程序语言严格描述这一解决方案(编程);在计算机上试用程序,看它能否解决问题(调试)。算法是核心、是灵魂,程序是外壳!,2022/11/30,高级语言程序设计,53,2022/11/30,高级语言程序设计,54,分析 抽象 实现问题解决方法精确描述(算法)程序(源程序)算法:由若干条指令组成的有穷序列,满足一定条件。程序:是算法用程序设计语言的具体实现。程序设计语言程序计算机翻译机器语言执行程序设计语言 设计方法 程序 程序算法+数据结构+程序设计方法,总结,2022/11/30,高级语言程序设计,55,程序调试和排误,调试(Testing)和排除错误(排错,Debugging)是编程的

24、必经阶段。初学者的观点:我写的程序肯定没问题,照书上写的,是系统或者计算机有问题程序中的错误是人的错误。排除程序错误就是排除自己在程序设计中所犯错误。,错误可分为两类:语法错误程序形式不符合语言规定。C语言系统在加工时能指出程序里的这类错误。逻辑错误、链接错误程序形式正确,能完成加工,产生可执行程序。但程序工作不正常:或在执行中出问题,或计算结果(或执行效果)不合要求。常见Bug: 违反环境要求;死循环,异常,逻辑错误,语言系统查出错误时,将产生一些“错误信息”行,指明发现位置和错误类型,供人参考。注意:应仔细阅读系统报错信息,检查所指位置附近的源程序,找到实际错误并予以排除。基本原则:集中精

25、力排除系统发现的第一个错误。,两个问题:1)实际错误可能出现在指定错误位置前面很远处。2)一个实际错误有时会导致许多出错信息行。应注意警告信息(Warning)。警告常表示隐藏较深的错误,必须认真弄清原因。,2022/11/30,高级语言程序设计,57,掌握语法规则,体会程序设计语言结构; 理解算法,掌握程序设计的基本方法和典型技术; 从计算和程序的角度提高分析问题的能力; 能剖析和理解经典算法; 养成良好的程序设计习惯,编制规范程序; 熟悉开发环境,学会调试与排错; 理解语言机制和内涵为学习其它语言奠定基础; 提高驾御语言的能力; 高级语言程序设计是一门实践性较强的课程。,学习要求,写出程序和写好程序之间有很大距离,只有写好小程序,才能写出大些的程序,2022/11/30,高级语言程序设计,58,课后作业,1.用N-S结构图描述从十个数中选择最大数的算法, 找出其中的顺序结构、选择结构和循环结构。2.给出求从1-100之间能被6整除的所有整数的和的算法(用N-S结构图描述)。3.给出求100-999之间水仙花数的算法(用N-S结构图描述)。 水仙花数是一个三位数,各位数的立方和等于这个数本身,如:153=13+53+33,2022/11/30,高级语言程序设计,59,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号