程序设计方法学习题汇总.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计方法学习题汇总.doc

《程序设计方法学》习题汇总 一、简答题: 何谓Proper程序?试举一例。 答:一个框图程序,若满足:i)一个入口,一个出口;ii)每个结点总有一条从入口到出口的路径通过它。则称其为Proper程序。例: 何谓prime程序?试举一例。 答:Prime程序又称初等程序、基本程序。是Proper程序且其中不包括由二个以上结点组成的Proper程序。即最小的Proper程序。例: 给出Hoare关于程序部分正确和完全正确的定义。 答:给定Spec(φ, ψ),若对输入x满足φ(x),则程序S计算终止,且ψ(x , z)满足。称S关于(φ, ψ)是完全正确的。记为{φ}S{ψ}。 给定Spec(φ, ψ),若对输入x满足φ(x),当程序S计算终止时,满足ψ(x , z)。称S关于(φ, ψ)是部分正确的。记为[φ]S[ψ]。 Hoare关于程序部分正确和完全正确的定义有什么区别?为什么在证明程序S是完全正确时可以分别证明部分正确和终止?,ψ是程序S的前置谓词和后置谓词,φ,ψ与S是一个什么关系? 答:Spec可以表示为二元组(φ,ψ),称φ是初始(前置)断言,ψ是结果(后置)断言。 称{φ}S{Ψ}为S关于Spec(φ,Ψ)的程序断言。其含义是:若S执行前φ为T,那么S的执行一定终止,且终止时Ψ为T。 叙述最弱前置谓词WP的定义。试举一例。 答:设S是一个程序(语句),ψ是一个后置谓词,定义最弱前置谓词WP(S,ψ)为:满足S从其中任一状态开始执行,必定在有限的时间内终止。且满足ψ的所有状态的集合。例: S1: i:=i+1; ψ1:i≤10 WP(S1, ψ1)≡(i≤9) 可以用顺序语句“;”和重复语句“WHILE-DO”来描述判定语句“IF_THEN_ELSE”的功能吗?为什么? 答:可以,例如可以将判定语句“if C then A; else B;”用重复语句表示为: While C do { A; } While !C do { B; } 计算非负整数x和y的最大公约数: gcd1(x,y) ≡if x=0 then y else if yx then gcd1(x-y,y) else gcd1(x,y-x) 是否正确?为什么? 答:不正确。因为当yx时,根据程序gcd1(x,y)将变换为gcd1(x-y,y),根据良序集(W,)的定义应该有:(x-y,y)(x,y)。然而当y=0时,上式(x-0,0)<(x,0)便无法成立,可见该程序是不正确的,它将导致程序无法终止。 并行程序与顺序程序的区别是什么? 答:并行程序具有同时性和并发性的特点,即两个或多个事件可以在同一时刻或同一时间间隔内同时发生。而顺序程序没有上述特点,只能在一个事件执行完毕之后才能执行下一个事件。 何谓并行系统中的不确定性、平行性、并发性、分布性,它们间的关系如何? 答:不确定性指两个静态功能等价的并行程序,动态计算的结果可能不同。 平行性指两个或多个事件在同一时刻发生。 并发性指两个或多个事件在同一时间间隔内发生。 分布性指系统中各计算机异步独立工作。 二、证明题: 试证任何一个Proper程序功能等价基础系 { ; , IF_THEN_ELSE , WHILE } 语句复合而成的复合程序。 证:考虑任一Proper程序P,设P有n个结点(函数、谓词)。 i)对程序中的谓词、函数结点进行编号(1…n) ii)引入一个计数器L iii)在编号的基础上为各输入/输出线进行编号(规则:对结点i,输出线为该结点后继结点的编号;出口线为0) iv)对每个结点i构造新结点gi的方法是: v)将P改造成测试L的程序F(图示): 程序F:L=1, while L0 do If L=1 Then g1; Else if L=2 Then g2; … Else if L=n Then gn; Else I; ∴F∈{;,IF-THEN-ELSE,WHILE} F与P等价。 试证WP(S,ψ1∧ψ2)? WP(S,ψ1)∧WP(S,ψ2) 其中S是程序,ψ1,ψ2是其后置谓词。 证:∵ (ψ1∧ψ2) ?ψ1 ∴ 由单调率,WP(S,ψ1∧ψ2)? WP(S,ψ1)   同理:WP(S,ψ1∧ψ2)? WP(S,ψ2)   ∵ A?B,A?C,有A?(B∧C)   ∴ 结论成立。 若P、Q是任意语句S的任意两个后置谓词,试证: WP (S , P ∧ Q) ? WP (S , P) WP (S , P) ? WP (S

文档评论(0)

changjiali2019 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档