创作计算机程序 学习目标: 定义术语 “ 计算机程序 ” 说明编程过程中流程图和伪代码的用途 介绍程序在寻求解决方案的过程中可以利用的两种方 法 区别计算机编程的两个主要步骤 列举并描述面向对象编程的三个要素
什么是计算机程序 程序:计算机为完成某一个任务所必须 执行的一系列指令的集合。 软件包含一系列的程序 每类软件包括一个或多个包含命令的文 件 每个包含命令的文件称为程序文件
概念 常见公共程序文件扩展名 可执行文件( EXE ) 动态链接库文件( DLL ) 初始化文件( INI ) 帮助文件( HLP ) 批处理文件( BAT )
硬件和软件的交互 机器码 编程语言 编译器和解释器
机器码 机器码是由 0 和 1 二进制代码按一定规则 组成的、能被机器直接理解和执行的指 令集合。机器语言中的每一条语句实际 上是一条二进制形式的指令代码,指令 格式如下: 操作码 操作数 要完成的操作类型或性质 操作的内容或所在的地址
汇编语言 将机器指令的代码用英文助记符来表示,代替 机器语言中的指令和数据。例如用 ADD 表示加、 SUB 表示减、 JMP 表示程序跳转等等,这种指 令助记符的语言就是汇编语言。 例如,计算 A=15+10 的汇编语言程序: MOVA , 15 :把 15 放入累加器 A 中 ADDA , 10 : 10 与累加器 A 相加,结 果存入 A 中 HLT :结束,停机
高级语言 高级语言是由表达各种意义的词和数学 公式按照一定的语法规则来编写程序的 语言。高级语言使程序员可以完全不用 与计算机的硬件打交道,可以不必了解 机器的指令系统,是面向过程的语言。 这样,程序员就可以集中精力来解决问 题本身而不必受机器制约,编程效率高; 由于与具体机器无关,因此程序的通用 性强。
编译器 翻译工作由编译程序完成。如同笔译在纸上记 录翻译后的结果。编译程序对整个源程序经过 编译处理,产生一个与源程序等价的目标程序; 目标程序还可能要调用一些其他语言编写的程 序和程序库中的标准子程序,通过连接程序将 目标程序和有关的程序库组合成一个完整的可 执行程序。执行速度快,修改源程序后都必须 重新编译。一般高级语言( C/C++ 、 PASCAL 、 FORTRAN 、 COBOL 等)都是采用编译方式
编译器
解释器 解释方式的翻译工作由解释程序来完成。 解释程序对源程序进行逐句分析,若没 有错误,将该语句翻译成一个或多个机 器语言指令,然后立即执行这些指令; 若解释时发现错误,会立即停止,报错 并提醒用户更正代码。解释方式不生成 目标程序。
解释器
编译过程
程序控制流程 结构化的程序设计包括三类控制结构
算法 在计算机中,把解题过程的准确而完整 的描述称为解该题的算法。通俗地讲, 程序就是用计算机语言表述的算法;流 程图就是图形化的算法。 在计算机中,把解题过程的准确而完整 的描述称为解该题的算法。通俗地讲, 程序就是用计算机语言表述的算法;流 程图就是图形化的算法。
算法的表示 自然语言 用人们使用的语言描述算法 自然语言 用人们使用的语言描述算法 传统的流程图法 用一些图框、线条以及 文字说明来形象地、直观地描述算法。 N-S 流程图法 去掉了传统流程图中带箭 头的流向线,全部算法以一个大的矩形 框表示,框内还可以包含一些从属于它 的小矩形框,适于结构化程序设计。
算法的表示 A B AB 条件 TF 当条件成立 A 直到条件成立 A N-S 图的三种基本结构
算法的表示 伪代码法 是一种假的代码 ——— 不能被 计算机所理解,但接近于某种语言编写 的程序,便于转换成编程语言。根据编 程语言的不同,有对应的类 Pascal 、类 C 等类 -xxx 语言。在数据结构教材中,经常 用类 -xxx 语言来描述算法。
试探法 当不存在可以解决某种问题的算法或者 算法太复杂或耗时时采用 试探法不保证求出最合理解,只提供寻 找解的机会。
通用的流动形式 条件语句 1.if - then 2.if - else 3.if-then-elseif 4.case
通用的流动形式 循环 1.For 2.While 3.Do-while
变量 计算的数据对象和计算结果对象在程序 中用变量表示。变量在使用前必须声明 其类型和名称,编译程序根据其数据类 型,在内存分配相应的存储空间,以存 储该变量的值。
函数 函数是完成一个具体任务的步骤集合。 函数是执行单一任务的小型算法 1. 过程 2. 函数 3. 子过程
结构化程序设计 结构化程序的结构简单清晰,可读性强, 模块化强,描述方式符合人们解决复杂 问题的普遍规律,在软件重用性、软件 维护等方面有所进步,可以显著提高软 件开发的效率。 程序设计模式: “ 数据结构+算法 ”
结构化程序设计 ① 在软件设计和实现过程中,采用自顶向 下、逐步细化的模块化程序设计原则。 ② 在代码编写时,采用顺序、选择、循 环三种基本控制结构,避免使用 GOTO 语 句。 ② 在代码编写时,采用顺序、选择、循 环三种基本控制结构,避免使用 GOTO 语 句。
面向对象程序设计 将问题分解为对象,对象的数据 —— 属 性,作用于数据的操作 —— 方法,将属 性和方法封装成一个整体,供程序设计 者使用。对象之间的相互作用通过消息 传递来实现。 程序设计模式: “ 对象+消息 ”
面向对象程序设计 面向对象的分解突出:做什么?大量的 工作由相应的对象来完成,程序员在应 用程序中只需说明要求对象完成的任务。 结构化程序设计的分解突出:如何做? 强调代码的功能是如何得以完成。 面向对象的程序设计语言有: C++ 、 Java 、 Visual Basic 等
面向对象程序设计 对象 类和继承类 消息
编程语言和编程方法 学习目标辨别三类主要的编程语言描述编程语言的五个发展阶段至少说出五种主要的编程语言描述一种可视的编程环境及其使用方法列举编程系统开发生命周期的五个阶段
编程语言的演变 编程语言的语法 1. 按照确定的顺序和结构提供信息 2. 使用特殊的符号 3. 使用标点符号
编程语言的分类 机器语言与汇编语言 高级语言 第三代语言: FORTRAN COBOL BASICAL PASCAL C C++ JAVA ActiveX FORTRAN COBOL BASICAL PASCAL C C++ JAVA ActiveX 第四代语言 : VB CisualAge Authoring Environment VB CisualAge Authoring Environment第五代语言
WWW 开发语言 超文本标记语言( HTML ) 可扩展标记语言( XML) 无线标记语言( WML ) Dreamweaver Flash Macromedia Director Macromedia
编程的系统开发生命周期 需求分析:界面、开始点、程序功能 程序设计:使用流程图、伪代码、消息 管道等工具设计程序逻辑(算法) 开发:编写实现系统需求的代码 实现:安装软件并开始测试 维护:维护工作是持续不断的