欢迎来到天天文库
浏览记录
ID:59193867
大小:451.50 KB
页数:42页
时间:2020-09-26
《程序设计方法学 第三章 结构化设计方法ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章结构化程序设计方法(续)第三章、结构化程序设计方法(续)结构化定理程序函数结构化定理递归结构程序一些新的控制结构结构化一、正规程序概述若一个流程图满足以下两个条件,称之为正规程序:(1)具有一个入口线和一个出口线(2)对每一个结点,都有一条从入口线到出口线的通路(流线)正规程序非正规程序正规程序与正规子程序由于正规程序具有一个入口线和一个出口线,因此,正规程序可以抽象为一个函数结点。若一个正规程序的某些部分仍然为正规程序,则称为正规子程序正规程序与正规子程序实例pqbasctd正规程序与正规子程序实例kphg基本程序对一个正规程序,如果不包含多于一个节点的正规子程序,称为基
2、本程序基本程序是正规程序的一种,要求其包含的正规子程序中不得多于一个结点,实际上基本程序就是指一种不可再分解的正规程序。bacbaqaqba基本程序实例基本程序实例phgpqhgr基本程序与基集合对程序结构的统计、分析表明:基本程序有7种形式,进一步的理论可以证明:任何一个结构化程序都可以用这7种基本程序组成实际构造一个程序时,可能只使用7个基本程序中的一部分,将用以构造程序的基本程序的集合称为基集合基集合的实例:{序列,if-then-else,while-do}或{序列,if-then-else,do-until}基集合F函数序列FGIf-thenFP基集合WHILE-DOP
3、FDO-UNTILPFIF-THEN-ELSEFGP基集合DO-WHILE-DOPFG结构化程序如果一个基本程序的函数结点用另一个基本程序替换,就产生了一个新的正规程序,这样的程序称为复合程序。复合程序的规模及复杂程度取决于所使用的基集合,例如:{序列,IF-THEN-ELSE}产生一个无循环的程序类。抽象地说,由基本程序的一个固定的基集合构造出的复合程序称为结构化程序。非结构化程序转换为结构化程序有关概念:函数结点:如果一个结点有一个入口线和一个出口线,则此结点为函数结点谓词结点:如果一个结点有一个入口线和二个出口线,则此结点为谓词结点汇点:如果一个结点有二个入口线和一个出口线
4、,而且它不执行任何运算,则此结点为汇点方法:①汇点交换法②转位法(分解法)③结合法12S1S2S3S1S2S312S1S2S3汇点交换法例题:S1QPS2TFFT12S1QPS2TFFT12S1QPS2TFFTTFS2S1PQTF12S1QPS2TFFTSSSPSSTFSPTF结合法S2S1S1﹒S2转位法及结合法例1:TFPS1S2S4S3QFTS4S2·S4S3·S4PS1QTFFTPS1S2S4S3QTFFTS2·S4S3·S4PS1QTFFT12S2·S4S3·S4PS1QTFFTTFS2·S4S3·S4PS1QTF转位法及结合法例2:PTFS3S1S2QS4S3TFPS
5、1S2QS4S3TFFTPTFS3S1S2QS4S3TFPTFS1·S3S2QS4S3TFPTFS1·S3S2QS4S3TFPTFS1·S3S2QS4S3TFPTFS1·S3S2QS4S3TF转位法及结合法例3:PTFS1RTFQS3S2TFPTFS1RTFQS3S2TFS2PTFS1RTFQS3S2TFS2PTFS1RTFQS3S2TFS2PTFS1QS2TFPTFS1QS2TFPTFS1QS2TFPTFS1QS2TFPTFS1QS2TFPTFS1QS2TFRTFS3S2RTFS3S2程序函数1)程序函数:已知一正规程序P,对于每一个初始的数据状态X,若程序是终止的,那么有确定
6、的最终数据状态Y。如果对于每一个给定的X,值Y是唯一的,那么所有的有序对的集合{(X,Y)}定了一个函数。我们称这个函数为程序P的程序函数,记为[P]。例如:程序P:t:=x;x:=y;y:=t;程序函数为:{((x,y,t),(y,x,x))}对于任意给定的X:(x,y,t),程序执行结果为Y:(y,x,x)程序函数表示形式:有序对、数据赋值以及条件规则等形式例如:[ifx7、x≤y—>z:=x∧x>y—>z:=y}//条件规则的形式(z:=min(x,8、y))//数据赋值的形式30基本程序所对应的程序函数…函数:[f]={(x,y)9、y=f(x)}序列:[f;g]={(x,y)10、y=g。f(x)}IF-THEN:[if-then]={(x,y)11、p(x)→y=f(x)12、¬p(x)→y=x}WHILE-DO:[while-do]={(x,y)13、k≥0((j,1≤j14、k>0((j,1≤j
7、x≤y—>z:=x∧x>y—>z:=y}//条件规则的形式(z:=min(x,
8、y))//数据赋值的形式30基本程序所对应的程序函数…函数:[f]={(x,y)
9、y=f(x)}序列:[f;g]={(x,y)
10、y=g。f(x)}IF-THEN:[if-then]={(x,y)
11、p(x)→y=f(x)
12、¬p(x)→y=x}WHILE-DO:[while-do]={(x,y)
13、k≥0((j,1≤j14、k>0((j,1≤j
14、k>0((j,1≤j
此文档下载收益归作者所有