收藏 分享(赏)

程序设计方法学部分答案精华版.doc

上传人:cjc2202537 文档编号:255986 上传时间:2018-03-25 格式:DOC 页数:2 大小:95KB
下载 相关 举报
程序设计方法学部分答案精华版.doc_第1页
第1页 / 共2页
程序设计方法学部分答案精华版.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、1. 程序设计方法学产生的历史背景:软件危机。2.什么是程序设计方法学:程序设计方法学是讲述程序的性质以及程序设计的理论和方法的一门学科,内容包括结构程序设计、数据抽象与模块化程序设计、程序正确性证明、程序变换、程序的形式说明与推导、程序综合技术、面向对象的程序设计法、大型程序设计方法学基础等程序设计方法学与结构程序设计的关系:程序设计方法学是在结构程序设计的基础上逐步发展完善起来的。4. D.Gries 教授将已有的对结构程序设计的不同解释归纳为几种?:13,主要有 6 种。5. 什么是结构程序设计?:结构程序设计是一种进行程序设计的原则和方法,按照这种原则和方法设计出的程序的特点是结构清晰

2、、容易阅读、容易修改、容易验证。6. 结构程序设计的目标是什么?:得到一个好结构程序7. 结构化程序由哪些结构组成:序列结构、选择结构、循环结构8. 什么是逐步求精程序设计方法:就是在编制一个程序时,首先考虑程序的整体结构而忽视一些细节问题,然后逐步地、一层一层地细化程序直至用所选用的语言完全描述每一个细节,即得到所期望的程序为止。9. 逐步求精的优点是什么?:逐步求精的最大优点是摆脱了传统的程序设计方法的束缚,按照先全局后局部,先整体后细节、先抽象后具体的过程组织人们的思维活动,使得编写的程序结构清晰、容易阅读、容易修改、同时还可以结合逐步求精的过程进行程序正确性验证,即采取边设计,边验证的

3、方法,以简化程序正确性的验证。1. 流程图程序:一个程序可以用流程图的形式表示出来,这种程序称为流程图程序。严格地讲,流程图是一个描述程序的控制流程和指令执行情况的有向图。他是程序的一种比较直观的表达形式。一个程序的流程图通常由函数节点、谓词节点、汇点 3 种节点组成2 正规程序:1 具有一个入口线和一个出口线2、对每一个节点,都有一条从入口线到出口线的通路该点。3、基本程序:一个正规程序,如果不包含多于一个节点的正规子程序。4. 结构化程序:由基本程序的一个固定的基集合构造出的复合程序称为结构化程序。5. 程序函数:已知一正规程序 P,对于每一个初始的数据状态 X,若程序是终止的,那么有确定

4、的最终数据状态 Y。对于每一个给定的 X,值Y 是唯一的,那么所有的有序对的集合X,Y定义了一个函数,我们称这个函数为程序 P 的程序函数,记为P。6. 程序函数等价:如果程序 P1 和 P2 是相同的程序函数,称他们是函数等价的。7. 结构化定理:任一正规程序都可以函数等价于一个由集合序列,if-then-else,while-do产生的结构化程序。1. 面向对象的程序设计方法是新型的结构化程序设计:20 世纪 80 年代2. 什么是应用框架:一个框架是一个可复用的设计组件,它规定了应用的体系结构,阐明了整个设计、协作组件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作

5、的方法,它为组件复用提供了上下文关系。3. 框架与一般类库的主要区别:反向调用。1. 证明与测试的区别:调试的方法虽然可以帮助人们发现程序中的错误,但是却不能证明程序中没有错误,并且只能对很有限的几组初始值进行试算。它不能证明程序是正确的。程序正确性证明不仅可以证明顺序程序的正确性,而且利用这些方法还可以证明非正确性程序及并行程序的正确性。2、部分正确性与完全正确性:(1)若对每一个使得 ()为真,并且程序计算终止的输入信息 、(,p())为真,程序 P 关于 和 是部分正确的。p()表示和输入 相对应的程序 P 的输出信息。 (2)若对每一个使得()为真的输入信息 ,程序的计算都要终止,并且

6、 (,p())为真,称程序 P 关于 和 是完全正确的。一个程序是完全正确的等价于该程序是部分正确的同时又是终止的。3. 不变式断言法的步骤:(1)建立断言。一个程序除了要建立输入,输出断言外,如果程序中有循环出现,还要建立相应于该循环的不变式断言,即在循环中选取一个断点,在断点处建立一个适当的断言,使循环每次执行到断点时,断言都为真。 (2)建立检验条件。在循环中建立断点后,程序执行中所有可能的通路就可以分解为几条有限的通路。对每一条通路建立一个检验条件。所谓检验条件就是程序运行通过该通路时应满足的条件。具体的讲,如果将每一条通路看做一段程序,它的输入断言,输出断言分别为 i(x,y),i(

7、x,y),而通过此通路的条件为 Ri(x,y),通过此通路后 y 的值变为 ri(x,y) ,则应有检验条件i(x,y) Ri(x,y)=i(x,ri(x,y)),y 是程序执行中的一组中间变量,x 是输入量,符号=是蕴涵符(3)证明检验条件。即证明步骤(2)中所得到的所以检验条件,如果每一条通路检验条件均为真,该程序是部分正确的。4.子目标断言法与不变式断言法的区别:(1)两种方法对循环所建立的断言不同。不变式断言描述了程序变量 y 的中间值与初值之间的关系,而子目标断言描述的事 y 的中间值与循环终止时的最终值 yf 之间的关系。 (2)两种方法进行归纳的方向不同。不变式断言法沿着程序正常

8、执行的方向进行归纳,而子目标断言则沿着相反方向进行归纳。5. Hoare 定义的赋值公理、推理规则:赋值公理 P(x,g(x,y))yqj(x,ra(x,y),而对于每一个由截断点i 到截断点 j 的通路 a 有 qi(x,y)Ra(x,y)=qj(x,ra(x,y),Ra 和 ra 分别表示通过通路 a 的条件及通过通路 a 以后变量 y 的值。 (4)证明终止表达式是良函数。即对于每一个截断点 i 有qi(x,y)=Ei(x,y)W.。 (5)证明终止条件成立。即对于每一个由截断点 i 到截断点 j 且某个循环的一部分通路 a 有 qi(x,y)Ra(x,y)=Ei(x,y)Ej(x,ra

9、(x,y)。9. 计数器方法:它的基本思想是对程序中的每一个循环附加一个新的变量(通常称为计数器) ,在进入该循环前,计数器置 0,循环通路每执行一次,计数器加 1.同时,对每一个循环提供一个新的中间断言,它表示相应的计数器不会超过某个固定的界限。进一步,证明此中间断言是不变式断言,这样就可以断定循环只能执行有限次,因而程序是终止的。1. f=p的含义,作用:假设已知一程序 p 和一预期函数 f,若有 f=P,称程序 P 正确地实现了函数 f,或者说程序 P 是正确的。2. 定理 6.1 a c d: 已知预期函数 f 和基本程序 P,则 f=P的充分必要条件是:对所有的XD(f) ,程序 P

10、 终止。且对不同的基本程序,函数 f 分别满足下列关系:a:对序列程序,即 p=g;h,有 f=(x,y)| y=hg(x)c:对 if-then-else 程序,即P=if p then g else h fi 有 f=(x,y)| p(x)-y=g(x) | p(x)-y=h(x)d:对 while-do 程序,即 P=while p do g od 有 f=(x,y)| p(x)-y=f g(x) | p(x)-y=x4.分离规则:如果一个条件规则的所有谓词都是分离的,称它为分散规则。5. 定理 6.2 假设 f(x)=while p(x)do g(x) od,x0D(f)是变量在循环入

11、口处的值,则对任意xD(f) , q(x)=(f(x)=f(x0),是此 while-do 循环的一个不变式。1. 迭代与递归:递归是一种比迭代循环更强的循环结构,可以证明每个迭代程序原则上总可以转换成与等价的递归程序,但是,反之不然,即并不是每个递归程序都可以转换成与它等价的迭代程序。但就效率而言,递归程序的实现往往要比迭代程序耗费更多的时间与存储空间。2. 结构归纳法步骤和使用:(1)证明对于“最简单”的数据,程序运行正确;(2)假设对于“较简单”的数据,程序运行正确【归纳假设】 ,在此基础上证明对于“较复杂”的数据,程序亦运行正确。3. 良序归纳法步骤:设(W, )是一个良序集,P (

12、x)一个命题,为了证明对于所有的xW,P(x)为真,只要(1)证明 P(x0)为真(2)归纳假设:假设对于所有的 x x,P(x)都为真,在此基础上证明 P(x)为真。1. 谓词变换器 wp(S,R):对于任意程序段 S 和期望通过执行 S 而建立的谓词 R,谓词wp(s,r)表示所有符合下列条件的集合。如果S 从 wp( s,r)中的任一状态开始执行,一定能在有限的时间里终止于一个满足 R 的状态,显然对于固定的 S 来说, wp(s ,r )可以看做是谓词 R 的函数,且函数值也是谓词,因此通常将他称为谓词变换器。2. 赋值语句、wp 的几条性质:性质 1 对任何的程序段 s,有 wp(S

13、,F)=F性质 2 对任何程序段 S 和任何后谓词 R1 和R2,如果对于所有状态有 R1=R2,则对于所有的状态有 wp(S,R1)=wp(S,R2)性质 3 对任何程序段 S 和任何后谓词 R1 和 R2及所有的状态有(wp(S,R1)wp(S,R2))=wp(S,R1R2)性质 4 对任何程序段 S 和任何后谓词 R1 和R2 及所有的状态有 wp(S,R1)wp(S,R2) )=wp(S,R1R2)3. 面向目标的程序推导:序列、选择、循环1、弱化谓词的方法:4 条,主要是前两条。删去一个合取分量,如谓词 ABC 可被减弱为AB 或 AC 等2、用变量代替一个常量,如谓词(i:0in:

14、A(i)可被减弱为 0jn(同上),这时引入了新的变量j,但注意要精确地定义它的取值范围 3、扩大一个变量的值域,如谓词 5in,可被减弱为0in.4、加上一个析取分量,如谓词 A 被减弱为 A 并 B,这里 B 是另一个任意的谓词1. 变换的目的:将好结构的程序改造成运行效率高的程序,将某些类型的递归程序转化为相应的迭代程序从而提高程序的运行效率。2. 程序变换的基本思想:程序变换的基本思想是把程序设计工作分为两个阶段进行,即程序生成阶段和程序改进阶段。在程序生成阶段,先用一种清晰和抽象的语言来描述算法,并在此基础上设计一个面向问题的,易于理解的、正确的函数型递归程序,这时暂不考虑程序的运行效率。在程序改进阶段,将通过一系列保持正确性的变换规则,对程序的数据结构和算法进行求精,最终将该程序转换为一个具体的面向过程且运行效率高的程序文本。3. 变换规则:5 种基本规则 定义规则、取样规则、展开和封叠规则、用定律规则、抽象规则。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报