使用本课件至少128m内存

上传人:j****9 文档编号:54195272 上传时间:2018-09-09 格式:PPT 页数:31 大小:373.50KB
返回 下载 相关 举报
使用本课件至少128m内存_第1页
第1页 / 共31页
使用本课件至少128m内存_第2页
第2页 / 共31页
使用本课件至少128m内存_第3页
第3页 / 共31页
使用本课件至少128m内存_第4页
第4页 / 共31页
使用本课件至少128m内存_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《使用本课件至少128m内存》由会员分享,可在线阅读,更多相关《使用本课件至少128m内存(31页珍藏版)》请在金锄头文库上搜索。

1、1,声明使用本课件至少128M内存,并使用office 2000以上版本或使用自带播放工具pptview。使用本课件请配合选用人民邮电出版社出版 的c/c+程序设计教程。如有任何意见和建议请发电子邮件件到或 ,2,一、机器语言、汇编语言和高级语言二、C语言的历史与特点三、从C语言到C+语言的进化四、计算机结构的五个主要单元五、C/C+程序的实现 六、C/C+源程序的基本形式,第一章 绪 论,3,一、机器语言、汇编语言和高级语言计算机系统包括硬件与软件两部分。软件是维护计算机硬件系统进行多用途计算的各种程序 的总和。硬件是计算机系统的躯干,软件是计算机系统的灵魂。计算机语言是驾驭软件开发的一套语

2、法规则,这套语法 规则的具体实现又是通过称之为编译器的软件来完成的。因此硬件、软件与计算机语言的历史是交叉耦合地进化 的过程。,4,计算机程序设计语言可以归为如下三类:a.机器语言:硬件系统可识别的的原始语言;开发软件难度大、周期长;程序员记忆的困难。 b.汇编语言:直接处理所有硬件;是各种语言中最快又最有效的语言;容易理解、记忆。c.高级语言:屏蔽低级语言硬件细节的语言,一个模块对应汇编语言中一系列整体运行的指令。,5,图 各种语言的发展演化进程,6,二、C语言的历史与特点C语言是从BCPL(Basic Combined Programming Language)语言和B语言演化而来;集汇编

3、语言处理硬件细节 和高级语言模块化高效编程长处于一身;它介于低级的汇编语言与高级的FORTRAN语言之间; C语言既有面向系统如汇编语言一样直接访问硬件的快捷 功能,又同时具备高级语言面向用户、容易记忆、清晰灵活 的优点,可称之为高级的汇编语言。,7,三、从C语言到C+语言的进化首先C+是一个更好的C语言,是C的一个超集, C+保留了C语言的优点同时也吸收其它面向对象编程语言的长处。Stroustroup博士早期(80年代初)通过一个名为cfront 的转换程序将C+源程序处理成C源程序,这保证转换后的 代码能在任意支持C的编译系统中运行。C+语言的主要特点表现在:一、是全面兼容C语言;二、是

4、支持面向对象的编程方法;C+是典型的混合编程语言.,8,C语言不简单(C语法是简单的),C+语言本质上也不 更多复杂。但C+语言包容了许多面向对象的语法和概念,提高了 该语言处理复杂问题的抽象层次;面向对象编程提供了进行 驾驭大型软件开发的有力手段,对于程序的重用和可维护性 提供了新的理论支持。最关键的是解决问题,语言仅是一种手段。C+语言至关重要的是它并不将面向对象编程的语法手 段强制程序员使用,C/C+程序员可以将C+视为一个C语 言的改良版本,充分利用C+语言子集的卓越性能进行游刃 有余的编程,进行面向问题的软件开发。积累了一定具体的 经验之后再适当步入面向对象的动态世界。,9,四、计算

5、机结构的五个主要单元软件的开发必须与计算机的体系结构打交道,与程序设 计相关的计算机结构是下面的五个主要单元:1. 输入单元: 输入单元是计算机接受信息的部分并且与计算机完成信 息的交互。它从各种输入设备读取中断信息,同时把这些信 息放置在其它处理信息的单元中。有两种常用的输入信息的设备,一个是键盘,另一个是 鼠标。标准输入stdin常指设备键盘。,10,2. 输出单元:输出单元是计算机输出信息的部分。它将计算机处理的信息或数据送入各种输出设备中,从 而这些信息能够有效的阅读。有两种常用的输出信息的设备,它们是屏幕显示器与打 印机。标准输出stdout指显示器,标准打印stdprn指打印机。,

6、11,3. 中央处理单元:中央处理单元是计算机的核心硬件部分CPU,CPU本 身由算术逻辑部件、控制逻辑部件和一组工作寄存器构成。 算术逻辑部件ALU用来进行算术逻辑运算,控制逻辑 部分负责对全机的管理,包括从存储器取出指令,对总线及 输入输出设备的数据转送控制等。寄存器是CPU中的存储单元,用来存放算术逻辑部件 处理的中间结果,包括对存储器的寻址等。存储器是下面的 内存单元。,12,4. 内存单元:内存单元由称之为内存条的硬件作为物理载体,是计算 机中存取速度快的存储信息的部分。程序的数据与代码指令动态地保存在内存中,内存的记 忆性能是瞬态稳定的,关机则意味着内存信息的彻底消失, 内存信息必

7、须永久性地保存到外存上。5. 外存单元:外存单元是计算机用来长期保存数据信息的存储部分, 与计算机软件相关的信息在关机状态都必须有效地存放在外 存中。常见外存设备是软盘、硬盘、闪盘和光碟。,13,五、C/C+程序的实现 C/C+程序的实现是通过软件开发工具进行 的,目前流行的软件开发工具以Visual C+6.0 和 C+Build 5.0为代表。本书程序利用VisualC+6.0 进行开发,其本身是优秀的可视化编程开发工具。 Visual C+6.0开发的程序只能是32位应用程 序,即内存地址的寻址方式为32寻址。 所有语言源程序的实现都必须经历下面四个 步骤:,1.编辑,2.翻译,3.连接

8、,4.运行,14,1.编辑:编辑是根据计算机语言的语法规则将算法与相应的数 据输入到计算机中形成含原始代码的文本文件的过程。这一文本文件或源文件对于C编程方式以扩展名即 .c的 文件保存,C+编程方式以扩展名即 .cpp的磁盘文件保存。通常C+源程序的文件为两部分:接口文件(也称为头 文件)和实现文件(或源文件),C+头文件的标准扩展名 为.h,C+实现文件的标准扩展名为.cpp,系统最终将头文 件插入到实现文件中即源文件.cpp中。文本是指由字母、数字、符号等组成的明白可读的字符 信息,文本编译器可以用来建立、输入或修改文本。,15,2.翻译:高级语言的翻译程序有两种方式:一种是编译型的程

9、序,另一种是解释型的程序。低级的汇编语言翻译程序对应一个汇编程序,汇编程序 直接将汇编语言转换成机器语言,然后加工处理成目标代 码,转换的中间环节最少。编译型的翻译方式为先把高级语言翻译成机器语言然后 再将汇编语言翻译成机器语言。如FORTRAN 、C 和C+是 编译型的程序。解释型的翻译方式是直接把高级语言在机器上运行,一 边解释一边执行,如BASIC 和JAVA是解释型的程序。,16,编译型方式的优点是运行效率快、执行时间短; 解释型 的长处是占用内存少。3. 连接过程:连接过程是由连接程序进行的。连接程序用来把编译 阶段分别编译产生的目标文件、系统原先提供的库文件或其 它中间列表信息文件

10、或二进制资源文件等连接在一起,形成 一个整体运行的扩展名为.exe的执行程序。连接过程可以进一步发现在编译阶段未能捕获的错误, 如某个函数模块的遗漏,标识符的重复定义等。库文件有静 态连接库和动态连接库,扩展名各自为.lib 和.dll。,17,4. 加载运行:加载运行就是将执行程序从外存如硬盘或光碟中的机器 指令转送到内存储器,以便机器执行;程序在执行之前必须 先装入内存,对于大的程序操作系统根据系统的内存资源可 能只将高频使用的部分代码装入内存。预处理编译过程常称为编译时,连接过程称为连接时, 加载运行过程称为运行时。常用编译器一词笼统地指编译、连接和运行三个过程, 因为集成开发环境对这三

11、个过程可以通过一个命令一次连续 的执行。,18,六、C/C+源程序的基本形式程序设计语言有各自编写的形式。汇编语言具 有指令加左操作数和右操作数的形式,表现了该语 言与机器语言的直接贴近。C/C+源程序书写格式非常灵活,一条语句可 以分散在不同的行上也可以将许多语句压缩在单行 上。,19,例程序的分散表示。程序输出: Nothing is hard in the world#include void main (void /* 圆括号中的void明确表示无入口参数*/) /*printf(“/*世上无难事*/t“);*/printf (“Nothing is hard “ “in the wo

12、rldn“); /end“Nothing is hard “ “in the worldn“合并为“Nothing is hard in the worldn“ ,程序输出双引号内的字符串,printf 是输出库函数。按回车键在源程序产生看不见的字符,简称换行符或 硬回车,“ n”是换行符的转义序列,表示在屏幕上产生一个 回车换行动作。,20,例程序的压缩表示。#include void main ( void ) /*printf(“世上无难事t“);*/ printf (“Nothing is hard in the worldn“); /end 去掉斜杠星号/*-*/对,可以得到一个改进

13、的程序。 程序依然输出结果:Nothing is hard in the world,21,例程序改动一些注释。输出:/*世上无难事*/ Nothing is hard in the world#include void main ( ) printf ( “/*世上无难事*/t“); / “t“是水平制表的转义序列,表示水平跳过8个空格printf (“Nothing is hard in the worldn“); 从上面三个例子可以看出C/C+程序外在格式的灵活 性,有展开的可读性强的形式,也有浓缩的节省纸张的形 式,可用回车键、空格键和删除键在扩伸与压缩之间变换。,22,一个空格可以扩

14、展为多个空格,多个空格可以浓缩为 一个空格。一条语句可分散在多行上,一行可以写多个语句,语 句由分号结束。但空格或空行的增删不是任意的。变量名函数名关键字如if, int 等名称之间、带参的宏名 与圆括号之间、续行符之间、转义序列如n之间、运算符 如+,+=之间不能插入空格。字符串中的空格和换行符视为有效字符。作为名称或运 算符之间分隔的空格是不能删除的。 例如: x+ +y不同于x+ +y #define x3 不同于#define x 3除此之外的空格和空行一般是可以任意设置的。,23,C/C+的程序内在的格式由如下几个方面构成:1. #include预处理指令引入的头文件2. main(

15、)函数表示的dos或console模式下应程序的入口3. 花括号对“ ”表示程序的结构层次范围4. 分号“;”结束的表达式语句或函数调用语句5. 多行注释“/*-*/“或单行注释“/-“,24,由井字号“#”引入的指令为预处理指令,对应的预处理 语句不以分号“;”结尾,“#include”称为文件包含预处理指 令,通过该指令系统将其后程序段使用的名称进行了预先的 说明。 #include 的作用是将stdio.h文件在预处理阶 段插入到程序.cpp中,作为程序源文件的一个有机部分。 “#include”指令是代码重用的有效手段。stdio.h是标准 输入输出头文件,其中包含了printf, scanf函数的原型说 明。printf 函数和scanf 函数是C运行库函数。,25,当编译器编译某条 printf 语句时,编译器根据 #include可以知道 printf 是一个函数名,这样在 目标程序里为该例程建立一个入口,但编译器并不知道库函 数在哪里。连接程序会扫描库函数并在目标程序中插入对这些库函 数的正确调用。如果在相应的子目录中没有扫描到由函数名 printf 指 示的库函数,则连接程序会提示一个错误。,

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

当前位置:首页 > 生活休闲 > 科普知识

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