北京交通大学C语言课件第1章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《北京交通大学C语言课件第1章.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京 交通大学 语言 课件
- 资源描述:
-
1、实践是能力赖以生长的土壤!实践是能力赖以生长的土壤!高级语言程序设计高级语言程序设计主讲教师:丁丁主讲教师:丁丁计算机与信息技术学院计算机与信息技术学院第一章第一章程序设计与程序设计与C语言语言主要内容主要内容n程序和程序语言程序和程序语言q程序和程序语言程序和程序语言q算法及其描述工具算法及其描述工具n程序设计方法程序设计方法n问题与程序设计问题与程序设计2022-5-24高级高级语言程序设计语言程序设计41.1 程序和程序语言程序和程序语言例:到图书馆借参考书例:到图书馆借参考书1) 进入图书馆;进入图书馆;2 ) 查书目;查书目;3 ) 填写索书单;填写索书单;4 ) 如果书未借出如果书
2、未借出 那么:交图书馆工作人员取书;办理借书手续;到那么:交图书馆工作人员取书;办理借书手续;到5;5) 如果还需借其它书如果还需借其它书,回到回到2;否则到否则到6;6 ) 离开图书馆。离开图书馆。“程序程序”(program)通常指完成某些事务的一种既定方式通常指完成某些事务的一种既定方式和过程。和过程。 2022-5-24高级高级语言程序设计语言程序设计5一些直观特征一些直观特征n按部就班地进行;按部就班地进行;n开始与结束;开始与结束;n完成某项具体任务;完成某项具体任务;n需要用某种记法形式描述(计算机程序需要用某需要用某种记法形式描述(计算机程序需要用某种精确定义的形式描述);种精
3、确定义的形式描述);n是在一些基本动作的基础上描述的;是在一些基本动作的基础上描述的;n不同的描述粒度(细节程度);不同的描述粒度(细节程度);n 2022-5-24高级高级语言程序设计语言程序设计61 程序程序n程序:规定了计算机执行的动作和动作的顺序。程序:规定了计算机执行的动作和动作的顺序。n一个程序应包括以下两方面的内容:一个程序应包括以下两方面的内容:q对数据的描述:在程序中要指定数据的类型和数据的组织形式,对数据的描述:在程序中要指定数据的类型和数据的组织形式,即即数据结构数据结构。q对操作的描述:即操作步骤,也就是对操作的描述:即操作步骤,也就是算法算法(解决问题的方法和步(解决
4、问题的方法和步骤)。骤)。q数据是操作的对象,操作的目的是对数据进行加工处理,以得到数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。期望的结果。n程序程序 数据结构数据结构 算法算法q著名计算机科学家著名计算机科学家Nikiklaus Wirthn作为程序设计人员,必须认真考虑和设计数据结构和操作步聚作为程序设计人员,必须认真考虑和设计数据结构和操作步聚2022-5-24高级高级语言程序设计语言程序设计72022-5-24高级高级语言程序设计语言程序设计8例:求例:求1 12 23 34 45 5 C C语言编写的程序:语言编写的程序:#include void main(
5、 ) 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 1,2 2,3 3,4 4,5 5数据结构:数据结构:int int 类型类型算法:算法: 步骤步骤1 1:先求:先求1 12 2,得到结果,得到结果2 2 步骤步骤2 2:将步骤:将步骤1 1得到的乘积得到的乘积2 2再再 乘以乘以3 3,得到结果,得到结果6 6; 步骤步骤3 3:将:将6 6再乘以再乘以4 4,得,得2424 步骤步骤4 4:将:将2424再乘以再乘以5 5,得,得120120太繁琐2022-5-
6、24高级高级语言程序设计语言程序设计9设变量设变量t t为被乘数,为被乘数,i i为乘数。为乘数。用循环算法来求结果用循环算法来求结果, , 算法可改写为:算法可改写为:C C语言编写的程序:语言编写的程序:#include Void main( )int i,t; t=1; i=2;while(i ti = t步骤步骤4 4:i+1 = ii+1 = i步骤步骤5 5:如果:如果i i不大于不大于5 5,返,返回步骤回步骤3 3;否则结束。最后;否则结束。最后得到得到t t的值就是的值就是5!5!的值的值。 简练n硬件层面上的程序是机器指令的序列。硬件层面上的程序是机器指令的序列。n程序执行
7、:将程序存入内存,通知程序执行:将程序存入内存,通知CPU第一条指令的地址。第一条指令的地址。命令它命令它“开始开始”!n一般情况下,一般情况下,CPU执行完一条指令后,自动取出下一条指令,执行完一条指令后,自动取出下一条指令,并如此继续下去。并如此继续下去。n转跳指令明确指定下一条指令的位置,人可以基于转跳指令转跳指令明确指定下一条指令的位置,人可以基于转跳指令描述复杂的执行流程。描述复杂的执行流程。n人命令计算机去执行一个程序,计算机就会一丝不苟地按这人命令计算机去执行一个程序,计算机就会一丝不苟地按这个程序的内容,一条一条指令执行,直至程序结束(指令执个程序的内容,一条一条指令执行,直至
8、程序结束(指令执行到了最后,或者遇到明确的停止指令)。行到了最后,或者遇到明确的停止指令)。2022-5-24高级高级语言程序设计语言程序设计10程序的执行程序的执行2 算法算法n算法:解决问题的方法和步骤算法:解决问题的方法和步骤 q解决一个问题的过程就是实现一个算法的过程。解决一个问题的过程就是实现一个算法的过程。n算法分为两大类:算法分为两大类:q数值运算:如解方程、求定积分数值运算:如解方程、求定积分q非数值运算:如排序、检索、绘图非数值运算:如排序、检索、绘图2022-5-24高级高级语言程序设计语言程序设计11例:用公式例:用公式y=x2-2x+3计算计算x=0,1,2,3, 10
9、0 所所对应的对应的y值,使用如下算法:值,使用如下算法: (1) 置置x为为0; (2) 置置x的上界的上界n=100; (3) 当当xn时,重复执行时,重复执行3.1,3.2,3.3步,否则,算法停止。步,否则,算法停止。 (3.1) 用公式计算用公式计算y值;值; (3.2) 打印一组打印一组x和和y的值;的值; (3.3) x值增加值增加1。 2022-5-24高级高级语言程序设计语言程序设计122022-5-24高级高级语言程序设计语言程序设计13算法的算法的5个特性个特性n有穷性:有穷性:即算法通过有限步骤后能够结束n确定性:确定性:无二义性,算法必须具有清晰的定义、不能存在任何的
10、模糊n有零个或多个输入有零个或多个输入n有一个或多个输出有一个或多个输出n可行性:可行性:即算法的每一步都是可执行的同一个问题可以有多种算法同一个问题可以有多种算法2022-5-24高级高级语言程序设计语言程序设计14算法的描述工具算法的描述工具n(1)流程图(传统流程图)流程图(传统流程图)n(2)结构流程图()结构流程图(N-S结构图)结构图)n(3)伪代码)伪代码2022-5-24高级高级语言程序设计语言程序设计15算法的描述工具:流程图算法的描述工具:流程图n用一些图框表示各种操作,形象直观,易于理解用一些图框表示各种操作,形象直观,易于理解n ANSI规定一些常用的流程图符号规定一些
11、常用的流程图符号 n一个流程图包括以下一个流程图包括以下几部分:几部分: q表示相应操作的框表示相应操作的框 q带箭头的流程线带箭头的流程线 q框内外必要的说明文字框内外必要的说明文字 x=nx=0, n=100计算计算y=x*x-2*x+3打印打印x,yx=x+1开始开始结束结束真真假假2022-5-24高级高级语言程序设计语言程序设计162022-5-24高级高级语言程序设计语言程序设计17算法的描述工具:算法的描述工具:N-S图图n美国学者美国学者I.Nassi和和B.Shneiderman提提出的一种新的流程出的一种新的流程图图n全部算法写在一个全部算法写在一个矩形框内矩形框内,由一些
12、,由一些基本的框组成一个基本的框组成一个大的框,称大的框,称N-S图图x=0, n=100 x=n计算计算y=x*x-2*x+3打印打印x,yx=x+12022-5-24高级高级语言程序设计语言程序设计18算法的描述工具:伪码算法的描述工具:伪码n概念概念:伪代码:伪代码(pseudo code)是用来描述算法的是用来描述算法的介于自然语言和计算机语言之间的文字和符号。介于自然语言和计算机语言之间的文字和符号。n特点特点:自上而下:自上而下q每一行(或几行)表示一个基本操作;每一行(或几行)表示一个基本操作;q不用图形符号,书写方便、格式紧凑;不用图形符号,书写方便、格式紧凑;q便于向计算机语
13、言算法(即程序)过渡。便于向计算机语言算法(即程序)过渡。n用处用处:适用于设计过程中需要反复修改时的流程:适用于设计过程中需要反复修改时的流程描述。描述。n伪码伪码 begin initialize x to zero initialize n to 100 while x=n calculate y print x, y add one to x end2022-5-24高级高级语言程序设计语言程序设计19例:求例:求1+2+100的和的和i=100sum=0, i=1sum=sum+ii=i+1开始开始结束结束真真假假print sumn传统流程图传统流程图2022-5-24高级高级语言
14、程序设计语言程序设计20例:求例:求1+2+100的和的和beginsum0, i1;while i=100 sumsum+i; ii+1;print sumendsum=0, i=1i 编译加工编译加工 执行执行使用高级语言编程:使用高级语言编程:p编程工作的效率大大提高编程工作的效率大大提高p人更容易思考和把握复杂程序的意义人更容易思考和把握复杂程序的意义p更多人愿意投身于这种工作,使编程发展成为一种职业和谋更多人愿意投身于这种工作,使编程发展成为一种职业和谋生方式生方式p术语术语“程序设计语言程序设计语言”已专指已专指“高级语言高级语言”2022-5-24高级高级语言程序设计语言程序设计
15、35n1954年到年到1957年:高级语言年:高级语言Fortran诞生诞生;n至至1960年代中,开发了年代中,开发了Algol 60 ,COBOL,BASIC等。还有函数式语言等。还有函数式语言LISP 等等;n1970年代开始:年代开始:Pascal 和和 C语言逐渐分别为教学科研语言逐渐分别为教学科研和软件开发用的主要语言和软件开发用的主要语言;n1980年代:逻辑程序语言年代:逻辑程序语言Prolog,面向对象语言,面向对象语言Smalltalk 和后来的和后来的C+;n1995年左右的年左右的Java 。高级语言的简单历史高级语言的简单历史2022-5-24高级高级语言程序设计语言
16、程序设计36nC语言比较小,入门容易,很快就可以开始编程语言比较小,入门容易,很快就可以开始编程n有丰富的程序机制、数据机制、函数定义机制,能满足复杂有丰富的程序机制、数据机制、函数定义机制,能满足复杂程序的需要。许多常用功能通过库实现程序的需要。许多常用功能通过库实现n提供接近硬件的低级操作,广泛用于开发效率要求高的程序。提供接近硬件的低级操作,广泛用于开发效率要求高的程序。被用于代替汇编语言开发底层软件被用于代替汇编语言开发底层软件n生成目标代码质量高、可移植性好,被称为生成目标代码质量高、可移植性好,被称为“中级语言中级语言”n提供了一些支持大规模复杂软件开发的机制提供了一些支持大规模复
17、杂软件开发的机制pC 语言的工作得到世界计算机界的广泛赞许。对计算机工业和语言的工作得到世界计算机界的广泛赞许。对计算机工业和应用发展起了重要推动作用应用发展起了重要推动作用p许多新语言从许多新语言从C汲取营养。如汲取营养。如C+,Java,C#等等p语言设计者获得计算机领域最高奖语言设计者获得计算机领域最高奖图灵奖图灵奖C语言的特点语言的特点nC语言语言1973年由贝尔实验室的年由贝尔实验室的Dennis Ritchie 设计,目标是书设计,目标是书写操作系统和其他系统程序。写操作系统和其他系统程序。nC语言最早用于写语言最早用于写UNIX系统系统。70年代成为年代成为UNIX的标准开发的标
展开阅读全文