电竞比分网-中国电竞赛事及体育赛事平台

分享

流程圖符號(hào)及流程圖的例子

 jinzq 2007-08-30
介紹常見(jiàn)的流程圖符號(hào)及流程圖的例子。
    本章例1 - 1的算法的流程圖如圖1 - 2所示。本章例1 - 2的算法的流程圖如圖1 - 3所示。
在流程圖中,判斷框左邊的流程線表示判斷條件為真時(shí)的流程,右邊的流程線表示條件為假時(shí)的流程,有時(shí)就在其左、右流程線的上方分別標(biāo)注“真”、“假”或“T”、“F”或“Y”、“N”


另外還規(guī)定,流程線是從下往上或從右向左時(shí),必須帶箭頭,除此以外,都不畫箭頭,流程線的走向總是從上向下或從左向右。

2. 算法的結(jié)構(gòu)化描述
    早期的非結(jié)構(gòu)化語(yǔ)言中都有g(shù)o to語(yǔ)句,它允許程序從一個(gè)地方直接跳轉(zhuǎn)到另一個(gè)地方去。
執(zhí)行這樣做的好處是程序設(shè)計(jì)十分方便靈活,減少了人工復(fù)雜度,但其缺點(diǎn)也是十分突出的,一大堆跳轉(zhuǎn)語(yǔ)句使得程序的流程十分復(fù)雜紊亂,難以看懂也難以驗(yàn)證程序的正確性,如果有錯(cuò),排起錯(cuò)來(lái)更是十分困難。這種轉(zhuǎn)來(lái)轉(zhuǎn)去的流程圖所表達(dá)的混亂與復(fù)雜,正是軟件危機(jī)中程序人員處境的一個(gè)生動(dòng)寫照。而結(jié)構(gòu)化程序設(shè)計(jì),就是要把這團(tuán)亂麻理清。
經(jīng) 過(guò)研究,人們發(fā)現(xiàn),任何復(fù)雜的算法,都可以由順序結(jié)構(gòu)、選擇(分支)結(jié)構(gòu)和循環(huán)結(jié)構(gòu)這三種基本結(jié)構(gòu)組成,因此,我們構(gòu)造一個(gè)算法的時(shí)候,也僅以這三種基本 結(jié)構(gòu)作為“建筑單元”,遵守三種基本結(jié)構(gòu)的規(guī)范,基本結(jié)構(gòu)之間可以并列、可以相互包含,但不允許交叉,不允許從一個(gè)結(jié)構(gòu)直接轉(zhuǎn)到另一個(gè)結(jié)構(gòu)的內(nèi)部去。正因 為整個(gè)算法都是由三種基本結(jié)構(gòu)組成的,就像用模塊構(gòu)建的一樣,所以結(jié)構(gòu)清晰,易于正確性驗(yàn)證,易于糾錯(cuò),這種方法,就是結(jié)構(gòu)化方法。遵循這種方法的程序設(shè)計(jì),就是結(jié)構(gòu)化程序設(shè)計(jì)。
    相應(yīng)地,只要規(guī)定好三種基本結(jié)構(gòu)的流程圖的畫法,就可以畫出任何算法的流程圖。
(1) 順序結(jié)構(gòu)
順序結(jié)構(gòu)是簡(jiǎn)單的線性結(jié)構(gòu),各框按順序執(zhí)行。其流程圖的基本形態(tài)如圖1 - 4所示,語(yǔ)句
的執(zhí)行順序?yàn)椋篈→B→C。
(2) 選擇(分支)結(jié)構(gòu)
這種結(jié)構(gòu)是對(duì)某個(gè)給定條件進(jìn)行判斷,條件為真或假時(shí)分別執(zhí)行不同的框的內(nèi)容。其基本形狀有兩種,如圖1-5 a)、b)所示。圖1-5 a)的執(zhí)行序列為:當(dāng)條件為真時(shí)執(zhí)行A,否則執(zhí)行B;圖1 - 5 b)的執(zhí)行序列為:當(dāng)條件為真時(shí)執(zhí)行A,否則什么也不做。

(3) 循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)有兩種基本形態(tài): while型循環(huán)和do - while型循環(huán)。
a. while 型循環(huán)
如圖1 - 6所示。
其執(zhí)行序列為:當(dāng)條件為真時(shí),反復(fù)執(zhí)行A,一旦條件為假,跳出循環(huán),執(zhí)行循環(huán)緊后的語(yǔ)句。
b. do-while型循環(huán)
如圖1 - 7所示。

執(zhí)行序列為:首先執(zhí)行A,再判斷條件,條件為真時(shí),一直循環(huán)執(zhí)行A,一旦條件為假,結(jié)束循環(huán),執(zhí)行循環(huán)緊后的下一條語(yǔ)句。
    在圖1 - 6、圖1 - 7中,A被稱為循環(huán)體,條件被稱為循環(huán)控制條件。要注意的是:
1) 在循環(huán)體中,必然對(duì)條件要判斷的值進(jìn)行修改,使得經(jīng)過(guò)有限次循環(huán)后,循環(huán)一定能
結(jié)束,如圖1 - 3中的i = i - 1。
2) 當(dāng)型循環(huán)中循環(huán)體可能一次都不執(zhí)行,而直到型循環(huán)則至少執(zhí)行一次循環(huán)體。
3) 直到型循環(huán)可以很方便地轉(zhuǎn)化為當(dāng)型循環(huán),而當(dāng)型循環(huán)不一定能轉(zhuǎn)化為直到型循環(huán)。
例如,圖1 - 7可以轉(zhuǎn)化為圖1 - 8。

七,用N-S圖描述算法
N - S圖是另一種算法表示法,是由美國(guó)人I . Nassi和B.Shneiderman共同提出的,其根據(jù)是:
既然任何算法都是由前面介紹的三種結(jié)構(gòu)組成,所以各基本結(jié)構(gòu)之間的流程線就是多余的,因此,N - S圖也是算法的一種結(jié)構(gòu)化描述方法。
N - S圖中,一個(gè)算法就是一個(gè)大矩形框,框內(nèi)又包含若干基本的框,三種基本結(jié)構(gòu)的N - S圖描述如下所示:
1. 順序結(jié)構(gòu)
如圖1 - 9所示,執(zhí)行順序先A后B。
2. 選擇結(jié)構(gòu)
對(duì)應(yīng)于圖1 - 5的N - S圖為圖1 - 1 0。圖1-10 a)條件為真時(shí)執(zhí)行A,條件為假時(shí)執(zhí)行B。圖1 - 1 0
條件為真時(shí)執(zhí)行A,為假時(shí)什么都不做。

3. 循環(huán)結(jié)構(gòu)
1) while型循環(huán)的N - S圖如圖1 - 11所示,條件為真時(shí)一直循環(huán)執(zhí)行循環(huán)體A,直到條件為假時(shí)才跳出循環(huán)。
2) do-while型循環(huán)的N - S圖如圖1 - 1 2,一直循環(huán)執(zhí)行循環(huán)體A,直到條件為假時(shí)才跳出循環(huán)。
本章例1 - 1的N - S圖如圖1 - 1 3,例1 - 2的N - S圖如圖1 - 1 4。應(yīng)該說(shuō),N - S圖比流程圖更直觀易懂,而且相對(duì)簡(jiǎn)練一些。

八,用PAD圖描述算法    
    PAD (Problem Analysis Diagram),是近年來(lái)在軟件開(kāi)發(fā)中被廣泛使用的一種算法的圖形表示法,與前述的流程圖、N - S圖相比,流 程圖、N - S圖都是自上而下的順序描述,而PAD圖除了自上而下以外,還有自左向右的展開(kāi),所以,如果說(shuō)流程圖、N - S圖是一維的算法描述的話, 則PAD圖就是二維的,它能展現(xiàn)算法的層次結(jié)構(gòu),更直觀易懂。
下面是PAD圖的幾種基本形態(tài):
1. 順序結(jié)構(gòu):
如圖1 - 1 5所示。
2. 選擇結(jié)構(gòu)
(1) 單分支選擇,條件為真執(zhí)行A,如圖1-16 a)。
(2) 兩分支選擇,如圖1-16 b),條件為真執(zhí)行A,為假執(zhí)行B。
(3) 多分支選擇,如圖1-16 c),當(dāng)I = I1時(shí)執(zhí)行A,I= I2時(shí)執(zhí)行B,I = I3時(shí)執(zhí)行C,I = I4時(shí)執(zhí)行D。

3. 循環(huán)結(jié)構(gòu)
如圖1 - 1 7所示。圖1-17 a)為while型循環(huán),圖1-17 b)為do - while型循環(huán)。

本章例1 . 1的PA D圖如圖1 - 1 8,例1 - 2的PA D圖如圖1 - 1 9


轉(zhuǎn)帖網(wǎng)址:http://yangxiufeng./

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多