[经济学]大学计算机基础.ppt_第1页
[经济学]大学计算机基础.ppt_第2页
[经济学]大学计算机基础.ppt_第3页
[经济学]大学计算机基础.ppt_第4页
[经济学]大学计算机基础.ppt_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大学计算机基础大学计算机基础 基本概念及应用思维解析基本概念及应用思维解析 东南大学 第第3 3章章 程序式使用计算机程序式使用计算机 本章主要知识点 程序工作方式与交互工作方式的区别和联系 程序的本质 程序构造的基本方法 基本数据组织方法 基本数据处理方法 程序设计的三要素 程序与软件的关系 软件和软件开发的关系 软件开发的工程化管理 软件开发方法相关概念和知识 程序是人类思想的结晶,最能反映人类 的智慧和创造性。它反映了人类解决问题的 思维和方法。 程序的构造是一个动态过程,一般涉 及语言、软件模型、环境、应用体系、工程 化管理等多个方面。 因此,程序工作方式相对于交互式工作 方式,对人的要求更高。程序是最能反映人 类的智慧和创造性。 程序工作方式与交互工作方式的区别和联系程序工作方式与交互工作方式的区别和联系 在交互方式中,人与计算机是联机的。 在程序方式中,人与计算机是脱机的。 程序方式中,人们通过某种计算机语言 ,针对需要解决的特定问题,事先将自己 处理问题的思路和方法编写成程序,然后 通过发行和运行程序达到解决问题的目的 。 程序工作方式与交互工作方式的区别和联系程序工作方式与交互工作方式的区别和联系 程序工作方式与交互工作方式的区别和联系程序工作方式与交互工作方式的区别和联系 联机工作方式中,人的主动性比较高。面 对遇到的问题,可以随机应变。 脱机工作方式中,构造程序时必须考虑许 多问题,要考虑到未来程序运行时的各种各样 可能出现的问题及其对策。 另外,程序的构造还涉及计算机语言、软 件开发方法、软件开发环境、应用体系等方面 的知识。特别是,涉及处理问题的各种基本应 用模式。因此,对人的思维要求更高。 程序工作方式与交互工作方式的区别和联系程序工作方式与交互工作方式的区别和联系 两种工作方式的区别类似于人类社会中的 讲话和写作 交互式使用:说话 ,容易。 程序式使用:写作,较难。 程序工作方式与交互工作方式的区别和联系程序工作方式与交互工作方式的区别和联系 两种方式既有区别又有联系,区别主要在 于两者的表现形式和层次不同,而从思维本质 的角度看,两者是一致的。 事实上,程序设计与构造建立在交互式使 用方式基础上。 一方面,程序的开发环境、运 行配置环境等,需要交互式使用方式;另一方 面,程序构造的语言,是交互式交流方式中命 令语言的拓展;再者,针对具体问题的处理, 两者的思维本质是一致的。 程序工作方式与交互工作方式的区别和联系程序工作方式与交互工作方式的区别和联系 程序与程序设计程序与程序设计 程序是指一组预定的工作指令流,可以直 接通过计算机执行,使具体的现实世界中的客 观问题得以在计算机世界中智能化再现,从而 使具体问题得到解决。 程序设计是指程序的形成过程,就是人类 运用其逻辑思维能力以及符号处理能力来构造 一个特定的符号处理器,使得借助于计算机这 样一种设备,能够完成预定的计算。 程序是人类思维的产物,是人类思维火花的时 间定格,呈现静态特征。程序尽管固化了人类的智 慧,但却没有展示人类形成该程序的动态思维过程 程序设计产生程序的过程,是动态的。程 序设计是一种创造性劳动,或是说脑力劳动,反映 了人类思维的规律和模式。伴随整个程序构造过程 而形成的各种人类的思维活动,对于程序的最终形 成起到核心作用。 程序的形成过程比程序本身重要得多,程序设 计与构造的涵义比程序的涵义要丰富得多。 程序与程序设计程序与程序设计 程序设计与文化有着很深的渊源。 不同的文化对程序设计有影响。 程序与程序设计程序与程序设计 递归(recursion)是计算机思维的核心思 想之一,其本质反映的是一种跳跃性思维方法 。 递归反映了事物间的规律,即整体是由局 部构成的,整体又可以充当粒度较大的局部, 整体和局部的关系是辨证统一的。理解事物间 规律的视角,即对于一个问题中的整体和局部 的理解,取决于看待问题的角度和视角,而这 种角度和视角是随时会改变和调整的。这也就 是所谓的当前的概念。 递归思维解析递归思维解析 递归和当前两者相互结合, 形成完整的辨证思维逻辑。 递归思维解析递归思维解析 基本逻辑控制规则来源于自然社会生活 中人们处理各种问题时所采取的策略和方法 ,对这些策略和方法的归纳和抽象,就产生 了基本的逻辑控制策略和方法。 计算机程序设计中,有顺序、分支、循 环、递归四种基本逻辑控制规则。 对于高性能高质量的应用,其关键显然 不在于四种基本逻辑控制规则本身,而是在 于如何应用这四种基本逻辑控制规则。 基本逻辑控制规则基本逻辑控制规则 一、定义 基本逻辑控制规则基本逻辑控制规则 从逻辑形态和概念上看,A等同于B,因为无论A还是B,它们都是 由三种基本的处理步(处理步、分支组合步和循环处理步)组成 。如果将A看成是一个大程序,则B可以看成是一个小程序,由此 又可以引申出大程序中包含小程序,小程序的外面是大程序,即 程序之中有程序,程序之外是程序的思想。 基本逻辑控制规则基本逻辑控制规则 基本逻辑控制规则的组合也是递归思想的一 种应用。 对于分解后的各个具体模块,可以按人们的思 维逻辑进行任意组合,以实现人类思想的再现。同 样一个问题,不同的人有不同的组合方法,产生出 不同的程序。可见,最终用于问题解决的程序,本 质上反映了各个人的具体的思维。 基本逻辑控制规则基本逻辑控制规则 程序构造的基本方法程序构造的基本方法 程序构造的基本方法:数据组织 + 数据处理。 数据组织相当于组织和提供各种素 材; 数据处理则是如何利用这些素材, 进行加工处理,得到最后的成品。 程序构造的基本方法(程序构造的基本方法(数据组织数据组织) 针对同样的数据,不同的人可以有不同的 处理方法,这些方法都能得到需要的结果。这 反映了每个人的思维特征和对问题的处理方法 。 数据组织和数据处理存在一定的思维联系 。也就是说,一种数据组织方法,隐含地决定 了对这些数据的存取方法。同样,一种数据处 理方法也隐含地决定了数据应有的组织方法。 一、分类 根据处理所涉及的数据量和种类,数据组 织一般分为内存数据组织和外存数据组织两大 类。 内存数据组织是指用于数据处理的数据量 一般比较少,所有数据都可以存放到计算机的 内部存储器中,数据处理程序可以直接使用这 些数据。内存数据组织的基本方法有:简单数 据组织、线性数据组织、层次数据组织和网状 数据组织 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 一、分类 外存数据组织是指用于数据处理的数据量 比较大,不可能将所有数据都存放到计算机的 内部存储器中。只有当前处理所涉及的一部分 数据放在内存,而大部分暂时不用的数据则存 放在外部存储器中。因此,数据处理程序必须 经过专用的数据管理系统,根据处理的需要不 断从外部存储器中将当前需要用到的数据调入 内部存储器中。外存数据组织中的专用数据管 理系统一般有文件系统和数据库系统。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 数据逻辑组织的类型 内存数据组织 简单数据组织 线性数据组织 层次数据组织树 网状数据组织图 文件系统 数据库系统 外存数据组织 数据组织的概念分为两个层次:逻辑组 织和物理组织。逻辑组织是指一种抽象描述 ,只关心数据之间的组织关系,不涉及数据 在计算机内部的具体组织。物理组织是指数 据在计算机内部的具体组织,它涉及计算机 基本组成结构中的存储器概念。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 简单数据组织一般用于对少量、相互之 间没有太大关系的数据的组织。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 线性数据组织一般用于同类的批量数据组织 。这种数据组织方法的优点是,整批数据用 同一个名称,表示他们是属于同一类数据。 其中的每一个具体数据通过一个序号给出。 可见,这种数据组织方法隐含在对其处理中 ,一般都是通过循环完成。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 线性数据组织在计算机中的具体实现一般有两种形式 :连续组织和非连续组织。 连续组织是指将这批数据存放到计算机内部存储器中 某个连续的区域,数据名表示这个连续区域,根据编 号可以计算出与该编号对应的那个数据所存放的区域 。 非连续组织是指将这批数据分散存放到计算机内部存 储器中,每个数据存放一个位置,一般而言,这些位 置是不连续的。但是,为了保持这批数据在逻辑上的 线性关系,必须为这些不连续的位置建立联系。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 非连续组织中建立联系具体方法是,扩大每个数据的 存储区域,该区域除了存放数据外,还可以再存储一 个位置信息。然后,根据这批数据在逻辑上的线性关 系,将后面一个数据存放的位置登记到前面一个存放 数据的区域中,完成两个相邻数据的逻辑关系建立。 对于最后一个数据,因为它的后面没有其他数据,因 此,可以将其存放区域中记录下一个数据的位置信息 的部分填上一个特殊位置值,表示已经结束。对于第 一个数据,可以将它的存放位置登记到一个特定的名 称中,表示整个这批数据的起点位置。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 这种数据组织实现方法也称为链表结构,因 为它像一根链条。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 连续组织方式中,每当插入或删除一个数据 时,该数据后面的所有数据都必须向后或向 前移动。因此,这种数据组织方法一般适用 于一批数据相对固定的应用场合。 非连续组织方式中,每当插入一个数据时, 可以将这个数据存放在任意一个允许存放的 位置,然后通过修改位置信息完成插入。同 样,每当删除一个数据时,也可通过修改位 置信息完成删除。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 在35和67之间插入一个56,则可以先将67的位 置(在35的存储区域中)登记到56的存储区域中; 再将56的位置(可能是在某个名称中)登记到35的 存储区域中。 图3.7a 插入56 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 3153567662 -1 2004 35 H 2060 T 2060 56 -1 T 2010 2000 15 2004 2010 3 2030 2000 35 2030 2034 67 2056 -1 2 2034 2056 66 2060 56 T 2060 2030 申请 空间 填充 数据 修改 地址 修改 地址 3153567662 -1 2004 H 56 要删除35,则可以先将67的位置(在35的存 储区域中)登记到15的存储区域中,再将35的存 储区域归还给计算机。 图3.7b 删除35 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 3153567662 -1 2004 H 2010 15 2010 2000 15 2004 2010 3 2030 2000 35 2030 2034 67 2056 -1 2 2034 2056 66 2000 35 修改 地址 31567662 -1 2004 H 2030 2030 非连续数据组织方法不存在数据移动。 因此,这种数据组织方法一般适用于数据插 入删除比较频繁的应用场合。 尽管非连续组织方法中不涉及数据的频 繁移动,节省了大量时间。但它为了保持数 据在逻辑上的线性关系,每个数据存放区域 都增加了用于记录下一个数据存放位置的空 间,是牺牲空间而换取时间。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 如果对通过线性数据组织方法组织的一 批数据操作时施加如下规定:数据的增加和 删除必须在同一端进行,每次只能增加或删 除一个数据元素。则这种线性数据组织方法 及其应用就称为栈结构。 其中,数据增加和删除的一端称为栈 顶,另一端称为栈底。增加数据的操作称为 压栈或进栈,删除数据的操作称为出栈。 栈结构也称为LIFO(Last In First Out)结构。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 栈结构也称为先进后出结构(FILO:First In Last Out),图3.8是栈的示意图。 栈结构示意图 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 栈底 栈顶 栈 进栈 栈底 栈顶 栈 出栈 如果对通过线性数据组织方法组织的一批 数据操作时施加如下规定:数据的增加和删除 分别在两端进行;每次只能增加或删除一个数 据元素;则这种线性数据组织方法及其应用就 称为队列结构。 其中,增加数据的一端称为队列尾,删除 数据的一端称为队列头。增加数据的操作称为 入队或进队,删除数据的操作称为出队。 队列结构也称为FIFO (First In First Out)结构。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 队列结构示意图 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 队列尾队列头 队列 进队 队列尾队列头 队列 出队 文件(file)是指外存中一组相关信息的集 合,并有一个名称标识。 文件系统(file system)是用于管理文件的 软件系统。通过文件系统提供的功能,人们 可以方便地管理和使用文件。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 针对大容量数据,必须将其存储在外存 中。为了对这些数据进行有效管理,操作系 统中都提供相应的文件系统,以文件的方式 组织数据。 由于以文件方式组织的数据是存放在外 存,因此必须通过一定的硬件设备驱动和读 写才能进行数据访问。文件系统可以屏蔽这 些复杂的硬件控制问题,以一种抽象的逻辑 视图进行文件的管理。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 文件的基本结构 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 针对文件方式的数据组织,数据的访 问一般要经过文件建立(create)、文件使 用、文件删除、文件移动等基本操作。其中 ,文件使用必须经过打开(open)、读/写 (read/write)、关闭(close)三个基本 步骤 针对大容量数据组织和管理,还有专 门的方法数据库系统技术。 程序构造的基本方法程序构造的基本方法(数据组织)(数据组织) 1)算法及其描述 程序构造的基本方法程序构造的基本方法(数据处理)(数据处理) 算法是一个有穷的指令集,这些指令为 解决某一个特定任务规定了一个运算序 列。 算法具有如下特点:有0个或多个输入 、有一个或多个输出、具有确定性、具 有有穷性、具有有效性。 算法与程序的区别: 算法与程序是不同的,程序可以不 满足有穷性特点。 算法与数据组织密切相关,它是 在某种数据组织结构上的一种解决问 题的计算方法。 程序构造的基本方法程序构造的基本方法(数据处理)(数据处理) 算法的特点: 程序构造的基本方法程序构造的基本方法(数据处理)(数据处理) 针对同一个问题,会有不同的数据组织方式和不 同的算法。衡量一个算法的好坏,主要是通过该算法 执行时所耗费的时间和空间来比较,这种比较是一种 相对比较,一般只给出量级关系。 一般而言,算法的量级有O(1)、O(n)、O( log2n)、O(nlog2n)、O(n2)、O(n3)等。O( m+n)与O(n)属于同一量级,即线性级;O(100) 和O(1)属于同一量级,即常量级(其中,对于空间 耗费而言,m、n表示算法执行时耗费的空间大小,一 般以字节为单位计数;对于时间耗费而言,m、n表示 算法中指令执行的次数)。 算法的抽象本质在于算法与它的表示之间 的区别。也就是说,算法本身是抽象的,它只 是反映一种解决问题的方法。但这种方法必须 通过某种形式展示出来,这就是具体的算法表 示和描述。 算法的描述可以有多种形式,可以有语言 方式、图形方式和表格方式。每一种形式还可 以有多种不同的形态。比如,语言方式就有自 然语言、类计算机语言和计算机语言三种描述 。图形方式有流程图、N-S图、PAD图等多种方 式。 程序构造的基本方法程序构造的基本方法(数据处理)(数据处理) 程序构造的基本方法程序构造的基本方法(数据处理)(数据处理) N-S图是一种结构化的流程图,通过一个矩形框表达 一个对数据的基本处理,并定义三种基本的元素框(元 素框内可以包含基本处理矩形框),通过三种基本的元 素框可以按需要进行任意逻辑组合,实现处理逻辑的控 制策略,从而表达一个完整的处理问题的算法。N-S图很 容易映射为所要求的某种具体的计算机语言。 N-S图描述方法,体现了由大到小、由粗到细的逐 步求精的分析和设计方法,这种方法比较符合人类 的思维习惯。这种方法的核心在于用少量的几个符 号,可以描述无限的问题,呈现出递归的分析思想 。 N-S图应用的技巧在于深刻领悟这种富有哲理的递 归思想,从外到内,逐层运用,在外层时不要看内 层,在内层时不要看外层,始终保持当前只看到一 个层次,这样无论多复杂的问题,都可以看得相当 简单。 程序构造的基本方法程序构造的基本方法(数据处理)(数据处理) 【例3-1】给定一个正整数N,如果N大于0,输出“大 于0!”;否则,输出“小于等于0!”。 程序构造的基本方法程序构造的基本方法(数据处理)(数据处理) 【例3-2】输入10个整数,求它们的和。 采用简单数据组织方式,用S存放和,I记录输入数据的个数。初始时, S=0,I=0。每输入一个数,I增加1,并将该数加入到S中。 程序构造的基本方法程序构造的基本方法(数据处理)(数据处理) 程序构造的基本方法程序构造的基本方法(数据处理)(数据处理) 素数的特征是除1和该数本身之外,不能被其他任何整 数整除。算法的基本思想是:将N分别被2、3、4、 、N-1除,如果都除不尽,则N是一个素数。否则,N不 是一个素数。根据此思路,算法的自然语言描述如下: 设除数为I,I的值从2变化到N-1; 用I除N,得到余数R; 如果R=0,则表示N能够被I整除,N不是素数,算法结束; 否则,表示N不能被I整除,可能为素数,继续判断; 使I的值增加1; 如果IN-1,则返回(2)继续;否则,表示N已被2到N-1 除且都不能被整除。因此,N为素数,算法结束。 判断N是否是素数的N-S图 程序构造的基本方法程序构造的基本方法(数据处理)(数据处理) 常用数据处理算法 排 序 查 找 递 归 回 溯 程序构造的基本方法程序构造的基本方法(数据处理)(数据处理) 151895231013716 151895231013716 当前需 要冒泡 的位置 从后向前冒泡 不需要交换 需要交换需要交换 71371072397 不需要交换需要交换 5185155 从后向前冒泡 原始数据排列 冒泡排序 程序构造的基本方法程序构造的基本方法(数据处理)(数据处理) 程序设计三要素程序设计三要素 环境是指程序作用的范围,不同的环境对程序 的构造有不同的要求。 应用是指对具体问题的解决方法,应用与环境 是分不开的,环境是应用赖以存在的基础。 语言是一种粘合剂,将应用和环境连接起来。 一方面,语言必须将应用中的各种应用模式、 及其逻辑组合描述清楚,也就是将人的思维形 式化,并记录下来。另一方面,语言本身又考 虑了环境的特征,将应用问题过度到具体环境 ,实现最终的应用问题求解。 程序设计语言(也称程序描述语言、 程序语言等)是计算机语言。它用于 人与计算机的交流。 程序设计三要素(语言)程序设计三要素(语言) 环境 语言 应用 计算机语言的基本体系结构 语言的基本体系结构 程序设计三要素(语言)程序设计三要素(语言) 计算机程序设计语言中,数据类型的概 念特别重要,它类似于自然语言中的词性。 在计算机程序设计语言中,不同的数据 类型定义不同的词性,用于指明该类词汇所 表达的数据的性质、数据的大小范围,以及 在该类数据上可以施加的基本运算。 程序设计三要素(语言)程序设计三要素(语言) 数据类型一般有基本类型和复合类型两大 类,复合类型是由基本类型合成的。 程序设计三要素(语言)程序设计三要素(语言) 计算机语言中的表达式一般有算术表达式(用 于运算)、关系表达式(用于表达基本条件) 和逻辑表达式(用于表达复合条件)三种。 计算机语言中的语句一般有注释语句、计算赋 值语句、输入/输出语句和流程控制语句四种 。 函数是某种处理逻辑的抽象,也就是解决问题 的方法的抽象,这种方法独立于具体的处理对 象。 程序设计三要素(语言)程序设计三要素(语言) 类是将某个数据集、以及该数据集上的多种处 理逻辑(函数)统一考虑的一种机制,它比函 数的描写粒度大。类用于刻画问题域中的各种 实体,数据集反映实体的静态属性,函数集反 映实体的动态行为属性。 包一般是由多个类组合而成,这些类都是用于 处理同一种问题域的各个方面。包中的类可以 是有语义联系的,也可以是相互相对独立的。 程序设计三要素(语言)程序设计三要素(语言) 根据计算机本身的发展,计算机语言经历三个 发展阶段,每个发展阶段具有不同性质的计算 机语言。三个发展阶段的计算机语言分别是机 器语言(也称为二进制语言)、汇编语言和高 级语言。 程序设计三要素(语言)程序设计三要素(语言) 机器语言直接面向计算机本身。这种语言通过0和1的 各种排列组合,表达不同的语义。0和1可以直接控制 计算机本身的各种电子元件的开和关,因此,这种语 言可以直接交给计算机阅读。 汇编语言是通过一定的助记符号,如英语单词的缩写 等,代替具有固定语义的0、1排列,从而使得人类可 以在符号层面进行程序的描述、阅读和维护。 高级语言是一种独立于具体计算机的语言,他采用近 似于自然语言的结构。这种语言中所涉及的各种数据 组织和数据处理都是建立在一些抽象的名称基础上, 这些名称可以代表具体计算机的存储位置。可见,这 与人类处理问题的方法类似。 程序设计三要素(语言)程序设计三要素(语言) 汇编语言向人靠近了一步,但却与计算机远离了一步 。高级语言面向人,但计算机不认识。 如何解决这一问题? 汇编:将汇编语言描述的程序转变成等价的用机器语 言描述的程序的转变过程。 编译或解释:将高级语言描述的程序转变成等价的用 机器语言描述的程序的转变过程。 程序设计三要素(语言)程序设计三要素(语言) 程序设计三要素(语言)程序设计三要素(语言) 解释与编译 程序设计三要素(语言)程序设计三要素(语言) 图 3.35 高 级 语 言 基 本 分 类 程序设计三要素(语言)程序设计三要素(语言) 为了描述用于解决某个具体问题的程序,一方面 涉及到问题求解的算法;另一方面还涉及计算机语言 的相关知识。针对计算机语言,除了它的词汇、短语 和句子外,每种语言还定义了其自身的篇章结构(程 序结构)。只有按照语言所定义的格式书写的程序, 才能通过翻译程序的翻译,最终被计算机正确执行。 事实上,翻译程序就是在语言格式定义的基础上进行 翻译的。 尽管不同语言有不同的格式定义,但总的来说, 程序一般包含数据组织说明部分和算法处理逻辑描述 部分,这与计算机的基本工作原理相吻合。 因此,程序=数据结构+算法。 程序设计三要素(语言)程序设计三要素(语言) 程序结构程序设计三要素(语言)程序设计三要素(语言) 程序设计三要素(环境)程序设计三要素(环境) 程序设计环境一般分为两个层面: 运行支撑环境和程序开发环境。前者 是指程序最终运行的计算机环境,它 一般是指操作系统。后者是指用于支 持程序构造的写作环境,它一般是指 各种开发工具。 运行支撑环境定义了程序执行的基本模型。目 前,一般有两种运行模型:主动式和被动式。 主动式模型中,程序本身控制自己的输入和输 出。因此,其程序的基本结构是一体式的。 被动式模型中,由运行支撑环境控制输入和输 出,并将输入和输出以消息方式通知程序。因 此,其程序的基本结构是分离式的,一个程序 分为两个部分:初始化部分和消息处理部分。 被动式模型也称为事件驱动模型。 程序设计三要素(环境)程序设计三要素(环境) 程序设计三要素(环境)程序设计三要素(环境) 主动式模型 程序设计三要素(环境)程序设计三要素(环境) 被动式模型 程序开发环境本身也是一种程序, 在运行支撑环境的支持下工作。这种特 殊程序主要用于辅助其他程序的构造。 程序开发环境的使用,一般涉及编 辑、编译、连接、调试、执行等基本阶 段。这也是程序构造的基本过程。 程序设计三要素(环境)程序设计三要素(环境) 程序设计三要素(环境)程序设计三要素(环境) 程序开发环境将运行支撑环境定义的程序执行基本 模型进行了重新包装,并对程序的结构进行了抽象 ,从而能够简化人类构造程序的工作。 程序开发环境的具体实现一般有两种:分离式和集 成式。前者将程序构造的各个阶段分离,分别提供 相应的工具。集成式将程序构造的各个阶段集成, 提供一个统一的集成开发环境。 集成开发环境提供的附加功能比较多,但由于它在 幕后进行太多的工作,并对程序的结构进行了一些 扩充的定义。因此,它会约束人的思维。 程序设计基本模式与建构程序设计基本模式与建构 学习语言的目的是为了应用,但学会语 言并不代表掌握语言的应用。 为了实现语言的应用,必须掌握一些基 本的程序设计规律和思维方法,即基本模式 及其建构方法。 应用模式是指程序设计中不断出现的各种设计规律 ,这些规律反复用于类似的应用问题的解决。 模式建构是指多个应用模式,按实际应用问题的需 求,进行组合的过程。 模式发掘与模式建构,反映的是一种认识问题、解 决问题的方法和思想,这种方法和思想符合人的认知 规律,映射到程序设计的学习,反映的是一种学习方 法的建立。这种学习方法可以培养学习者的正确的思 维,真正掌握程序设计的要领和精髓。 程序设计基本模式与建构程序设计基本模式与建构 程序设计应用模式发掘及其建构策略建立, 主要指两个方面:应用模式发掘(涉及各种技术思 想的感悟)和模式建构策略建立(递归思想应用) 。 模式发掘和模式建构策略建立的具体执行, 一般涉及到两个方面:方法和经验。它们相互相成 。方法比经验更为重要。 程序设计基本模式与建构程序设计基本模式与建构 模式及其建构的思想本质,反映的是一种 高级学习活动,体现了一种学习的方法,是一 种元认知能力的培养。触类旁通的思想内涵即 体现于此。 模式及其建构同时也反映出递归的思想内 涵。 程序设计基本模式与建构程序设计基本模式与建构 模式描述的模板定义 名称 模式的名称 语境 模式可以适用的情形 问题 模式解决的问题 解决方案 基于该模式的基本解决方案原理 特征 模式的特征抽象 样例 模式应用的一个样例说明 实现说明 使用该模式时注意的事项 参见 相关的模式名称 程序设计基本模式与建构程序设计基本模式与建构 模式1 循环模式及其建构 名称 循环三步 语境 用于重复处理 问题 处理方法的重用 解决方案 通过循环语句实现 特征 三步曲(初始条件、入口条件、修正条件) 样例 求 P = 1+2+3+4+5+6+100。 实现说明 在特殊语言中,入口条件与修正条件可以 合二为一,比如在C/C+语言中,去掉修正条件,将入口条件 改为 i += 100; 在特殊语言中,三个部分的具体表达形式可 能不同。 该模式重点是三个条件。 参见 累加模式、累乘模式 程序设计基本模式与建构程序设计基本模式与建构 模式建构案例1 计算S = 1+3+5+99。 本题是循环模式的应用。只是对循环的修正 条件ii+1改为ii+2。 程序设计基本模式与建构程序设计基本模式与建构 模式建构案例2 输入一批整数,以-1为终止。 本题是循环模式的应用。 程序设计基本模式与建构程序设计基本模式与建构 软件和软件工程软件和软件工程 针对一个大型复杂的问题,往往会涉及大量的程 序,这些程序不是一个人能完成的,需要由许多人共 同完成。在程序的构造过程中,会涉及许多问题,比 如人员的变动、问题本身需求的改变等。除了程序设 计外,还有人员管理、项目管理、文档管理等工作。 因此,仅仅通过程序和程序设计的概念来描述整个大 型复杂问题的求解过程,显然是不够的。为了顺利地 描述整个过程,计算机科学中将以程序设计和构造为 生产力的活动称为软件开发,以便与计算机硬件生产 相对应。同时,借鉴其他工程学科的方法,引入工程 化的管理思想,以工程化管理的方法管理软件的开发 活动。 软件 = 程序 + 开发、使用和维护程序所需 的所有文档。 软件危机导致软件工程(软件开发的“工程 化”管理) 软件和软件工程软件和软件工程 软件开发的“工程化”管理与土木工程等传统应 用工程领域的工程化管理的主要区别: 传统工程领域构建复杂设备时可使用预先定义的 组件,而在软件领域,由于已有软件的内部设计可能 依赖某个特殊应用目的,而难以复用,从而需要重新 设计; 传统工程领域进行产品开发时,允许一定的误差 ,而软件只有正确和不正确之分,不能出现误差; 传统工程可通过定量方法度量产品的质量(如故 障的平均时间),但对软件产品质量的定量度量方法 还缺乏理论基础,需要进一步研究。 软件和软件工程软件和软件工程 软件工程中最基本的概念是软件生命周期。软 件生命周期是指软件产品或软件系统从产生、 投入使用到被淘汰的全过程统。通常,将软件 生命周期分为五个阶段。 软件和软件工程软件和软件工程 软件开发模型:为了更好地实施软件开发的工 程化管理而建立的良好的包括软件开发全部过 程、活动和任务的结构框架。 软件开发模型的种类:瀑布模型、演化模型、 螺旋模型、喷泉模型和智能模型 软件和软件工程软件和软件工程 软件开发模型只是表示了软件开发过程、活动 和任务的结构框架,是一种宏观的指导思想。 而对于具体的软件开发过程,还需要微观的软 件开发方法。 软件开发方法是软件开发过程所遵循的办法和 步骤。开发过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论