电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

58页
  • 卖家[上传人]:F****n
  • 文档编号:88136829
  • 上传时间:2019-04-19
  • 文档格式:PPT
  • 文档大小:695KB
  • / 58 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、实践是能力赖以生长的土壤!,高级语言程序设计,主讲教师:丁丁 计算机与信息技术学院 ,第一章 程序设计与C语言,主要内容,程序和程序语言 程序和程序语言 算法及其描述工具 程序设计方法 问题与程序设计,2019/4/19,高级语言程序设计,4,1.1 程序和程序语言,例:到图书馆借参考书,1) 进入图书馆; 2 ) 查书目; 3 ) 填写索书单; 4 ) 如果书未借出 那么:交图书馆工作人员取书;办理借书手续;到5; 5) 如果还需借其它书,回到2;否则到6; 6 ) 离开图书馆。,“程序”(program)通常指完成某些事务的一种既定方式和过程。,2019/4/19,高级语言程序设计,5,一些直观特征,按部就班地进行; 开始与结束; 完成某项具体任务; 需要用某种记法形式描述(计算机程序需要用某种精确定义的形式描述); 是在一些基本动作的基础上描述的; 不同的描述粒度(细节程度); ,2019/4/19,高级语言程序设计,6,1 程序,程序:规定了计算机执行的动作和动作的顺序。 一个程序应包括以下两方面的内容: 对数据的描述:在程序中要指定数据的类型和数据的组织形式,即数据结构。 对

      2、操作的描述:即操作步骤,也就是算法(解决问题的方法和步骤)。 数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。 程序 数据结构 算法 著名计算机科学家Nikiklaus Wirth 作为程序设计人员,必须认真考虑和设计数据结构和操作步聚,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/19,高级语言程序设计,9,设变量t为被乘数,i为乘数。 用循环算法来求结果, 算法可改写为:,C语言编写的程序: #include Void main( ) int i,t; t=1; i=2;

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

      4、) 置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)流程图(传统流程图) (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,高

      5、级语言程序设计,16,2019/4/19,高级语言程序设计,17,算法的描述工具:N-S图,美国学者I.Nassi和B.Shneiderman提出的一种新的流程图 全部算法写在一个矩形框内,由一些基本的框组成一个大的框,称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 print 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,开始,结束

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

      7、指令系统,由0、1序列构成的指令码组成 如:10000000 加 10010000 减,用助记符号描述的指令系统 如 ADD A, B,接近于人类的自然语言和数学语言 如:c=a+b,面向过程的语言算法语言 Basic, Fortan, Pascal,C语言等,Java,C+等,2019/4/19,高级语言程序设计,30,机器语言和程序,机器语言是机器指令形成的语言; 形式为二进制编码,机器可直接执行,00000001000000001000 00000001000100001010 00000101000000000001 00000001000100001100 00000100000000000001 00000010000000001110,数据装入寄存器0 数据装入寄存器1 寄存器0与1的数据乘 数据装入寄存器1 寄存器0与1的数据加 保存寄存器0里的数据,难写难读,不易编程,与机器有关、程序开发效率极低。,2019/4/19,高级语言程序设计,31,汇编语言和程序,汇编语言:采用助记的符号形式,有利于人的阅读和使用。汇编指令与机器指令一一对应,load 0 a load 1

      8、 b mult 0 1 load 1 c add 0 1 save 0 d,将单元a的数据装入寄存器0 将单元b的数据装入寄存器1 寄存器0与1的数据乘 将单元c的数据装入寄存器1 寄存器0与1的数据加 将寄存器0里的数据存入单元d,仍然难理解,不易编程,与机器有关、程序开发效率低。,2019/4/19,高级语言程序设计,32,计算机无法直接执行汇编语言程序,执行前需要把汇编语言程序翻译为机器指令程序 最早时通过手工翻译为机器指令 后来人们开发出称为“汇编系统”的程序,让计算机去完成程序翻译工作,汇编语言的特点: 每条指令的意义容易理解 程序粒度太小,细节太多 程序无结构,缺乏组织手段 写大程序仍然很困难,2019/4/19,高级语言程序设计,33,高级语言和程序,高级语言的特点: 具有类似文字的表现形式,接近自然语言 具有丰富的数据结构,用类似数学表达式形式描述基本计算 用变量等概念取代低级的存储概念,使人摆脱各种繁琐低级的工作,例如存储的安排 提供高级操作流程控制手段和程序组织手段 与具体的机器无关,可移值性好,在C语言里写前面同样的程序: d = a * b + c;,2019/

      9、4/19,高级语言程序设计,34,计算机无法直接执行高级语言写出的程序 常规方式是做一个编译系统,完成高级语言程序到机器语言可执行程序的翻译加工 编程 编译加工 执行,使用高级语言编程: 编程工作的效率大大提高 人更容易思考和把握复杂程序的意义 更多人愿意投身于这种工作,使编程发展成为一种职业和谋生方式 术语“程序设计语言”已专指“高级语言”,2019/4/19,高级语言程序设计,35,1954年到1957年:高级语言Fortran诞生; 至1960年代中,开发了Algol 60 ,COBOL,BASIC等。还有函数式语言LISP 等; 1970年代开始:Pascal 和 C语言逐渐分别为教学科研和软件开发用的主要语言; 1980年代:逻辑程序语言Prolog,面向对象语言Smalltalk 和后来的C+; 1995年左右的Java 。,高级语言的简单历史,2019/4/19,高级语言程序设计,36,C语言比较小,入门容易,很快就可以开始编程 有丰富的程序机制、数据机制、函数定义机制,能满足复杂程序的需要。许多常用功能通过库实现 提供接近硬件的低级操作,广泛用于开发效率要求高的程序。被用于代替汇编语言开发底层软件 生成目标代码质量高、可移植性好,被称为“中级语言” 提供了一些支持大规模复杂软件开发的机制,C 语言的工作得到世界计算机界的广泛赞许。对计算机工业和应用发展起了重要推动作用 许多新语言从C汲取营养。如C+,Java,C#等 语言设计者获得计算机领域最高奖图灵奖,C语言的特点,C语言1973年由贝尔实验室的Dennis Ritchie 设计,目标是书写操作系统和其他系统程序。 C语言最早用于写UNIX系统。70年代成为UNIX的标准开发语言,随UNIX流行而被广泛接受。 80年代被搬到各种机器的许多操作系统上,逐渐成为一种开发系统程序和复杂软件的通用语言。 后来成为使用最广泛的系统开发语言。人们用C开发各种程序,从简单应用到极其复杂的大型软件。 各种计算机都有可用的C语言系统。,C语言简介,2019/4/19,高级语言程序设计,38,

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

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.