第4章 程序设计和软件开发

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014-5-18 《大学信息技术教程(第二版)》
19
4.2.2 数据的处理----算法

算法是进行程序设计的另一不可缺少的要素。

算法是指为在有限步骤内解决一个具体问题 而规定的意义明确的解题步骤的有限集合。 一个正确的算法应能对苛刻且带有刁难性 的输入数据也能给出正确的结果,并且对不正 确的输入也能做出正确的反映。
图4-4图状结构示意图
2014-5-18
《大学信息技术教程(第二版)》
18
3、图状结构#
对于图状数据组织,可以通过线性复合的方式在计 算机中表达,先将所有点构成一个线性关系,然后再对 每个点,将与其相连的所有点构成一个线性关系。 数据结构的操作是和数据结构本身密不可分的,两 者作为一个整体可用抽象数据类型进行描述。抽象数据 类型是一个数学模型以及定义在该模型上的一组操作, 因此它和高级程序设计语言中的数据类型具有相同的含 义,而抽象数据类型的范畴更广,它不局限性于现有程 序设计语言中已经实现的数据类型,但抽象数据类型需 要借用固有数据表示并实现。 抽象数据类型的三大要素为:数据对象、数据关系 和基本操作。 同时数据抽象和数据封装是抽象数据类 型的两个重要特性。
2014-5-18
《大学信息技术教程(第二版)》
6
4.流程描述
程序本身就是规定操作的流程,文字性的流程描述比较抽象,难以理解。 在程序设计过程中流程通常采用流程图来表示。程序流程图是人们对解决问题 的方法、思路或算法的一种描述,图4-1是已知三角形三边求面积的流程图和 程序界面。
图4-1 流程图和程序示意图
2014-5-18
《大学信息技术教程(第二版)》
20
4.2.2 数据的处理----算法
算法具有:时间复杂度和空间复杂度



时间复杂度是比较不同算法效率的一种准则,算法时间 复杂度的估算基于算法中基本操作的重复执行次数,或 处于最深层循环内的语句的频度。 算法空间复杂度是算法所需存储量的一种量度,它主要 取决于算法的输入量和辅助变量所占空间。(若算法的 输入仅取决于问题本身而和算法无关,则算法空间复杂 度的估算只需考察算法中所用辅助变量所占空间,若算 法的空间复杂度为常量级,则称该算法为原地工作的算 法。) 算法的本质就是解决程序在分配时间和空间上的矛盾。
图4-2 链式存储结构
2014-5-18 《大学信息技术教程(第二版)》
15
1.线性数据#
线性数据组织方式主要是以线性表的形式出现在程序 中,其数据结构包括:顺序表、链表、栈、队列、串、数组 和矩阵等。 线性数据组织方式在计算机中的具体实现通常有两种方法: 连续方式和非连续方式. 连续方式是指将这批数据存放到计算机内部存储器中的 某个连续的区域,数据名表示这个连续区域,根据编号可以 计算出该编号对应的那个数据所存放的具体区域. 非连续方式指的是将这批数据分散存放到计算机内部存 储器中,每个数据存放一个位置,通常这些位置是不连续 的.但是为了保持数据在逻辑上的线性关系,必须为这些不 连续的位置建立联系。
2014-5-18
《大学信息技术教程(第二版)》
8
5.调试与运行Fra Baidu bibliotek
程序的动态调试就是上机运行调试,它贯穿在编 译、连接和运行的整个过程中。 根据程序编译、连接和运行时计算机给出的错误 信息进行程序调试,这是程序调试中最常用的方法, 也是最初步的动态调试。在此基础上,还可以对程序 运用“分段隔离”、“设置断点”、“跟踪打印”调 试手段。 编写程序使用程序设计语言,它是人与计算机交流 的一种媒介。 常用的程序设计方法有结构化程序设计和面向对象 程序设计。两者只不过是对概念和逻辑进行表达的方 式不同,实现目的是一致的。
2014-5-18 《大学信息技术教程(第二版)》
图4-3树型结构示意图
17
3、图状结构#

图状结构是一种比树形结构 更复杂的非线性结构。在树状结 构中,结点间具有分支层次关系, 每一层上的结点只能和上一层中 的至多一个结点相关,但可能和 下一层的多个结点相关。而在图 状结构中,任意两个结点之间都 可能相关,即结点之间的邻接关 系可以是任意的。因此,图状结 构被用于描述各种复杂的数据对 象,在自然科学、社会科学和人 文科学等许多领域有着非常广泛 的应用。
2014-5-18
《大学信息技术教程(第二版)》
10
4.2

程序构造的基本方法

数据元素有两类:一类是不可分割的“原子”型数据元素,如:整数5, 字符N 等;另一类是由多个款项构成的数据元素,其中每个款项被称 为一个“数据项”。 例如描述一个学生信息的数据元素可由下列6个数据项组成。其中的出 身日期又可以由三个数据项:“年”、“月”和“日”组成,则称 “出身日期”为“组合项”,而其它不可分割的数据项为“原子项”。
2014-5-18 《大学信息技术教程(第二版)》
7
5.调试与运行
对于一个复杂的程序错误是难免的,所有成熟使用 的程序都必须经过反复的调试、修改和试用。因此, 程序调试是程序设计过程中的重要环节。 调试程序的目的是验证程序的正确性。 程序调试主要有两种方法:静态调试和动态调试。 程序的静态调试是在程序编写完以后,由人工“模 拟”计算机,对程序进行仔细检查,主要检查程序中 的语法规则和逻辑结构的正确性。实践表明,有很大 一部分错误可以通过静态检查来发现。通过静态调试, 可以大大缩短上机调试的时间,提高上机的效率。
2014-5-18
《大学信息技术教程(第二版)》
9
4.2
程序构造的基本方法
程序构造的基本方法是:数据组织+数据处理。 数据组织是为程序提供素材,在计算机中这些素材是通 过数据结构来描述的;数据处理是如何把这些素材进行加 工处理,得出计算结果,数据处理是通过算法来描述的。 在介绍数据结构和算法之前,首先介绍数据的概念: 数据:是所有能被输入到计算机中,且能被计算机处 理的符号(数字、字符等)的集合。 数据是计算机操作对象的总称,是计算机处理信息的各 种特定的符号集合,集合中的个体称为数据元素。 数据元素:是数据(集合)中的一个“个体”,在计算机 中通常作为一个整体进行考虑和处理,是数据结构中讨论 的“基本单位”。
2014-5-18 《大学信息技术教程(第二版)》
3
4.1程序和程序设计
1.问题分析 问题分析是进行程序设计的基础。根据所要解决问题的性质和类 型,最基本的分析内容主要有以下几个方面。 (1). 问题的性质 人们所要解决的问题是各种各样的,而对于不同性质的问题,所 用的方法、工具以及输入输出的形式一般也是不同的。 (2). 数据的输入/输出: 数据处理是计算机应用最广泛的领域。在用计算机解决问题时, 一般总要有一些输入数据,计算的结果也要以某种方式进行输出。 因此,在进行程序设计的过程中,需要考虑对输入/输出数据的处理。 (3). 数学模型或常用的方法 对于数值型问题,一般要考虑数学模型的设计,或者要对常用的 一些方法进行分析和比较,从而根据问题的性质选择一种合理的方 案。对于非数值型的问题,通常也需要从众多的方案中选择一种合 适的方法。
《大学信息技术教程》 (第二版)
第4章 程序设计和软件开发
4.1 程序和程序设计 4.2 程序构造的基本方法 4.3 程序设计的基本结构 4.4 软件和软件工程 4.5 软件开发两大体系结构
“十一五”国家级规划教材
第4章 程序设计和软件开发
4.1程序和程序设计
程序是人与计算机交流信息的基本方式,人们 通过程序指挥计算机的活动。那么描述(编制)计 算机程序的工作就称为程序设计或编程。 由于计算机的本质特征,从它诞生之初就有了 程序设计工作。 对于初学计算机的人来说,往往把程序设计理 解为简单地编制一个程序。实际上,程序设计包括 多方面的内容,而编制程序只是其中的一个方面。
2014-5-18
《大学信息技术教程(第二版)》
13
2014-5-18
《大学信息技术教程(第二版)》
14
数据结构的形式定义:
Data_Structure = {D, R} 其中,D为数据元素的有限集,R是所有数据元素之间的关系 的有限集合。 数据结构在计算机中的表示称为物理结构或者称为存储结构。 数据的存储结构是数据逻辑结构在计算机中的映像,(由关系的 两种映像方法可得到)两类主要的存储结构: 一类是顺序存储结构,它以数据元素相对的存储位置表示关 系,则存储结构中只包含数据元素本身的信息; 另一类是链式存储结构,它以附加的指针信息(后继元素的 存储地址)表示关系。另外,索引存储结构和散列存储结构也常 用于计算机中。
2014-5-18
《大学信息技术教程(第二版)》
2
4.1程序和程序设计
我们可以将程序设计用如下公式来进行描述: 程序设计=算法+数据结构+方法+工具 在整个程序设计的过程中,要涉及到算法的设计、 数据结构的设计、方法的设计和设计工具的选择等等。 从这个公式出发,程序设计的过程可以分为以下五个 基本步骤: 1.问题分析 2.结构特性设计 3.算法设计 4. 流程描述 5.调试与运行。
姓名 学号 性别 班号 出生日期
入学成绩
年月日
2014-5-18
《大学信息技术教程(第二版)》
11
4.2.1 数据的组织——数据结构
数据结构是研究数据元素之间抽象化的相互 关系和这种关系在计算机中的存贮表示,并对每 种结构定义各自的运算,设计出相应的算法,而 且经过运算后所得的新结构一般仍然是原来的结 构类型。 数据结构包括逻辑结构、存储结构(物理结 构)和数据的运算。 数据的逻辑结构是对数据之间关系的描述, 有时就把逻辑结构简称为数据结构。(go20)
2014-5-18
《大学信息技术教程(第二版)》
12
数据结构由若干特性相同的数据元素构成,数据元素之 间存在一种或多种关系。 由关系不同可将数据结构分为四类:集合结构、线性结 构、树形结构、图状结构(或网状结构),如表4-1。 其中树形结构和图状结构称之为非线性结构。 集合结构中的数据元素除了同属于一种类型外,别无其 它关系。 线性结构中元素之间存在一对一关系,树形结构中元素 之间存在一对多关系,图形结构中元素之间存在多对多关 系。在图形结构中每个结点的前驱结点数和后续结点数可 以任意多个。
2014-5-18
《大学信息技术教程(第二版)》
16
2、树型结构#
树型结构又称为层次数据组织 形式,它通常用来处理具有严格的 上下级关系的数据,如一个单位的 行政机构、家谱图等。对这样的数 据,线性根本无法表示,只能借助 于树型结构。树型结构的数据组织 方式有明显的递归性质,因此以树 型结构方式组织的数据,基本使用 递归方法处理。图4-3是树型结构 示意图。对于树型结构数据,可以 通过线性复合的方式在计算机中表 达。从树根开始到每个叶子节点的 一条路径上的所有点构成一个线性 关系,整个树型结构是多个线性关 系的叠加。
2014-5-18
《大学信息技术教程(第二版)》
21
4.2.2 数据的处理----算法



一个完整的算法应该具有以下5个要素: 可行性、确定性、有穷性、有输入和有输出。 (1)可行性 算法的可行性包括两个方面;一是算法中的每一 个步骤必须是能实现的。例如,在算法中,不允许出 现分母为零的情况,在实数范围内不能求一个负数的 平方根等;二是算法执行的结果要能达到预期的目的。 (2)确定性 算法的确定性是指算法中的每一个步骤都必须有 明确的定义,不允许有模棱两可的解释,也不允许有 多义性。

2014-5-18 《大学信息技术教程(第二版)》
5
4.1程序和程序设计

3.算法设计 算法是指为在有限步骤内解决一个具体问题 而规定的意义明确的解题步骤的有限集合。 概括地说,算法是指解题方案的准确而完整 的描述。 从程序来说,也可以说算法是一个有限条指 令的集合,这些指令确定了解决某一特定类型 问题的运算序列。

2014-5-18
《大学信息技术教程(第二版)》
4
4.1程序和程序设计
2.结构特性设计 结构特性设计的好坏,将直接影响整个程序的设计效率 和执行效率。结构特性的设计主要包括控制结构和数据结 构的设计。 (1). 控制结构 一个程序的功能不仅取决于所选用的操作,而且还取 决于操作之间的执行顺序,即程序的控制结构,如循环、 分支转移结构。程序的控制结构实际给出了程序的框架, 决定了程序中各操作的执行顺序。 (2). 数据结构 数据结构是指互相有关联的数据元素的集合。数据结构 又分为数据的逻辑结构和数据的存储结构。数据的逻辑结 构是指数据元素之间抽象化的相互关系,即数据的逻辑关 系,有队列、堆栈、树和图等等;数据的存储结构是数据 的逻辑结构在计算机中的存储方式,应用于数据库中。
相关文档
最新文档