- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PM讲义-第6章 程序设计的基本方法.ppt
第六章 程序设计基本方法 主要内容: 程序设计的基本原则 选择语句的设计 循环语句的设计 循环不变式的设计 界函数的设计 6.1 程序设计的基本原则 Principle 1: 一个程序和它的正确性证明应同时设计,并且最好以考虑证明为先导。 Principle 2: 使用理论来提供正确性的理解,而在适当的地方用常识和直观方法。 但当出现困难和复杂情况时,仍然依据形式理论作保证。 当然一个人只有既有常识又掌握理论才能有效地在形式化和常识之间进行协调。 6.1 程序设计的基本原则 Principle 3: 要了解将用程序来处理的对象的性质。 Principle 4: 不要忽视任何看起来十分明显的原则,只有通过有意识地运用这些原则才会获得成功。 Principle 5: 认识一个原则和应用一个原则是两回事。 6.1 程序设计的基本原则 Principle 6: 在着手编程之前,首先要弄清楚问题是要求“做什么”的,并将其抽象化为前置条件和后置条件,即给出精确的程序规范,且勿仓促编码。 Principle 7: 程序设计是一种面向目标的设计活动。即程序设计是围绕着目标Q进行的,这意味着Q起着比P更重要的作用。 6.1 程序设计的基本原则 关于证明和测试数据分析 边进行程序设计,边写下有关的测试数据。关键在于有效地选择和生成测试数据集; 从工程角度看,测试是重要的; 但从人员培训的角度看,应该训练程序员具有编制正确程序的能力; 因此,学习和研究形式证明技术是培养能力的一种有效的途径 测试只能证明程序有错,并不能证明程序是正确的。 对程序员的科学训练是十分重要的 有人曾做过一个试验:一个题目由一批印度程序员来做,其结果惊人地相似;而由一批中国程序员来做,编出的程序五花八门。 只有规范的科学的编程,一个大项目才能得到有效的管理,其质量才有保证。创造性应该发挥在适当的地方。 高效的程序员不应该浪费很多的时间用于程序调试,他们一开始就不要把缺陷引入 6.1 程序设计的基本原则 关于小程序的设计 70年代对小程序设计有很多的研究 小程序设计是大规模程序正确性的基础。设一个大程序是由n个小程序组成,每个程序正确的概率是p,那么整个程序正确的概率P满足: Ppn. 6.2 选择语句的设计 6.2 选择语句的设计 选择语句的设计策略: 对于规范(P,Q) 寻找语句s1,它执行后能使Q成立 再寻找满足P ∧c1 ?wp(s1,Q)的条件c1 形成带卫哨语句c1? s1 继续寻找带卫哨语句c2? s2,..., cn? sn 直到P ?c1∨c2 ∨... ∨cn成立为止。 6.2 选择语句的设计 选择语句的设计策略: 对于规范(P,Q) 寻找语句s1,它执行后能使Q成立 再寻找满足P ∧c1 ?wp(s1,Q)的条件c1 形成带卫哨语句c1? s1 继续寻找带卫哨语句c2? s2,..., cn? sn 直到P ?c1∨c2 ∨... ∨cn成立为止。 选择语句的设计举例 例1: 写一程序置换y1和y2之值 使得y1≤y2. 解:其规范为: P: y1=u1 ∧ y2=u2 Q: y1 ≤y2 ∧ (y1=u1 ∧y2=u2 ∨ y1=u2 ∧y2=u1 ) 可能有语句 ?? skip ?? y1,y2 := y2,y1 可求得条件分别为: y1 ≤y2 和 y2 ≤ y1 选择语句的设计举例 (续) C1 = y1 ≤y2 C2 = y2 ≤ y1 C1 ∨ C2 = y1 ≤y2 ∨ y2 ≤ y1 = True ∴ P ? C1 ∨ C2 成立 得程序如下: if y1 ≤y2 ? skip y2 ≤y1 ? y1,y2 := y2,y1 fi 6.3 循环语句的设计 讨论如何从以下条件构造循环程序: 前置条件 P 结果条件 Q 循环不变式 ? 界函数 ? 构造循环程序的理论基础: DO 的语义 相关定理 循环程序的验证的方法 6.3 循环语句的设计 DO ::= do c1 ? s1 □ c2 ? s2 … □ cn ? sn od 其中,n0, ci 为布尔表达式, si 为语句, c1 ? s1为带哨语句 循环语句的设计策略 卫哨先行 走向终止 设计策
您可能关注的文档
最近下载
- 2024-2025学年辽宁省名校联盟高二上学期12月联考英语试题.pdf VIP
- 辽宁省名校联盟2024-2025学年高二上学期12月联合考试生物试卷(含答案).docx VIP
- 肝胆外科常用药物总结.ppt VIP
- 2024-2025学年辽宁名校联盟高二上学期12月月考物理物理试卷(解析版).docx VIP
- tissin_positioner_ts900-manual_c调试详细步骤.pdf VIP
- TBIA 25-2024 骨科疾病诊疗数据集-骨质疏松症康复.pdf
- JC-T 204-2011 天然花岗石荒料.pdf VIP
- 液压打桩机机毕业设计论文.pdf VIP
- 广汽菲亚特viaggio菲翔系列车辆说明书.pdf VIP
- 《伯牙鼓琴》教学设计 (2).docx VIP
原创力文档


文档评论(0)