北京交通大学c语言幻灯片第1章

上传人:F****n 文档编号:88136829 上传时间:2019-04-19 格式:PPT 页数:58 大小:695KB
返回 下载 相关 举报
北京交通大学c语言幻灯片第1章_第1页
第1页 / 共58页
北京交通大学c语言幻灯片第1章_第2页
第2页 / 共58页
北京交通大学c语言幻灯片第1章_第3页
第3页 / 共58页
北京交通大学c语言幻灯片第1章_第4页
第4页 / 共58页
北京交通大学c语言幻灯片第1章_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《北京交通大学c语言幻灯片第1章》由会员分享,可在线阅读,更多相关《北京交通大学c语言幻灯片第1章(58页珍藏版)》请在金锄头文库上搜索。

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

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

3、 作为程序设计人员,必须认真考虑和设计数据结构和操作步聚,2019/4/19,高级语言程序设计,7,2019/4/19,高级语言程序设计,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,2019/

4、4/19,高级语言程序设计,9,设变量t为被乘数,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、指令,并如此继续下去。 转跳指令明确指定下一条指令的位置,人可以基于转跳指令描述复杂的执行流程。 人命令计算机去执行一个程序,计算机就会一丝不苟地按这个程序的内容,一条一条指令执行,直至程序结束(指令执行到了最后,或者遇到明确的停止指令)。,2019/4/19,高级语言程序设计,10,程序的执行,2 算法,算法:解决问题的方法和步骤 解决一个问题的过程就是实现一个算法的过程。 算法分为两大类: 数值运算:如解方程、求定积分 非数值运算:如排序、检索、绘图,2019/4/19,高级语言程序设计,11,例:用公式y=x2-2x+3计算x=0,1,2,3, 100 所对应的y值,使用如下算法: (1

6、) 置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。,2019/4/19,高级语言程序设计,12,2019/4/19,高级语言程序设计,13,算法的5个特性,有穷性:即算法通过有限步骤后能够结束 确定性:无二义性,算法必须具有清晰的定义、不能存在任何的模糊 有零个或多个输入 有一个或多个输出 可行性:即算法的每一步都是可执行的,同一个问题可以有多种算法,2019/4/19,高级语言程序设计,14,算法的描述工具,(1)流程图(传统流程图) (

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

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

9、rint x, y add one to x end,2019/4/19,高级语言程序设计,19,例:求1+2+100的和,i=100,sum=0, i=1,sum=sum+i i=i+1,开始,结束,真,假,print sum,传统流程图,2019/4/19,高级语言程序设计,20,例:求1+2+100的和,begin sum0, i1; while i=100 sumsum+i; ii+1; print sum end,sum=0, i=1,i=100,sum=sum+i i=i+1,print sum,NS图,伪代码,2019/4/19,高级语言程序设计,21,课堂练习1,请为24620

10、0设计算法并画流程图,2019/4/19,高级语言程序设计,22,课堂练习2,判断某一年是否为闰年 能被400整除 能被4整除,但不能被100整除,2019/4/19,高级语言程序设计,23,3 程序设计语言,算法是对所解决问题的精确描述,程序设计语言是计算机可处理的代码,是人与计算机交流的最基本最重要的媒介; 利用程序设计语言将算法转化为源程序,通过计算机处理解决问题。,2019/4/19,高级语言程序设计,24,25,计算机与人沟通,26,计算机与人沟通,27,计算机与人沟通,28,计算机与人沟通,29,计算机与人沟通,人和计算机通信使用 的语言为计算机语言,程序设计语言的产生发展,CPU

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

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

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

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

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

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

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号