資源描述:
《軟件流程圖復(fù)習(xí)進(jìn)程.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、軟件流程圖精品文檔程序流程圖 程序流程圖獨(dú)立于任何一種程序設(shè)計(jì)語言,比較直觀、清晰,易于學(xué)習(xí)掌握。但流程圖也存在一些嚴(yán)重的缺點(diǎn)。例如流程圖所使用的符號不夠規(guī)范,常常使用一些習(xí)慣性用法。特別是表示程序控制流程的箭頭可以不受任何約束,隨意轉(zhuǎn)移控制。這些現(xiàn)象顯然是與軟件工程化的要求相背離的。為了消除這些缺點(diǎn),應(yīng)對流程圖所使用的符號做出嚴(yán)格的定義,不允許人們隨心所欲地畫出各種不規(guī)范的流程圖。例如,為使用流程圖描述結(jié)構(gòu)化程序,必須限制流程圖只能使用圖3.25所給出的五種基本控制結(jié)構(gòu)?!?圖4.3流程圖的基本控制結(jié)構(gòu)任何復(fù)雜的程序流程圖都應(yīng)由這五種基本控
2、制結(jié)構(gòu)組合或嵌套而成。作為上述五種控制結(jié)構(gòu)相互組合和嵌套的實(shí)例,圖示給出一個程序的流程圖。圖中增加了一些虛線構(gòu)成的框,目的是便于理解控制結(jié)構(gòu)的嵌套關(guān)系。顯然,這個流程圖所描述的程序是結(jié)構(gòu)化的?!∈占诰W(wǎng)絡(luò),如有侵權(quán)請聯(lián)系管理員刪除精品文檔
圖4.4流程圖的基本控制結(jié)構(gòu)N-S圖
Nassi和Shneiderman提出了一種符合結(jié)構(gòu)化程序設(shè)計(jì)原則的圖形描述工具,叫做盒圖,也叫做N-S圖。為表示五種基本控制結(jié)構(gòu),在N-S圖中規(guī)定了五種圖形構(gòu)件。參看圖4.5。
為說明N-S圖的使用,仍用圖4.4給出的實(shí)例,將它用如圖4.6所示的N-S圖表示。
如前所述
3、,任何一個N-S圖,都是前面介紹的五種基本控制結(jié)構(gòu)相互組合與嵌套的結(jié)果。當(dāng)問題很復(fù)雜時,N-S圖可能很大?!?圖4.5N-S圖的五種基本控制結(jié)構(gòu)收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系管理員刪除精品文檔
圖4.6N-S圖的實(shí)例PAD
PAD是ProblemAnalysisDiagram的縮寫,它是日本日立公司提出,由程序流程圖演化來的,用結(jié)構(gòu)化程序設(shè)計(jì)思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具?,F(xiàn)在已為ISO認(rèn)可。
PAD也設(shè)置了五種基本控制結(jié)構(gòu)的圖式,并允許遞歸使用。
圖4.7PAD的基本控制結(jié)構(gòu)做為PAD應(yīng)用的實(shí)例,圖4.8給出了圖4.4程序的PAD表示。PAD所
4、描述程序的層次關(guān)系表現(xiàn)在縱線上。每條縱線表示了一個層次。把PAD圖從左到右展開。隨著程序?qū)哟蔚脑黾?,PAD逐漸向右展開。
PAD的執(zhí)行順序從最左主干線的上端的結(jié)點(diǎn)開始,自上而下依次執(zhí)行。每遇到判斷或循環(huán),就自左而右進(jìn)入下一層,從表示下一層的縱線上端開始執(zhí)行,直到該縱線下端,再返回上一層的縱線的轉(zhuǎn)入處。如此繼續(xù),直到執(zhí)行到主干線的下端為止。
圖4.8PAD實(shí)例收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系管理員刪除精品文檔判定表
當(dāng)算法中包含多重嵌套的條件選擇時,用程序流程圖、N-S圖或PAD都不易清楚地描述。然而,判定表卻能清晰地表達(dá)復(fù)雜的條件組合與應(yīng)做動作之間
5、的對應(yīng)關(guān)系。仍然使用圖4.4的例子。為了能適應(yīng)判定表?xiàng)l件取值只能是"T"和"F"的情形,對原圖稍微做了些改動,把多分支判斷改為兩分支判斷,但整個圖邏輯沒有改變。見圖4.9。
與圖3.31表示的流程圖對應(yīng)的判定表如圖3.32所示。在表的右上半部分中列出所有條件,"T"表示該條件取值為真,"F"表示該條件取值為假,空白表示這個條件無論取何值對動作的選擇不產(chǎn)生影響。在判定表右下半部分中列出所有的處理,畫"Y"表示要做這個動作,空白表示不做這個動作。判定表右半部的每一列實(shí)質(zhì)上是一條規(guī)則,規(guī)定了與特定條件取值組合相對應(yīng)的動作。
圖4.9不包含多分支結(jié)構(gòu)
6、的流程圖實(shí)例PDL(ProgramDesignLanguage)
PDL是一種用于描述功能模塊的算法設(shè)計(jì)和加工細(xì)節(jié)的語言。稱為設(shè)計(jì)程序用語言。它是一種偽碼。一般地,偽碼的語法規(guī)則分為"外語法"和"內(nèi)語法"。外語法應(yīng)當(dāng)符合一般程序設(shè)計(jì)語言常用語句的語法規(guī)則;而內(nèi)語法可以用英語中一些簡單的句子、短語和通用的數(shù)學(xué)符號,來描述程序應(yīng)執(zhí)行的功能。
使用PDL語言,可以做到逐步求精:從比較概括和抽象的PDL程序起,逐步寫出更詳細(xì)的更精確的描述。PDL就是這樣一種偽碼。它具有嚴(yán)格的關(guān)鍵字外語法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),同時它的表示實(shí)際操作和條件的內(nèi)語法又
7、是靈活自由的,可使用自然語言的詞匯。下面舉一個例子,來看PDL的使用。從上例可以看到,PDL語言具有正文格式,很像一個高級語言。人們可以很方便地使用計(jì)算機(jī)完成PDL的書寫和編輯工作?! ROCEDUREspellcheckIS查找錯拼的單詞
BEGIN
splitdocumentintosinglewords收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系管理員刪除精品文檔把整個文檔分離成單詞
loodupwordsindictionary在字典中查這些單詞
displaywordswhicharenotindictionary顯示字典中查不到的單詞
create
8、anewdictionary造一新字典
ENDspellcheckPDL作為一種用于描述程序邏輯設(shè)計(jì)的語言,具有以下特點(diǎn):
·有固定的關(guān)鍵字外語法,提