程序设计方法学考试简答资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1. 程序设计方法学产生的历史背景
答:软件危机。
2. 什么是程序设计方法学
答:简单地说,程序设计方法学是讲述程序的性质以及程序设计的理论和方法的一门学科。
3.程序设计方法学与结构程序设计的关系
答:在程序设计方法学中,结构程序占着十分重要的位置,可以说,程序设计方法学是在结构程序设计的基础上逐步发展和完善起来的。
4. D.Gries教授将已有的对结构程序设计的不同解释归纳为几种?
答:主要有6种。
(图手工画)
5. 什么是结构程序设计?
答:结构程序设计是一种进行程序设计的原则和方法,按照这种原则和方法设计出的程序的特点是结构清晰、容易阅读、容易修改、容易验证。
按照结构程序设计的要求设计出的程序语言称为结构程序设计语言。
6. 结构程序设计的目标是什么?
答:得到一个好结构程序
7. 结构化程序由哪些结构组成:P5
答:序列结构、选择结构、循环结构。
8. 什么是逐步求精程序设计方法
答:就是在编制一个程序时,首先考虑程序的整体结构而忽视一些细节问题,然后逐步的、一层一层地细化程序直至所选用的语言完全描述一个细节,即得到所期望的程序为止。
9. 逐步求精的优点是什么?
答:摆脱了传统的程序设计方法的束缚,按照先全局后局部,先整体后细节,先抽象后具体的过程组织人们的思维活动,使得编写出的程序结构清晰、容易阅读、容易修改。
同时,还可以结合逐步求精的过程进行程序正确性验证,即采取边设计、边验证的方法,以简化程序正确性的验证。
第二章:
1. 流程图程序
答:一个程序可以用流程图的形式表示出来,这种程序就称为流程图程序。
2. 正规程序
答:一个流程图程序如果满足一下两个条件就称为正规程序
(1)具有一个入口线和一个出口线;
(2)对每一个结点,都有一条从入口线到出口线的通路结点。
3. 基本程序
答:一个正规程序如果不包含多于一个结点的正规子程序称为基本程序。
4.结构化程序
答:由基本程序的一个固定的基集合构造出的复合程序称为结构化程序。
5. 程序函数
答:已知一正规程序P,对于每一个初始的数据状态X,若程序是终止的,那么有确定的最终数据状态Y,如果每一个给定的X,值Y是唯一的,那么所有的有序对的集合{(X,Y)}定义了一个函数,我们称这个函数为程序P的程序函
数,记为[P].
6. 程序函数等价
答:如果程序P1和P2有相同的程序函数,称他们是等价的,简称是等价的。
7. 结构化定理:使用方式
答:任一正规程序都可以函数等价于一个由基集合{序列,if-then-else,while-do}产生的结构化程序。
第三章:
第四章:
1. 面向对象的程序设计方法是新型的结构化程序设计。
20世纪80年代
2. 什么是应用框架
应用框架就是在某特定的应用领域中,程序之间的共同特征。
框架就是整个或部分系统的可重用设计,一个框架是一个可复用的设计组件
3. 框架与一般类库的主要区别
答:反向调用
第五章:
1. 证明与测试的区别
答:测试:给程序一组或者几组初始值进行试算,然后将试算的结果与事先已知的结果进行比较,若两者相同,则认为程序是正确的,若两者不同,则认为是错误的。
证明:证明方法不仅可以证明程序的正确性,有些还可以证明非确定性程序及并行程序的正确性。
2. 部分正确性与完全正确性
答:程序正确性严格定义通常分为三种类型,及程序的部分正确性、终止性、和完全正确正确性。
完全正确等价于改程序是部分正确的同时又是终止的,因此,为了证明一个程序的完全正确性,通常采用的方法是分别证明该程序的部分正确性和终止性。
3. 不变式断言法步骤
答:分三个步骤:建立断言,建立检验条件,证明检验条件。
4. 子目标断言法与不变式断言法的区别
答:两种方法对循环所建立的断言不同,两种方法进行归纳的方向不同
5. Hoare定义的赋值公理、推理规则
答:赋值公理。
条件规则、while规则、并置规则、结论规则
6. Hoare推理过程的两种形式?答:组装、分解
7. 良序集
答:设(w,<)是一个偏序集,如果不存在由w中的元素构成的无限递减序列,a0>a1>a2…则称(w,<)是一个良序集
8. 良序集方法的步骤
答:1.选取一个点集去截断程序的各个循环部分,并且在每个断点i处建立一个中间断言Qi(x,y)。
这样程序就被分解为若干条通路,同时规定每一条通路都不包有中间阶段点。
2.选取一个良序集(w,<),并且在每一截断点i处定义一个终止表达式Ei(x,y)
3.证明所选取的断言是“良断言”
4.证明终止表达式是良函数
5.证明终止条件成立
9. 计数器方法
答:计数器方法是D.E.Knuth在1968年提出来的。
它的基本思想是对程序中的每一个循环附加一个新的变量O,循环通路每执行一次,计数器加1同时,对每一个循环提供一个新的中间断言,他表示相应的计数器不会超过某个固定的界限,进一步证明此中间断言是不变式断言,这样,就可以断定循环只能执行有限次,因而程序时终止的。
第六章:
1.f=[p]的含义,作用
答:假设已知一程序P和一预期函数F,若有f=[P],称程序P正确地实现了函数f,或者说程序P是正确的。
2. 定理6.1 a c d 第179页
3. 使用跟踪表求出程序函数例6.2 第183与P184页
4. 了解分离规则
答:如果一个条件规则的所有谓词都是分离的,称它为分离规则。
5. 定理
6.2 f(x)=f(x0) 第188页
第七章:
1. 迭代与递归
答:递归是一种比迭代循环更强的循环结构。
可以证明每个迭代程序原则上总可以转换成与它等价的递归程序,但是,反之不然,即并不是每个递归程序都可以转换成与它等价的迭代程序。
但就效率而言,递归程序的实现往往要比迭代程序耗费更多的时间与存储空间,所以在具体实现时,又希望尽可能把递归程序转化成等价的迭代程序,从而提高程序的时空效率。
2. 结构归纳法步骤和使用
答:(1)证明对于“最简单”的数据、程序运行正确;
(2)假设对于“较简单”的数据、程序运行正确“归纳假设”,在此基础上证明对于“较复杂”的数据,程序亦运行正确。
例7.15 p200
3. 良序归纳法步骤、使用例7.15 7.19
答:设(W,<)是一个良序集,P(x)是一个命题,为了证明对于所有的x属于W,P(x)为真,只要
(1)证明P(x0)为真(x0是W中“最小元素”);
(2)归纳假设:假设对于所有的x’-x,P(x’)都为真,在此基础上证明P(x)为真。
例7.19 P203
第八章:
1. 谓词变换器wp(S,R)
答:对于做文章程序段S和期望通过执行S而建立的谓词R,谓词WP(S,R)表示所有符合下列条件的状态的集合,如果S从WP(S,R)中的任一状态开始执行,一定能在有限的时间里终止于一个满足R的状态,显然,对于固定的S来说,WP(S,R)可以看作是谓词R的函数,且函数值也是谓词,因此通常将它称为谓词变换器。
2. 赋值语句、wp的几条性质
答:第207~208页
3. 面向目标的程序推导:
答:序列、选择、循环
4. 弱化谓词的方法:4条,主要是前两条。
答:减去一个合取分量,如谓词A交B交C可被减弱为A交B或者A交C等,2.用变量代替一个常量,如谓词(……………. ………………….)可被减弱为(…………………………………………….)这时,引入了新的变量j,但注意要精确地定义他的取值范围。
3.扩大一个变量的值域,如谓词5<i<n,可被减弱为0<i<n
4.加上一个析取分量,如谓词A可被减弱为A并B,这里B是另一个任意的谓词。
第九章:
1. 变换的目的
答:由于递归算法比较符合人的思维习惯(即把“复杂”的问题逐次的归结为“较简单”的问题,因此相应的递归程序往往具有结构紧凑简洁和容易理解等优点。
但是在具体实现时由于通常必须使用堆栈技术所以要耗费较多的计算时间和存储时间。
2. 基本思想
答:
程序变换的基本思想是把程序设计工作分为两个阶段进行,即程序生成阶段和程序改进阶段。
(注重可读性和正确性)(面向过程)3. 变换规则:5种基本规则
答:程序变换规则一般可分为两大类:一类是基本变换规则;另一类是派生变换规则.
基本变换规则包括:定义规则,取样规则,展开和封叠规则,用定律规则,抽象规则。
派生变换规则是一组基本变换规则序列的缩写,或可有基本变换规则和归纳法加以证明的变化规则。