程序设计方法学课件.ppt
《程序设计方法学课件.ppt》由会员分享,可在线阅读,更多相关《程序设计方法学课件.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/2/8国家高性能计算中心1第二篇 预备知识u第一章 程序状态及有关转换的定理u第二章 程序正确性证明及其证明法则u第三章 数组的标记法及有关约定2023/2/8国家高性能计算中心2第一章第一章 程序状态及有关状态转换的定理程序状态及有关状态转换的定理1.4 使用断言说明程序1.3 文字代换和状态转换定理1.2 程序断言1.1 程序状态与谓词演算中的有关知识2023/2/8国家高性能计算中心31.1 程序状态与谓词演算中的有关知识程序状态与谓词演算中的有关知识一、程序状态一、程序状态 程序变量:程序中特定的标识符。程序执行过 程中的任一时刻,这些变量都具有 特定的值(或有待于赋值)li
2、nput variable lprogram variableloutput variable 2023/2/8国家高性能计算中心4 设程序P含有n个标识符(程序变量)程序状态:某一时刻标识符集合所对应的值集合 构成程序P在该时刻的状态(snapshot)。程序状态记为s。s一个二元组的集合,每个二元组由一标识符和它所对应的值组成,例如:s=(x,5),(y,0),(z,3)含义:程序中有三个变量:x,y,z。运行在 x5,y0,z3的状态。2023/2/8国家高性能计算中心5表达式的值:设程序处在状态s下,表达式e在状态s 下的值记为s(e),表示用s中各标识符 的值代换e中对应标识符后计算
3、所得的 结果。如:设,s=(x,5),(y,0),(z,3)则,e1=x+y s(e1)=5+0=5 e2=x=y do begin r:=r-y;q:=q+1 end z1:=q;z2:=r状态初始状态进入循环之前,经过赋初值以后的状态退出循环之后的状态2023/2/8国家高性能计算中心7二、谓词及谓词变元的赋值二、谓词及谓词变元的赋值l命题:可以判定真假的布尔表达式。如:3+3=6,35 命题是“算术表达式”,对事实的一种陈述。l谓词:含有变量的布尔方程式 谓词的值视变量的取值而定。如:x=2,x+y=6?谓词是“方程式”,求谓词的值需带入变量的值。2023/2/8国家高性能计算中心8l
4、n元谓词:所有变量都取自于一定的定义域,这里,Di表示变元xi的定义域。l谓词的计算 谓词计算是一个由变量的定义域到函数值域0,1集合的全映射过程。T,F2023/2/8国家高性能计算中心9三、对谓词演算的扩充三、对谓词演算的扩充 1、对值域的扩充 二值谓词:T or F “三值”谓词:引入为“无定义的对象”的值U,将F,T扩展成F,T,U。例如:设 谓词:,状态:则2023/2/8国家高性能计算中心102、对连接词(逻辑运算符)的扩充 引进新的运算符 cand,cor:分别表示有条件的and和or。cand和cor 的运算法则用下面的真值表给出:bcb cand cb cor cTTTTTF
5、FTTUUTFTFTFFFFFUFUUTUUUFUUUUUU即:b cand c:if b 为U then U else if b then c else Fb cor c:if b 为U then U else if b then T else c2023/2/8国家高性能计算中心11cand、cor的性质1)不满足交换律,即 b cand c 与 c cand b,b cor c 与 c cor b 是不等价的2)满足结合律:E1 cand(E2 cand E3)(E1 cand E2)cand E3 E1 cor(E2 cor E3)(E1 cor E2)cor E3分配律:E1 can
6、d(E2 cor E3)(E1 cand E2)cor(E1 cand E3)E1 cor(E2 cand E3)(E1 cor E2)cand(E1 cor E3)De Morgan律:(E1 cand E2)E1 cor E2 (E1 cor E2)E1 cand E22023/2/8国家高性能计算中心123、对量词(quantifier)的扩充 全程量词 :存在量词 :其中,m,n为整型表达式,且mn;Ei(i=1,2,n-1)是谓词;标识符i称为被量化的标识符,或受约束标识符;值集i|min并且i为整数为i的值域。2023/2/8国家高性能计算中心13引进一些新的量词化表示:求和量词
7、乘积量词 计数量词 这些量词之间有下面的等价形式:2023/2/8国家高性能计算中心14约束变量与自由变量 约束变量:被量词化的变量 例如:x,y 是自由变量,i是约束变量 量词的作用域:例:区分 和2023/2/8国家高性能计算中心151.2 程序断言程序断言一、一、程序断言程序断言 程序中有关变量应满足的关系(或条件)称为程序断言。程序断言的性质和要求:v断言必须准确、完善地刻画变量间应满足的关系(或条件)。v断言通常用谓词(布尔表达式)表示。v断言(谓词)可在程序状态S下计算其真假值。2023/2/8国家高性能计算中心16例例2:求断言的值。设程序P的状态为:s=(B,3),(C,1),
8、(A,T)求断言(B+C)0A)在状态s下的值 解:s(B+C)0A)s(B+C)0)s(A)(3+1)0)T F 故,断言(B+C)0A)在状态s下为假 2023/2/8国家高性能计算中心17程序断言的位置:设有程序程序断言的位置:设有程序P begin x:=;y:=;r:=0;while y 0 do r:=x mod y;x:=y;y:=r end while z:=x end 2023/2/8国家高性能计算中心18二、二、程序断言的作用程序断言的作用 将程序断言插入到程序的适当位置,用 括起来,表示,每当“控制流”到达这些位置时,将对该处的布尔表达式(程序断言)进行检测。如果取值为真
9、,则表示程序正确执行;否则,表示出错,输出错误信息和有关变量的值以检错。2023/2/8国家高性能计算中心19三、三、程序断言的重要性程序断言的重要性 在程序中插入适当的断言,可以使得我们在编制(调试)程序的过程中,自动验证程序的正确性,从而保证编制出来的程序是正确的。借助这种方法,可以帮助我们写出没有错误的程序,缩短编制程序和调试所用的时间,也使得写出的程序更容易被理解。2023/2/8国家高性能计算中心20例:计算用正整数y除非负整数x所得的商q和余数r 即:x=q*y+r基本程序段:r:=x;q:=0;while r y do begin r:=r-y;q:=q+1 end;2023/2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 方法 课件
限制150内