[农学]程序设计方法学1.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[农学]程序设计方法学1

* 国家高性能计算中心 * 例: 2.同时代换(Simultaneous Substitution) 设 表示一个互不相同的标识符表,即 是一个表达式表,且与 有相同的长度。 则,在表达式E中用ei同时代换相应的xi的所有出现记为: * 国家高性能计算中心 * 1. 代换必须同时进行 如: 2. 一般来说, 与 可能不同 如 同时代换的要点: * 国家高性能计算中心 * 二、状态转换(state transformation) 设S是一个状态,E是一个表达式,则,E在状态S下的值记为S(E)。 例如: 则 文字代换 * 国家高性能计算中心 * 程序状态的转换 程序状态是怎样转换的呢? ——给程序中的变量赋新值(包括增加或减少了变量的个数)。 设s和s’是相邻的两个程序状态, s和s’的差别主要在于s和s’中某些变量的值不同(包括变量的增加或减少)。 * 国家高性能计算中心 * 状态转换的表示: 设s和s’是两个状态,它们有相同的标识符,且除了某个标识符的值不同外,其余的都一样,则用下面的标记来表示s’(这里设s和s’中x的值不同,x在s’中的值为v,其余的标识符均相同): s’=(s;x:v) 例:在状态s下执行赋值语句x:=2,则终止状态为 s’=(s;x:2) * 国家高性能计算中心 * 3. 引理1.3: 证明:略。 引理1.4:已知状态S,设 ,则 证明:由S’定义,有S’(E)=(S;x:S(e))(E) 在状态(S;x:S(e))下计算E的值须用S(e)代换x,则: 由于x在 中不再出现,因而 的值不依赖于x,故有 由引理1.3即得 * 国家高性能计算中心 * 引理3:同时代换情况下的引理 设x是一个互不相同的标示符表,E是表达式,u是一与x不同的互不相同的标识符表,则有 证明:略。 * 国家高性能计算中心 * 1.4 使用断言说明程序 一、程序说明 1.程序说明的目标:精确描述程序要干什么。 2. 如何进行程序说明 采用自然语言 利用断言说明程序 3. 如何利用断言说明程序? 一般方法:在程序的前后分别放置用于验证程序状态的谓词,判断程序执行之前是否进入“正确状态”,程序执行之后,是否输出“正确状态”。 * 国家高性能计算中心 * 4. 使用断言进行程序说明的一般形式 {Q} S {R} 其中, S:表示程序(段) Q,R:表示谓词,是关于S的两个断言,分别表示S执行前后有关变量之间应满足的关系(状态)。 Q称为S的前置条件(或前断言); R称为S的后置条件(或目标断言)。 注:断言用{ }括起来,以与程序分隔开。 * 国家高性能计算中心 * 例1 求两个非负实数之积的程序说明 {Q:a≥0∧b≥0} S {R:z:=a*b} 例2 求数组b[0:n-1]元素之和的程序说明 {Q:n≥0} S {R:s=(Σi;0≤i<n:b[i])} * 国家高性能计算中心 * 例3 数组b[0:n-1]分类的程序说明 {Q:n≥0} S {R:( )} 例4 求x/y商和余数的程序说明 {Q:x≥0∧y>0} S {R:0≤r<y∧x=y*q+r} * 国家高性能计算中心 * 二、程序正确性 1. 什么叫程序正确? 如果程序在满足前提的条件下执行,能够达到结论所要求的目的,则称该程序是正确的——对合法的输入能够得到合法的输出。 程序正确性包括两个方面的含义: 完全正确性:如果在使Q为真的状态下开始执行S,S一定终止,且终止时的状态使R为真,则称S完全正确,记为: 部分正确性:如果在使Q为真的状态下开始执行S,若S终止,且终止时的状态使R为真,则称S部分正确,记为: * 国家高性能计算中心 * 程序正确性证明的含义: 这里讨论的正确性是指程序的完全正确性; 注:式{Q}S{R}本身也是谓词。 满足完全正确性,则谓词{Q}S{R}为真,反之为假。 程序正确性证明就是证明{Q

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档