- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程;第6章:详细设计 ;6.1 结构程序设计 ; 理论上,最基本的控制结构只有两种:顺序、循环结构(选择结构可由其两者构造)。
学界认识到,不是简单去掉Goto语句的问题,而是要创立一种新的程序设计方法。
——结构化程序设计(IBM率先成功运用)。;结构程序设计:
一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。 ;使用结构程序设计技术的好处:
1)提高软件开发工程的成功率和生产率;
2)系统有清晰的层次结构,容易阅读理解;
3)单入口单出口的控制结构,容易诊断纠正;
4)模块化可以使得软件可以重用;
5)程序逻辑结构清晰,有利于程序正确性证明。;经典的结构程序设计:只允许使用顺序、IF_THEN_ELSE选择和DO_WHILE循环;; 流程图通常由三种结点组成:
1)函数结点
如果一个结点有一个入口线和一个出口线,则称为函数结点。 ;2)谓词结点
如果一个结点有一个入口线和两个出口线,而且它不改变程序的数据项的值,则称为谓词结点。 ;3)汇点
如果一个结点有两个或多个入口线和一个出口线,而且它不执行任何运算,则称为汇点 。;1)顺序结构:相当于“A、B” ;2)选择结构
相当于“If exp then A else B endif ” ;3)循环结构:相当于“While exp do A” ;1)多分支结构
相当于“Case I of I=1:C1; I=2:C2; I=3:C3; … ; I=n:Cn” ;2)UNTIL循环结构
相当于“Repeat A Until exp” ;6.1.1.2 正规程序
定义1:一个流程图程序如果满足下面两个条件,称为正规程序:
1)具有一个入口线和一个出口线;
2)对每一个结点,都有一条从入口线到出口线的通路通过该结点。 ; 由于正规程序有一个入口线和一个出口线,因而一个正规程序总可以抽象为一个函数结点。 ;定义2:如果一个正规程序的某个部分仍然是正规程序,那么称它为该正规程序的正规子程序。 ;先给出一个概念:封闭结构
定义3:流程图中,两个结点之间所有没有重复结点的通路组成的结构称为封闭结构。; 如图:封闭结构为
{ a - [ b1 - b2 - b3 ; c1 - c2 ; d1 - d2 - d3 ; e ] - f } ;1)不包括多于一个结点的正规子程序,即它是一种不可再分解的正规程序;(程序自身不可视为正规子程序)
2)如果存在封闭结构,封闭结构都是正规程序。 ; 基本程序形式有多种,前面提到的三种基本控制结构(顺序结构、选择结构、循环结构)和两个扩充控制结构(多分支结构、UNTIL循环结构)都是基本程序。 ;定义5:
用以构造程序的基本程序的集合称为基集合。
如:{顺序,if-then-else,while do}
{顺序,if-then-else,repeat-until}
都是基集合。 ;定义6:如果一个基本程序的函数结点用另一个基本函数程序替换,产生的新的正规程序称为复合程序。 ; 由于复合程序是由一些基本程序组成,因此,无论从总体上看或是从每个组成部分看,都满足“一个入口,一个出口”的原则,这样的程序就是通常说的好结构程序,或者结构化程序。 ;定义7:由基本程序的一个固定的基集合构造出的复合程序,称为结构化程序。;结构化定理:任一正规程序都可以函数等价于一个由基集合{顺序,If-else-then,While-do}产生的结构化程序。
实际上,只要能证明可以将任一正规程序转换成等价的结构化程序就可以证明这个结构化定理。 ;证明:(分三步进行结构化程序的转换)
步骤一:从程序入口处开始给程序的函数结点和谓词结点编号:1,2,3,…,n,同时,将每个函数和谓词结点的出口线用它后面的结点的号码进行编号,如果出口线后面没有结点,也就是说该结点的出口线与程序的出口线相连时,出口线编号为0。 ;步骤二:对原程序中每一个编号为i, 出口线编号为j的函数结点H,构造一个新的序列程序Gi,如图: ; 类似地,对于每个编号为i,出口线分别为j和k的谓词结点,构造一个新的选择程序Gi,如图: ;步骤三:利用已经得到的一些Gi程序(i=1,2,3,…,n),按下图的形式构造一个While-do循环。 ; 这种方法并不是唯一的把程序转变为结构化程序的方法,所得的程序也不一定是最好的。
它的目的是为了证明结构化定理。;例1:把图示的非结构化程序转换成结构化程序(用结构化
文档评论(0)