我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:藏宝阁 > 第一代语言 >

大学C语言第一章课件

归档日期:07-07       文本归类:第一代语言      文章编辑:爱尚语录

  第一章 计算机组 成与程序 设计语言 2018/10/21 1 内容提要 1.计算机的前世今生 2.进制 3.由低级语言到高级语言 4.C is the most beautiful language! 5.C程序开发过程 2018/10/21 2 1.计算机的前世今生 石器时代 石头、手指、绳子…… 铁器时代 算盘 铜器时代 算筹(商周时代)、格子(西方) 通过程序设计语言来开 发软件 计算机 加在硬件之上,控制硬 件完成功能 2018/10/21 物质基础 3 冯·诺依曼的程序存储思想 ? “计算机之父”——冯· 诺依曼的程序存储思想: ? 计算机应该采用二进制 ? 操作指令也是一种信息 ,也 用二进制数表示 ? 程序和数据的存储形式可以 完全相同 ? 程序本身也可包含数据 2018/10/21 4 关于第一台计算机 ? ? ? ? 1946.2.14 ENIAC(埃尼阿克) 现在保存在宾夕法尼亚大学 这台机器名为“电子数值积分 和计算机”(简称埃尼阿克, 完全是一个庞然大物,占地面 积达170m2,质量达30t,耗电 量也很惊人,功率为150kW, 共使用了近两万个电子管,在 工作时这些管子看上去活像两 万只点着的灯泡。 埃尼阿克主要用来进行弹道计 算的数值分析 2018/10/21 5 其他版本的第一台计算机 ? ? ? ? 图灵机:计算机科学之父、人 工智能之父, “图灵奖” 德国人Conran Euse代号为 “Z”的计算机 哈佛,IBM的Mark系列大型电 子计算机 真正的第一台计算机是上面三 台中之一,无从考证 2018/10/21 6 计算机组成 ? 计算机的组成: 硬件系统+软件系统 ? 计算机的作用:用来处理存储的数据,处理和存储是一 个整体. comput + er ——计算的机器 计算机是一种具有记忆能力,能自动执 行指定的任务并能高速执行运算功能的 电子设备。 2018/10/21 7 处 理 ?计算机硬件的组成 CPU 输入指令代码 进行各种算术运算和逻辑运算 和原始数据 地址总线 输入设备 运算器 存储器 接口 输出设备 数据总线 显示或打印 存放程序指 计算结果令及数据 控制总线 控制和指挥整个运算过程,使 指令按要求一条一条执行。 控制器 2018/10/21 8 关于CPU ? CPU:Central Processor Unit,中央处理器,完成各 种处理(运算+控制),是计算机最核心部件。 ? CPU中设寄存器的目的:存放数据或计算的中间结果, 不通过地址总线和数据总线 ,处理速度快 。 ? 寄存器有两种:通用寄存器和专用寄存器。 是运算器的组成部 分,暂存操作数及 运算的中间结果 每一个都有特定的作用 2018/10/21 9 关于存储器 ? 存储器的组成:由存储单元组成,每个单元1个字节 (1B),1B=8bit,每个单元有一个地址。 ? 存储单元中的内容与存储单元的地址是两个概念,其 区别如同房间里的东西与房间号码。 ? 存储器的大小指它有多少个字节,也就是有多少个不 同的地址号,取决于地址总线的根数,n根地址总线n ? 常用存储单位:1TB=210GB=220MB=230KB=240B 2018/10/21 10 位与字节 ? 一个位有多大? ? 只能是1位“0”或者“1”,换言之,可以表示两个数。 ? 一个字节有多大? ? 8个bit,可以表示2*2*2*2*2*2*2*2 = 28 = 256个数 ? 计算机常用一个字节来表示字符,即8位bit对应一 个字符,一个字节共能表示256个不同字符 2018/10/21 11 存储容量的衡量单位 ? ? ? ? ? ? bit,称为比特或者位。1比特可以存放一位二进制 的0或者1 Byte,字节。 1B=8b Kilobyte(KB)。 1 KB = 1,024 B Megabyte(MB)。 1 MB = 1,024 KB Gigabyte(GB)。 1 GB = 1,024 MB Terabyte(TB)。 1 TB = 1,024 GB 2018/10/21 12 2.进制 ? ? ? ? 我们使用得最多的是十进制。 日常生活中的其它进制: 六十进制(分、秒),十二进制(月份)等。 计算机中采用二进制。 2018/10/21 13 计算机为什么使用二进制? ? 为什么不使用十进制? ? 二进制在电器元件中容易实现 ? 二进制运算比十进制运算简单 ? 计算机中采用二进制,是由冯?诺伊曼提出的。 2018/10/21 14 二进制 ? ? 二进制采用0、1两个符号来表示所有的数,其特点 是“逢2进1”。 0、1、10、11…… 二进制中的“二”称为“基数”。表示该数制中允 许使用的基本符号个数。 2018/10/21 15 二进制 ? ? ? “世界上有10种人,一种人懂二进制,另一种人不 懂。” 问题:在书写二进制数时,有可能与习惯用的十进 制数发生混淆。 解决办法:用后缀“B”(Binary)或者下标“2” 注明。 (1101)10:十进制数1101。 (1101)2 1101B :二进制数1101。 2018/10/21 16 二进制数的算术运算基本规则 1.二进制数的加法运算 加法运算法则 0+0=0 0+1=1 1+0=1 01+01=10 + 1101 1110 11011 2.二进制数的减法运算 减法运算法则 0-0=0 1-0=1 2018/10/21 1-1=0 10-01=01 - 11011 1110 1101 17 二进制转换为十进制 ? 进制数的展开 (1101)10=1×103+1×102+0×101+1×100 (1101)2=1×23+1×22+0×21+1×20 ? 如果出现了小数? (101.11)10 = 1×102+0×101+1×100+1×10-1+1×10-2 (101.11)2 = 1×22+0×21+1×20+1×2-1+1×2-2 (1101)2 = 1×23+1×22+0×21+1×20 = 13 (101.11)2 = 1×22+0×21+1×20+1×2-1+1×2-2 = 5.75 2018/10/21 18 十进制整数转换为二进制 除二求余法(“逐次除以2,倒着排余数”) 例:将十进制数68转化为二进制数 解: ? 2 68 余 数 2 34 ┄┄┄┄┄┄┄┄┄┄┄┄0 低位 2 17 ┄┄┄┄┄┄┄┄┄┄┄ 0 2 8 ┄┄┄┄┄┄┄┄┄┄┄ 1 2 4 ┄┄┄┄┄┄┄┄┄┄ 0 2 2 ┄┄┄┄┄┄┄┄┄┄ 0 2 1 ┄┄┄┄┄┄┄┄┄ 0 0 ┄┄┄┄┄┄┄┄┄ 1 高位 所以 6810=10001002 2018/10/21 ?8进制 16进制 进 制 十 二 八 每位 符号 0~9 0~1 0~7 逢几 进一 10 2 8 位 权 10i 2i 8i n位数的 不同个数 10n 2n 8n 例子(结果统一到十进制) 341=3*102+4*101+1*100=341 101=1*22+0*21+1*20=5 127=1*82+2*81+7*80=87 十 六 0~9 A~F 16 16 i 16 n 31D=3*16 +1*16 +13*16 =797 2 1 0 另:3位二进制数相当于1位八进制数: 101 011B=(53)8=53Q 4位二进制数相当于1位十六进制数: 1101 1001B=(D9)16=D9H=d9H 2018/10/21 20 3.由低级语言到高级语言 程序是用计算机“理解”的语言所编写的一组命令,让 计算机来完成某个任务。 ? 2018/10/21 21 机器语言 ? 计算机能直接理解的语言—— ? 机器语言(Machine Language) ? 由一系列二进制0和1组成 10111000 00000001 00000000 00000101 00000001 00000000 2018/10/21 所编写的计算机程序体现为一系列 指令的集合,每条指令的操作码和 操作数都用二进制数表示。 用机器语言编写的源程序就是机器 能识别并执行的目标程序 22 机器语言 ? ? ? ? ? ? 很久以前,那还是我用win98的时候有次我系统崩溃了,因为我是电脑白痴, 我朋友给我介绍了一个高手来帮我修电脑。 他看了一下电脑,问我有没有98的盘,我说没有。 他想了一下,叫我把固定电话拿给他,我想修电脑要电话干什么,但人 家是高手,我也不好说什么,就把电话拔下来给他了。 他把电话线空着的一头接在电脑的一个插孔内,然后进入了dos,然后就 开始在电话上不停的按着键,他按键的速度非常快,但是只按0,1两个键, 我搞不懂这有什么用,但也不敢问,看了半个多小时,他还是不停的按这两 个键,我渐渐的有些困,我问他这东西要搞多久,他说要几个小时,我给他 倒了杯茶,就一个人去隔壁睡觉了。 醒来的时候,一看已经过了4个多小时,我起身到隔壁,看见他正在98里 面调试,过了一会儿,他说,你试试,我坐上椅子用了一下,真的好了,我 当时也不懂电脑,谢过人家就走了。 后来我慢慢对电脑有了了解,终于了解,原来当时那位高手是用机器语 言编了一个98系统,我后来问我朋友那位高手的下落,我朋友说前几年去了 美国之后,杳无音讯... 2018/10/21 23 汇编语言与高级语言 ? 汇编语言:比机器语言“高级”一些的语言 ,引入一些助记符来表示代码和数据。 MOV ADD AX , 1 AX , 1 ? 高级语言:比汇编语言“高级”一些的语言 。如Basic、Fortran、C、C++、Java等。 2018/10/21 24 C程序设计语言 高级语 言的地 盘 C 语 言 的 地 盘 低级语 言的地 盘 应用程序 (Application) 操作系统(OS) 硬件(Hardware) 25 2018/10/21 计算机如何读懂高级语言? ? 编译器(Compiler) ? 作用:把源代码转换为计算机能读懂的机器代码。 ? 本身也是一个程序。 ? 机器代码以可执行文件的形式保存。 ? ? 不同的语言编译器不同 同一种语言可以有多种编译器 2018/10/21 26 一次转换的过程 ? ? ? 程序员用高级语言编写源程序 编译器把高级语言源程序变成目标程序(可 执行程序) 用户在计算机上执行目标程序 编译器 C语言源程序 2018/10/21 27 可执行程序 由低级语言到高级语言 ? 机器语言:是第一代程序设计语言,是计算机硬件系 统能识别和执行的唯一语言。 ? 机器语言的3个局限性: ? (1)程序不容易读写,操作码和操作数都是二进制数 改进:用助记符代替机器的数字指令,用符号地址表示存储 单元的数字地址——汇编语言(第二代程序设计语言) ? (2)对计算机硬件的依赖性很强,可移植性差 改进:面向问题而非面向机器,与计算机硬件结构无关 ? (3)指令功能简单,没有按照数据类型分类 改进:提供丰富的数据类型,语句一般都采用自然语汇, 一条语句往往相当于多条指令。 2018/10/21 28 由低级语言到高级语言 ? 第一种高级程序设计语言:Fortran语言(1954年) ? 第一种结构化程序设计语言:Pascal语言(1970年) ? 面向问题而不是面向机器 ? 通用性、可移植性、效率提高 ? 高级语言的发展: ? (1)从早期语言到结构化程序设计语言 ? (2)从面向过程到非过程化程序设计语言(面向对象) ? (3)发展趋势:面向应用 2018/10/21 29 由低级语言到高级语言 ? 区分两组概念: ? (1)程序设计语言与程序(类似于汉语与文章的关系 ) ? (2)源程序与目标程序: ? 源程序:程序员编写的程序 ? 目标程序:计算机最终能识别并运行的程序(二进制) 源 程 序 2009.8 朱立华 俞琼 王立柱 用汇编语言编写 用机器语言编写 用高级语言编写 编 汇 编 译 程 序 编译 汇编 30 目 标 程 序 4.C is the most beautiful language! ? C 语言最早的原型是 ALGOL 60 ? 1973 年,AT&T 贝尔实验室的 Dennis Ritchie ? (D.M.RITCHIE,被尊为“C语言之父”) 在 BCPL 和 B 语言的基础上设计出了一种新的语言——C语言, 开发UNIX操作系统及其上的应用程序。 ? 1999 年,ANSI 和 ISO 通过了最新版本的 C 语言 标准C99,这是关于 C 语言的最新、最权威的定义。 ? 选择学习C语言的理由:C语言不仅是面向过程的程序 设计语言中功能最强、效率最高的语言,更是面向对 象程序设计语言C++、Java和C#的基础。 2018/10/21 31 C is the most beautiful language! ? C语言具有很多优点: ? 简洁紧凑、灵活方便 ? 运算符丰富(34个) ? 数据类型丰富 ? C是结构式语言,程序层次清晰 ? C语法限制不太严格,语法比较灵活。 ? C语言允许直接访问物理地址,可直接对硬件进行操作 , 既可以开发系统软件,又可以开发应用软件(中级语言) ? C语言程序生成代码质量高,程序执行效率高 ? C语言适用范围大,可移植性好,适合多种操作系统,多种 机型 2018/10/21 32 5.程序开发步骤 执行(Run) 装载(Load) 链接(Link) 编译(Compile) 预处理(Preprocess) 编辑(Edit) 2018/10/21 33 扩展名为.exe 的可执行文件 ? 扩展名为.obj的文件 ? ? 扩展名为.c的文件 在VC++6.0下开发程序的过程 ? C程序的开发在特定的集成开发环境下进行 ? 本教材中所有的程序在VC++6.0下通过,并且课程配 套实验也要求在VC++6.0下 ? VC++6.0集成环境中提供了编辑器、编译器、链接器、 调试器等多种工具,使得程序员从源程序的编辑到最 后的运行均可在集成环境中完成 2018/10/21 34 答疑安排 时间:每周二中午 12:00-13:30 地点:行政楼北楼508 每节课下亦可 return 2012.10 35 本章小结 ? 重点掌握:冯?诺依曼体系结构的计算机 ? 程序存储思想的主要内容 ? 五大部件:运算器、控制器、存储器、输入设备、输出设备 ? 重点掌握:二进制 ? 重点掌握:程序设计语言与程序、源程序与目标程序 的关系 ? 程序设计语言是编写程序的工具,程序都用一定的语言编写 ? 源程序不一定是目标程序,取决于用什么语言编写 ? 高级语言编写的源程序到目标程序需要经过编译器的编译 ? 重点掌握:程序设计的一般步骤 2018/10/21 36 本章小结 ? 基本了解(自学):机器内部执行程序的过程,子程序 调用的过程以及其中的几个主要概念 ? CPU中寄存器的分类和作用(A,PC) ? 程序是一组指令,每条指令有操作码,有的指令有操作数 ? 指令存储在程序存储区,操作数存储在数据存储区。 ? 子程序调用过程中的概念:入口地址、中断、断口地址、保 护现场、恢复现场 2018/10/21 37 2018/10/21 38

本文链接:http://kuenergyclub.com/diyidaiyuyan/653.html