




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 第三章習(xí)題 一、選擇題1. 軟件需求分析階段的工作,可以分為以下4個(gè)方面:對(duì)問(wèn)題的識(shí)別、分析與綜合、編寫(xiě)需求分析文檔以及( )。供選擇的答案:A. 總結(jié) B. 階段性報(bào)告 C. 需求分析評(píng)審 D. 以上答案都不正確2. 各種需求方法都有它們共同適用的( )。供選擇的答案:
2、A說(shuō)明方法 B描述方式 C. 準(zhǔn)則 D基本原則3. 軟件需求分析的任務(wù)不應(yīng)包括( A )。進(jìn)行需求分析可使用多種工具,但( B )是不適用的。在需求分析中,分析員要從用戶那里解決的最重要的問(wèn)題是( C )。需求規(guī)格說(shuō)明書(shū)的內(nèi)容不應(yīng)當(dāng)包括( D )。該文
3、檔在軟件開(kāi)發(fā)中具有重要的作用,但其作用不應(yīng)當(dāng)包括( E )。供選擇的答案:A. 問(wèn)題分析 信息域分析 結(jié)構(gòu)化程序設(shè)計(jì) 確定邏輯模型B. 數(shù)據(jù)流圖 判定表 PAD圖 數(shù)據(jù)詞典C. 要讓軟件做什
4、么 要給該軟件提供哪些信息 要求軟件工作效率如何 要讓軟件具有什么樣的結(jié)構(gòu)D. 對(duì)重要功能的描述 對(duì)算法的詳細(xì)過(guò)程性描述 軟件確認(rèn)準(zhǔn)則 軟件的性能E. 軟件設(shè)計(jì)的依據(jù) 用戶和開(kāi)發(fā)人員對(duì)軟件要“做什么”的共同理解 軟件驗(yàn)收的依據(jù)
5、 軟件可行性分析的依據(jù)4. 原型化方法是用戶和軟件開(kāi)發(fā)人員之間進(jìn)行的一種交互過(guò)程,適用于( A )系統(tǒng)。它從用戶界面的開(kāi)發(fā)入手,首先形成( B ),用戶( C ),并就( D )提出意見(jiàn),它是一種( E )型的設(shè)計(jì)過(guò)程。供選擇的答案:A. 需求不確定性高的 需求確定的 管理信息 決策支持B. 用戶界面使用手冊(cè)
6、 用戶界面需求分析說(shuō)明書(shū) 系統(tǒng)界面原型 完善的用戶界面C. 改進(jìn)用戶界面的設(shè)計(jì) 閱讀文檔資料 模擬用戶界面的運(yùn)行 運(yùn)行用戶界面原型D. 同意什么和不同意什么 使用和不使用哪一種編程語(yǔ)言 程序的結(jié)構(gòu) 執(zhí)行速度是否滿足
7、要求E. 自外向內(nèi) 自頂向下 自內(nèi)向外 自底向上二、簡(jiǎn)答題1. 用逐步求精方法解決下述的更新順序主文件的問(wèn)題。美國(guó)某雜志社需要一個(gè)軟件,以更新存有該雜志訂戶姓名、地址等數(shù)據(jù)的順序主文件。共有插入、修改和刪除等3種類型的事務(wù),分別對(duì)應(yīng)于事務(wù)代碼1、2和3。也就是說(shuō),事務(wù)類型如下:類型1:INSERT(插入一個(gè)新訂戶到主文件中)類型2:MODIFY(修改一個(gè)已有的訂戶記錄)類型3:DELETE(刪
8、除一個(gè)已有的訂戶記錄)事務(wù)是按訂戶名字的字母順序排序的。如果對(duì)一個(gè)訂戶既有修改事務(wù)又有刪除事務(wù),則已對(duì)那個(gè)訂戶的事務(wù)排好次序了,以便使修改發(fā)生在刪除之前。2. 分析圖3.1所示的層次圖,確定每個(gè)模塊的內(nèi)聚類型。圖3.1 計(jì)算多地點(diǎn)日平均溫度的程序3. 分析圖3.2,確定模塊之間的耦合類型。圖3.2 一個(gè)程序的模塊互連圖在圖3.2中已經(jīng)給模塊之間的接口編了號(hào)碼,表3.1描述了模塊間的接口。表3.1 模塊接口描述 4. 用面向數(shù)據(jù)流方法設(shè)計(jì)本書(shū)第2章第11題所述的工資支付系統(tǒng)的軟件結(jié)構(gòu)。5. 用3種方法計(jì)算圖3.3所示流圖的環(huán)形復(fù)雜度。圖3.3 一個(gè)
9、程序的流圖6. 下面列出的代碼用重復(fù)執(zhí)行的加法來(lái)計(jì)算兩個(gè)正整數(shù)X和Y的乘積,請(qǐng)用Halstead方法預(yù)測(cè)程序的長(zhǎng)度,并把預(yù)測(cè)出的長(zhǎng)度與實(shí)際長(zhǎng)度相比較。Z=0;While X>0Z=Z+Y;X=X-1;End_while;Print(Z);7. 圖3.4是用程序流程圖描述的程序算法,請(qǐng)把它改畫(huà)為等價(jià)的盒圖。圖3.4 程序流程圖8. 某交易所規(guī)定給經(jīng)紀(jì)人的手續(xù)費(fèi)計(jì)算方法如下:總手續(xù)費(fèi)等于基本手續(xù)費(fèi)加上與交易中的每股價(jià)格和股數(shù)有關(guān)的附加手續(xù)費(fèi)。如果交易總金額少于1000元,則基本手續(xù)費(fèi)為交易金額的8.4%;如果交易總金額在1000元到10000元之間,則基本手續(xù)費(fèi)為交易金額的5%,
10、再加34元;如果交易總金額超過(guò)10000元,則基本手續(xù)費(fèi)為交易金額的4%加上134元。當(dāng)每股售價(jià)低于14元時(shí),附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的5%,除非買(mǎi)進(jìn)、賣(mài)出的股數(shù)不是100的倍數(shù),在這種情況下附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的9%。當(dāng)每股售價(jià)在14元到25元之間時(shí),附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的2%,除非交易的股數(shù)不是100的倍數(shù),在這種情況下附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的6%。當(dāng)每股售價(jià)超過(guò)25元時(shí),如果交易的股數(shù)零散(即,不是100的倍數(shù)),則附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的4%,否則附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的1%。要求:(1)用判定表表示手續(xù)費(fèi)的計(jì)算方法;(2)用判定樹(shù)表示手續(xù)費(fèi)的計(jì)算方法;9. 畫(huà)出下列偽碼程序的程序流
11、程圖和盒圖。STARTIF P THENWHILE q DOFEND DOELSEBLOCKgnEND BLOCKEND IFSTOP圖3.5 一個(gè)非結(jié)構(gòu)化程序10. 圖3.5給出的程序流程圖代表一個(gè)非結(jié)構(gòu)化的程序,請(qǐng)問(wèn):(1)為什么說(shuō)它是非結(jié)構(gòu)化的?(2)設(shè)計(jì)一個(gè)與它等價(jià)的結(jié)構(gòu)化程序。(3)在(2)題的設(shè)計(jì)中你使用附加的標(biāo)志變量flag了嗎?若沒(méi)用,請(qǐng)?jiān)僭O(shè)計(jì)一個(gè)使用flag的程序;若用了,請(qǐng)?jiān)僭O(shè)計(jì)一個(gè)不用flag的程序。11. 研究下面給出的偽碼程序,要求:(1)畫(huà)出它的程序流程圖;(2)它是結(jié)構(gòu)化的還是非結(jié)構(gòu)化的?說(shuō)明你的理由;(3)若是非結(jié)構(gòu)化的,則(a)把它改造成僅用三種控
12、制結(jié)構(gòu)的結(jié)構(gòu)化程序;(b)寫(xiě)出這個(gè)結(jié)構(gòu)化設(shè)計(jì)的偽碼;(c)用盒圖表示這個(gè)結(jié)構(gòu)化程序。(4)找出并改正程序邏輯中的錯(cuò)誤。COMMENT:PROGRAM SEARCHES FOR FIRST N REFERENCESTO A TOPIC IN AN INFORMATION RETRIEVALSYSTEM WITH T TOTAL ENTRIESINTPUT NI=OMATCH=0DO WHILE ITI=I+1IF WORD=KEYWORDTHEN MATCH=MATCH+1STORE IN BUFFERENDIF MATCH=NTHEN GOTO OUTPUTENDENDIF N=0THEN P
13、RINT “NO MATCH”O(jiān)UTPUT:ELSE CALL SUBROUTINE TO PRINT BUFFERINFORMATIONEND12. 研究圖3.6給出的程序流程圖,要求:(1)寫(xiě)出它的偽碼表示;(2)設(shè)計(jì)一個(gè)等價(jià)的結(jié)構(gòu)化程序;(3)用另一種方法重做第(2)題。圖3.6 一個(gè)非結(jié)構(gòu)化設(shè)計(jì)13.從偽碼轉(zhuǎn)變?yōu)槌绦蛄鞒虉D或從程序流程圖轉(zhuǎn)變?yōu)閭未a是否是唯一的?請(qǐng)說(shuō)明理由。14.用Ashcroft_Manna技術(shù)可以將非結(jié)構(gòu)化的程序轉(zhuǎn)換為結(jié)構(gòu)化程序,圖3.7是一個(gè)轉(zhuǎn)換的例子。(1)你能否從這個(gè)例子總結(jié)出Ashcroft_Manna技術(shù)的一些基本方法?(2)進(jìn)一步簡(jiǎn)化圖3.7(
14、b)給出的結(jié)構(gòu)化設(shè)計(jì)。 (a)非結(jié)構(gòu)化設(shè)計(jì) (b)轉(zhuǎn)化成的等價(jià)的結(jié)構(gòu)化設(shè)計(jì)圖3.7 用Ashcroft_Manna技術(shù)的例子15. 用Jackson圖描繪下述的一列火車的構(gòu)成:一列火車最多有兩個(gè)火車頭。只有一個(gè)火車頭時(shí)則位于列車最前面,若還有第二個(gè)火車頭時(shí),則第二個(gè)火車頭位于列車最后面?;疖囶^既可能是內(nèi)燃機(jī)車也可能是電氣機(jī)車。車廂分為硬座車廂、硬臥車廂和軟臥車廂等3種。硬座車廂在車內(nèi)所有車廂的
15、前面部分,軟臥車廂在所有車廂的后面部分。此外,在硬臥車廂和軟臥車廂之間還有一節(jié)餐車。第三章習(xí)題解答 一、選擇題1. 答案: C.分析:作為需求分析階段工作的復(fù)查手段,在需求分析的最后一步,應(yīng)該對(duì)功能的正確性、完整性和清晰性,以及其它需求給予評(píng)價(jià)。一般,評(píng)審的結(jié)果都包括了一些修改意見(jiàn),待修改完成后再經(jīng)評(píng)審?fù)ㄟ^(guò),才可進(jìn)入設(shè)計(jì)階段。2. 答案: D.分析:雖然各種分析方法都有獨(dú)特的描述方法,但所有的分析方法還是有它們共同適用的基本原則。這些基本原則包括:§ 需要能夠表達(dá)和理解問(wèn)題的信息域和功能域;§ 要能以層次化的方式對(duì)問(wèn)題進(jìn)行分解和不斷細(xì)化;&
16、#167; 要分別給出系統(tǒng)的邏輯視圖和物理視圖。3. 答案:A. , B. , C. , D. , E. 分析:軟件需求分析的任務(wù)是通過(guò)與用戶的合作,了解用戶對(duì)待開(kāi)發(fā)系統(tǒng)的要求;根據(jù)對(duì)用戶要求的系統(tǒng)所在的信息域的調(diào)查、分析,確定系統(tǒng)的邏輯模型;并對(duì)求解的問(wèn)題做適當(dāng)?shù)姆纸?,使之適合于計(jì)算機(jī)求解。需求分析的結(jié)果是軟件需求規(guī)格說(shuō)明書(shū)。結(jié)構(gòu)化程序設(shè)計(jì)是在詳細(xì)設(shè)計(jì)和編碼階段所采用的技術(shù),而不是需求分析階段要采用的技術(shù)。在需求分析階段,分析人員可以用數(shù)據(jù)流圖描述系統(tǒng)的數(shù)據(jù)流的變換和流向,用數(shù)據(jù)詞典定義在數(shù)據(jù)流圖中出現(xiàn)的數(shù)據(jù)
17、流、數(shù)據(jù)文件、加工或處理,用判定表表示復(fù)雜條件和動(dòng)作組合的情況。但PAD圖是在詳細(xì)設(shè)計(jì)階段使用的描述加工邏輯的工具,不適用于需求分析。此外,軟件需求分析階段只確定軟件系統(tǒng)要“做什么”,完成對(duì)重要功能、性能、確認(rèn)準(zhǔn)則的描述,至于“怎么做”由后續(xù)的設(shè)計(jì)階段完成,對(duì)算法的詳細(xì)過(guò)程性描述也是在設(shè)計(jì)階段給出。軟件可行性分析應(yīng)在需求分析之前,所以需求分析規(guī)格說(shuō)明不能成為可行性分析的依據(jù)。4. 答案:A. B. C. D.
18、 E. 分析:通常,原型是指模擬某種產(chǎn)品的原始模型。在軟件開(kāi)發(fā)中,原型是軟件的一個(gè)早期可運(yùn)行的版本,它反映最終系統(tǒng)的部分重要特性。使用原型的原型化方法特別適用于需求不確定性較高的軟件系統(tǒng)的開(kāi)發(fā)。它的基本思想是根據(jù)用戶給出的基本需求,通過(guò)快速實(shí)現(xiàn)構(gòu)造出一個(gè)小型的可執(zhí)行的模型,滿足用戶的基本要求,這就是系統(tǒng)界面原型。讓用戶計(jì)算機(jī)上實(shí)際運(yùn)行這個(gè)用戶界面原型,在試用的過(guò)程中得到親身感受和受到啟發(fā),做出反應(yīng)和評(píng)價(jià),提出同意什么和不同意什么。然后開(kāi)發(fā)者根據(jù)用戶的意見(jiàn)對(duì)原型加以改進(jìn)。隨著不斷試驗(yàn)、糾錯(cuò)、使用、評(píng)價(jià)和修改,獲得新的原型版本,如此周而復(fù)始,逐步減少分析和通信中的誤解,彌補(bǔ)不足之處,進(jìn)一步確定各種
19、需求細(xì)節(jié),適應(yīng)需求的變更,從而提高了最終產(chǎn)品的質(zhì)量。它是一種自外向內(nèi)型的設(shè)計(jì)過(guò)程。二、簡(jiǎn)答題1. 答:解決任何問(wèn)題之前都必須首先理解問(wèn)題,對(duì)問(wèn)題理解得越深入,解決起來(lái)也就越容易。為了獲得對(duì)順序主文件更新問(wèn)題的直觀、具體的認(rèn)識(shí),首先設(shè)想一個(gè)典型的主文件(稱為舊的主文件)、一個(gè)事務(wù)文件和更新后得到的新的主文件及異常情況報(bào)告,如圖3.8所示。圖3.8 典型地順序主文件更新問(wèn)題為了簡(jiǎn)單起見(jiàn),在圖3.8中忽略了主文件和事務(wù)文件中所包含的訂戶地址信息。從圖3.8可以看出,更新順序主文件系統(tǒng)有下述2個(gè)輸入文件:1)舊的主文件(由包含訂戶姓名、地址信息的記錄組成);2)事務(wù)文件。系統(tǒng)還有3個(gè)輸出文
20、件:1)新的主文件;2)異常報(bào)告;3)摘要和工作結(jié)束信息。圖3.9描繪了設(shè)想的順序主文件更新系統(tǒng)的概貌。圖3.9 順序主文件更新系統(tǒng)概貌然后用逐步求精方法設(shè)計(jì)圖3.9中關(guān)鍵的黑盒子“更新主文件”的實(shí)現(xiàn)算法。逐步求精方法實(shí)質(zhì)上是“自頂向下”的設(shè)計(jì)方法,它通過(guò)不斷分層細(xì)化解決問(wèn)題的算法來(lái)設(shè)計(jì)軟件。它不像“各個(gè)擊破”技術(shù)那樣把整個(gè)問(wèn)題分解為若干個(gè)重要程序相同的子問(wèn)題。在用逐步求精方法設(shè)計(jì)軟件的過(guò)程中,軟件的某個(gè)特定方面的重要性在一次又一次的求精中是變化的。最初,某個(gè)問(wèn)題可能無(wú)關(guān)緊要,但后來(lái)同樣的問(wèn)題會(huì)變得相當(dāng)重要。換句話說(shuō),可以把逐步求精方法看作是建立某個(gè)階段內(nèi)需要解決的各種問(wèn)題的優(yōu)先級(jí)
21、的一種技術(shù)。它能確保每個(gè)問(wèn)題都在恰當(dāng)?shù)臅r(shí)間得到解決,而且在任何時(shí)候都不需要同時(shí)解決7個(gè)以上問(wèn)題。使用逐步求精方法設(shè)計(jì)軟件的難點(diǎn)在于,在當(dāng)前的求精步驟中確定哪些是必須處理的重要事項(xiàng),哪些事項(xiàng)應(yīng)該推遲到后面的求精步驟中去處理。作為對(duì)“更新主文件”的第一步求精,我們把它分解為3個(gè)處理框,分別稱為“輸入”、“處理”和“輸出”,如圖3.10所示。圖3.10 第一步求精在這個(gè)設(shè)計(jì)步驟中假設(shè),當(dāng)“處理”需要一個(gè)記錄時(shí),我們能夠在那個(gè)時(shí)候輸入正確的記錄。同樣,我們也能夠在當(dāng)時(shí)把正確的記錄寫(xiě)入到正確的文件中。也就是說(shuō),在把逐步求精方法運(yùn)用到解決更新主文件這個(gè)問(wèn)題時(shí),我們是把輸入和輸出這兩方面的問(wèn)題暫
22、時(shí)分離出來(lái),集中精力設(shè)計(jì)“處理”的算法。為了搞清楚怎樣按照事務(wù)文件的指示,更新舊的主文件產(chǎn)生新的主文件,也就是說(shuō),為了設(shè)計(jì)出處理的算法,讓我們?cè)僖淮窝芯繄D3.8所示的例子。把第一個(gè)事務(wù)記錄(Brown)的關(guān)鍵字與第一個(gè)舊的主文件記錄(Abel)的關(guān)鍵字相比較。因?yàn)锽rown按字母順序排在Abel的后面,把Abel記錄不加更改地寫(xiě)入新的主文件后,讀取下一個(gè)舊的主文件記錄(Brown)?,F(xiàn)在,事務(wù)記錄的關(guān)鍵字與舊的主文件記錄的關(guān)鍵字相同,又因?yàn)槭聞?wù)的類型是3(刪除),所以必須刪除Brown記錄,這可通過(guò)不把Brown記錄復(fù)制到新的主文件中來(lái)實(shí)現(xiàn)。接下來(lái)讀取下一個(gè)事務(wù)記錄(Harris)和下一個(gè)舊的
23、主文件記錄(James),分別在各自的緩沖區(qū)里覆蓋Brown記錄,因?yàn)镠arris和James之前,而且事務(wù)類型為1(插入),所以把Harris記錄寫(xiě)到新的主文件中以實(shí)現(xiàn)插入。讀取下一個(gè)事務(wù)記錄(Jones),因?yàn)镴ones和James之后,把James記錄復(fù)制到新的主文件中,然后讀取下一個(gè)舊的主文件記錄,在舊文件記錄緩沖區(qū)中得到Jones記錄。現(xiàn)在事務(wù)記錄關(guān)鍵字與舊的主文件記錄關(guān)鍵字相同,正如從事務(wù)文件中看到的那樣,先修改舊的主文件記錄(Jones記錄),然后把它刪除,以便讀取下一個(gè)事務(wù)記錄(Smith)和下一個(gè)舊的主文件記錄(也是Smith)。遺憾的是,事務(wù)類型是1(插入),但是在舊的主文
24、件中已經(jīng)有Smith記錄了,因此,在輸入數(shù)據(jù)中有錯(cuò)誤,將Smith記錄寫(xiě)入異常報(bào)告中。更確切地說(shuō),將Smith事務(wù)記錄寫(xiě)入異常報(bào)告,而把Smith舊的主文件記錄寫(xiě)入新的主文件。總結(jié)上述例子中揭示出的處理過(guò)程,得到表3.2所示的處理規(guī)則。表3.2 處理規(guī)則 根據(jù)表3.2所示的處理規(guī)則,可以對(duì)圖3.10中的“處理”框求精,得圖3.11所示的第二步求精結(jié)果。為減少連線(特別是為了減少交叉線),在這張流程圖中用標(biāo)有相同字母(例如,字母A)的圓代表應(yīng)該連在一起的點(diǎn)。圖中連到“輸入”和“輸出”方框的虛線表示把如何處理輸入和輸出的設(shè)計(jì)決定推遲到較晚的求精步驟中再做出,該圖其余部分是實(shí)現(xiàn)“處理”的
25、流程圖,或者說(shuō)是對(duì)處理事務(wù)的算法的初步求精結(jié)果。正如剛才講過(guò)的,已把對(duì)輸入和輸出問(wèn)題的考慮推遲了,此外,還沒(méi)有規(guī)定文件結(jié)束的條件,也沒(méi)有規(guī)定遇到出錯(cuò)條件時(shí)應(yīng)該怎么處理。逐步求精方法的優(yōu)點(diǎn)就在于可以把這類問(wèn)題推遲到后面的求精步驟中去解決。圖3.11 第二步求精下一步設(shè)計(jì)步驟是求精圖3.11中的“輸入”和“輸出”兩個(gè)處理框,得到圖3.12,在這個(gè)設(shè)計(jì)步驟中仍然沒(méi)有處理到文件結(jié)束的條件,也沒(méi)有寫(xiě)入工作結(jié)束的信息,這些設(shè)計(jì)工作可以在后面的求精步驟中完成。使用逐步求精方法設(shè)計(jì)軟件時(shí),每完成一個(gè)求精步驟都必須對(duì)這個(gè)求精步驟得出的設(shè)計(jì)結(jié)果仔細(xì)審查,沒(méi)有發(fā)現(xiàn)錯(cuò)誤才能進(jìn)行下一個(gè)求精步驟的設(shè)計(jì)工作,如
26、果發(fā)現(xiàn)了錯(cuò)誤則應(yīng)該及時(shí)糾正。審查圖3.12可以發(fā)現(xiàn),該設(shè)計(jì)包含一個(gè)嚴(yán)重錯(cuò)誤。考慮圖3.8中給出的數(shù)據(jù)可以發(fā)現(xiàn)這個(gè)錯(cuò)誤。假設(shè)當(dāng)前的事務(wù)是2Jones,也就是修改Jones記錄,也就是修改Jones記錄,并且當(dāng)前的舊的主文件記錄是Jones。在圖3.12的設(shè)計(jì)中,因?yàn)槭聞?wù)記錄的關(guān)鍵字與舊的主文件記錄的關(guān)鍵字相同,沿最左邊的路徑到底“測(cè)試事務(wù)類型”判定框。因?yàn)楫?dāng)前的事務(wù)類型是“修改”,所以修改舊的主文件記錄并把修改后的記錄寫(xiě)入新的主文件。然后讀取下一個(gè)事務(wù)記錄,該記錄是3Jones,也就是刪除Jones記錄,但是,已經(jīng)把修改后的Jones記錄寫(xiě)入新的主文件記錄了。在用逐步求精方法設(shè)計(jì)軟件的過(guò)程中對(duì)每
27、個(gè)求精步驟得出的設(shè)計(jì)結(jié)果都進(jìn)行嚴(yán)格審查的好處是,一旦發(fā)現(xiàn)錯(cuò)誤,不必從頭開(kāi)始重做一遍,只需回到前一步的設(shè)計(jì)結(jié)果,從那里開(kāi)始重新設(shè)計(jì)即可。在本設(shè)計(jì)中,第二步求精的結(jié)果(見(jiàn)圖3.11)是正確的,可以把它作為第三步求精的基礎(chǔ)。圖3.12 第三步求精(有嚴(yán)重錯(cuò)誤)正如剛才講過(guò)的,圖3.12所示設(shè)計(jì)的錯(cuò)誤在于,當(dāng)事務(wù)類型為2(修改)時(shí)沒(méi)有考慮下一個(gè)事務(wù)的影響,就把修改后的主文件記錄寫(xiě)入新的主文件中。為了改正上述錯(cuò)誤,我們采用“前瞻一步”的策略,也就是說(shuō),只有在分析了一個(gè)事務(wù)類型的下一個(gè)事務(wù)記錄之后,才能處理該事務(wù)記錄。更具體地說(shuō),當(dāng)一個(gè)事務(wù)記錄的類型為“修改”時(shí),修改緩沖區(qū)中的舊主文件記錄,然
28、后讀取下一個(gè)事務(wù)記錄,如果剛讀出的事務(wù)記錄的關(guān)鍵字與緩沖區(qū)中的舊文件記錄的關(guān)鍵字不相同,則把緩沖區(qū)中已經(jīng)修改過(guò)的舊主文件記錄寫(xiě)入新的主文件;如果新讀出的事務(wù)記錄的關(guān)鍵字與主文件記錄關(guān)鍵字相同,則依據(jù)新的事務(wù)記錄的類型來(lái)處理緩沖區(qū)中的舊主文件記錄。由于事務(wù)文件是預(yù)先排好序的,當(dāng)新讀出的事務(wù)記錄與主文件記錄有相同的關(guān)鍵字時(shí),也就是新讀出的事務(wù)記錄與前一個(gè)事務(wù)記錄是針對(duì)同一個(gè)訂戶的事務(wù)的,新讀出的事務(wù)記錄的類型只可能是“修改”或“刪除”(已知前一個(gè)事務(wù)記錄的類型是“修改”)。采用“前瞻一步”的設(shè)計(jì)策略,得出圖3.13所示的第三步求精結(jié)果。圖3.13 改正錯(cuò)誤后的第三步求精為簡(jiǎn)單起見(jiàn),當(dāng)針
29、對(duì)同一個(gè)訂戶有多個(gè)事務(wù)時(shí),僅考慮了在修改事務(wù)之后又有修改事務(wù)或刪除事務(wù)的情況。實(shí)際上,如果對(duì)事務(wù)文件先進(jìn)行預(yù)處理,使得針對(duì)每位訂戶最多只有一個(gè)事務(wù),則更新順序主文件的算法可大大簡(jiǎn)化。下面列出對(duì)事務(wù)文件可能做的一些預(yù)處理:如果針對(duì)同一個(gè)訂戶有多個(gè)修改事務(wù),則僅保留最后一個(gè)修改事務(wù)(本問(wèn)題中的主文件記錄僅有訂戶姓名和地址兩項(xiàng)信息,多次修改地址則以最后一次修改為準(zhǔn));若插入一位新訂戶記錄后,又有零或多個(gè)修改事務(wù),最后是一個(gè)刪除事務(wù),則略去這一系列事務(wù);若對(duì)一個(gè)訂戶記錄既有修改事務(wù)又有刪除事務(wù),則略去修改事務(wù),僅保留刪除事務(wù);若針對(duì)一位訂戶既有插入事務(wù)又有修改事務(wù),則用修改事務(wù)的內(nèi)容(地址信息)更正插
30、入事務(wù)的內(nèi)容(地址信息),然后刪去這個(gè)修改事務(wù)。在第4次求精的過(guò)程中,應(yīng)該考慮迄今為止被忽略的諸如打開(kāi)和關(guān)閉文件這樣的細(xì)節(jié)問(wèn)題。采用逐步求精方法設(shè)計(jì)軟件時(shí),這樣的細(xì)節(jié)問(wèn)題是在基本算法被完全設(shè)計(jì)出來(lái)之后,最后處理的。顯然,不打開(kāi)和關(guān)閉文件,程序是不可能正常運(yùn)行的,也就是說(shuō),這些問(wèn)題是必須處理的,但是,重要的是,處理這類細(xì)節(jié)問(wèn)題應(yīng)該在設(shè)計(jì)的最后階段進(jìn)行。在設(shè)計(jì)的早期階段,設(shè)計(jì)者集中精力關(guān)注的7個(gè)左右問(wèn)題是不應(yīng)該包括打開(kāi)和關(guān)閉文件這樣的細(xì)節(jié)問(wèn)題的。打開(kāi)和關(guān)閉文件與特定軟件的設(shè)計(jì)無(wú)關(guān),它們只是作為任何設(shè)計(jì)的一部分的實(shí)現(xiàn)細(xì)節(jié)。然而,在后面的求精步驟中,打開(kāi)和關(guān)閉文件變得重要起來(lái),必須加以處理。從前述設(shè)計(jì)
31、過(guò)程可知,可以把逐步求精方法看作是建立在某個(gè)階段內(nèi)需要解決的各種問(wèn)題的優(yōu)先級(jí)的一種技術(shù)。逐步求精方法能夠確保每個(gè)問(wèn)題都得到解決,并且是在合適的時(shí)間解決,在任何時(shí)刻都不需要同時(shí)考慮7個(gè)以上的問(wèn)題。2.答:從圖3.1所示的層次圖可以看出,這個(gè)程序的功能是計(jì)算若干個(gè)指定地點(diǎn)的每日平均溫度。變量sum保存某地一天之內(nèi)在指定的時(shí)間取樣點(diǎn)的溫度之和。程序運(yùn)行時(shí)首先初始化變量sum并打開(kāi)文件,然后讀取地點(diǎn)、時(shí)間和溫度等原始數(shù)據(jù),創(chuàng)建用于保存這些數(shù)據(jù)的溫度記錄,接下來(lái)計(jì)算特定地點(diǎn)的日平均溫度,存儲(chǔ)溫度記錄。重復(fù)調(diào)用“讀取地點(diǎn)、時(shí)間和溫度”、“創(chuàng)建新的溫度記錄”、“計(jì)算特定地點(diǎn)的日平均溫度”和“存儲(chǔ)溫度記錄”等
32、模塊,直至計(jì)算出并保存好所有指定地點(diǎn)的日平均溫度。最后,打印平均溫度并關(guān)閉文件。從上述敘述可知,“計(jì)算多個(gè)地點(diǎn)的日平均溫度”、“讀取地點(diǎn)、時(shí)間和溫度”、“創(chuàng)建新的溫度記錄”、“計(jì)算特定地點(diǎn)的日平均溫度”和“存儲(chǔ)溫度記錄”等5個(gè)模塊,每個(gè)都完成一個(gè)單一的功能,模塊內(nèi)所有元素都為完成同一個(gè)功能服務(wù),彼此結(jié)合的十分緊密,因此,這5個(gè)模塊的內(nèi)聚類型都是功能內(nèi)聚。初看起來(lái),由于初始化變量sum和打開(kāi)文件這兩個(gè)操作都是在程序運(yùn)行的初始階段完成的,“初始化變量sum和打開(kāi)文件” 這個(gè)模塊的內(nèi)聚類型似乎是時(shí)間內(nèi)聚。但是,初始化變量sum是本程序特有的操作,而打開(kāi)文件是硬件要求的操作,是任何使用文件的程序都包含
33、的一個(gè)操作,并非本程序特有的操作。當(dāng)可以分配兩個(gè)或更多個(gè)不同級(jí)別的內(nèi)聚類型給一個(gè)模塊時(shí),規(guī)則是分配最低級(jí)別的內(nèi)聚類型給該模塊。因此,“初始化變量sum和打開(kāi)文件”這個(gè)模塊的內(nèi)聚類型都是偶然內(nèi)聚。同理,“關(guān)閉文件并打印平均溫度” 這個(gè)模塊的內(nèi)聚類型也是偶然內(nèi)聚。3.答:綜合分析圖3.2和表3.1所提供的信息可知各個(gè)模塊之間的耦合情況。例如,當(dāng)模塊p調(diào)用模塊 q時(shí)(接口1),它傳遞一個(gè)參數(shù)-飛機(jī)類型。當(dāng)模塊q把控制返還給模塊p時(shí),它傳回一個(gè)狀態(tài)標(biāo)志。某些模塊之間的耦合類型是明顯的,例如,模塊p和q之間(接口1)、模塊r和t之間(接口5)及模塊s和u之間(接口6)都是數(shù)據(jù)耦合,因?yàn)樗鼈儌鬟f的都是一個(gè)
34、簡(jiǎn)單變量。如果兩個(gè)模塊中的一個(gè)模塊給另一個(gè)模塊傳遞控制元素,也就是說(shuō),如果一個(gè)模塊明顯地控制另一個(gè)模塊的邏輯,則它們之間具有控制耦合。例如,當(dāng)給具有邏輯內(nèi)聚的模塊傳遞功能代碼時(shí)就傳遞了控制元素。另一個(gè)控制耦合的例子是把控制開(kāi)關(guān)作為一個(gè)參數(shù)傳遞。圖3.2中模塊q調(diào)用模塊r時(shí)(接口3)傳遞一個(gè)功能代碼,因此,這兩個(gè)模塊之間是控制耦合。圖3.2右側(cè)文字說(shuō)明,模塊p、t和u更新同一個(gè)數(shù)據(jù)庫(kù),因此,它們之間具有公共環(huán)境耦合。當(dāng)模塊p調(diào)用模塊s時(shí)(接口2),如果模塊s使用或更新模塊p傳遞給它的零件清單中的所有元素,則模塊p和s之間的耦合是數(shù)據(jù)耦合;但是,如果模塊s只訪問(wèn)該清單中的一部分元素,則模塊p和s之
35、間的耦合是特征耦合。模塊q和s之間(接口4)的耦合情況與此類似。由于圖3.2和表3.1中給出的信息尚不足以準(zhǔn)確地描述各個(gè)模塊的功能,所以不能確定這兩對(duì)模塊之間的耦合是數(shù)據(jù)耦合還是特征耦合。4.答:我們?cè)诮獯鸬?章第11題的過(guò)程中,已經(jīng)用結(jié)構(gòu)化分析方法詳細(xì)地分析了這個(gè)工資支付系統(tǒng),并且認(rèn)真審查了結(jié)構(gòu)化分析所得出的結(jié)果。因此,可以從圖2.19所示的工資支付系統(tǒng)完整數(shù)據(jù)流通出發(fā),設(shè)計(jì)工資支付系統(tǒng)的結(jié)構(gòu)。從圖2.19可以看出,事務(wù)數(shù)據(jù)和人事數(shù)據(jù)沿著兩條輸入通路進(jìn)入系統(tǒng),輸出數(shù)據(jù)沿著一條輸出通路離開(kāi)系統(tǒng),數(shù)據(jù)流圖中沒(méi)有明顯的事務(wù)中心。因此,從整體上看這個(gè)數(shù)據(jù)流圖具有變換流的基本特征。接下來(lái)應(yīng)該分析確定輸
36、入流和輸出流的邊界,以孤立出變換中心。“取數(shù)據(jù)”和“收集數(shù)據(jù)”顯然位于輸入流中?!皩徍藬?shù)據(jù)”僅僅對(duì)收集來(lái)的事務(wù)數(shù)據(jù)進(jìn)行校核,并不對(duì)數(shù)據(jù)進(jìn)行加工處理,它的基本功能是確保輸入的事務(wù)數(shù)據(jù)時(shí)合理的,因此,也應(yīng)該歸入輸入流的行列。“更新人事數(shù)據(jù)”由人事科通過(guò)另一個(gè)程序完成,不屬于本系統(tǒng)應(yīng)完成的功能?!坝”砀瘛憋@然應(yīng)該位于輸出流中?!胺职l(fā)工資明細(xì)表”由人工完成,它不是工資支付程序的一部分。綜上所述,得出畫(huà)有流邊界的數(shù)據(jù)流圖,如圖3.14所示。圖3.14 畫(huà)有流邊界的工資支付系統(tǒng)數(shù)據(jù)流圖下一個(gè)設(shè)計(jì)步驟是,完成“第一級(jí)分解”。所謂第一級(jí)分解就是確定系統(tǒng)的總體控制結(jié)構(gòu)。通常,變換分析得出的系統(tǒng)高層結(jié)
37、構(gòu)是一個(gè)“三叉”的控制結(jié)構(gòu),針對(duì)工資支付系統(tǒng)得出的高層控制結(jié)構(gòu)如圖3.15所示。圖3.15 工資支付系統(tǒng)的第一級(jí)分解 再下一步設(shè)計(jì)步驟是,完成“第二級(jí)分解”。所謂第二級(jí)分解,就是把數(shù)據(jù)流圖中的每個(gè)處理映射成軟件結(jié)構(gòu)中的一個(gè)適當(dāng)?shù)哪K。變換分析的映射規(guī)則是,從變換中心的邊界開(kāi)始沿著輸入通路向外移動(dòng),把輸入通路中每個(gè)處理映射成軟件結(jié)構(gòu)中“輸入信息處理控制模塊”控制下的一個(gè)低層模塊;然后沿輸出通路向外移動(dòng),把輸出通路中每個(gè)處理映射成直接或間接受“輸出信息處理控制模塊”控制的一個(gè)低層模塊;最后把變換中心內(nèi)的每個(gè)處理映射成受“變換中心控制模塊”控制的一個(gè)低層模塊。對(duì)于工資支付系統(tǒng)來(lái)
38、說(shuō),第二級(jí)分解的結(jié)果如圖3.16所示。圖3.16 工資支付系統(tǒng)的第二級(jí)分解最后一個(gè)設(shè)計(jì)步驟是,對(duì)工資支付系統(tǒng)的初步設(shè)計(jì)結(jié)果進(jìn)行優(yōu)化。結(jié)合工資支付系統(tǒng)的功能研究圖3.16所示的系統(tǒng)初步結(jié)構(gòu)可以看出,“接收工資數(shù)據(jù)”這個(gè)控制模塊時(shí)多余的:“取數(shù)據(jù)”模塊本身就具有根據(jù)需要讀取相應(yīng)數(shù)據(jù)的功能,沒(méi)必要再它上面再加一個(gè)控制模塊。此外,完成具體輸出功能的模塊只有一個(gè),無(wú)須再額外設(shè)置一個(gè)輸出信息處理控制模塊,因此應(yīng)該去掉“印出計(jì)算結(jié)果”模塊。優(yōu)化后的工資支付系統(tǒng)結(jié)構(gòu)如圖3.17所示。圖3.17 優(yōu)化后的工資支付軟件結(jié)構(gòu)5.答:計(jì)算環(huán)形復(fù)雜度的方法主要有下述3種。(1)環(huán)形復(fù)雜度等于流圖
39、中的區(qū)域數(shù)圖3.3所示流圖共有5個(gè)區(qū)域,因此它的環(huán)形復(fù)雜度等于5。圖3.18用羅馬數(shù)字標(biāo)注出該流圖中的區(qū)域,其中區(qū)域I為圖的外部區(qū)域。圖3.18 用羅馬數(shù)字標(biāo)注出區(qū)域(2)環(huán)形復(fù)雜度等于流圖中邊的條數(shù)減去結(jié)點(diǎn)數(shù)之后再加2圖3.3所示流圖共有11條邊,8個(gè)結(jié)點(diǎn),所以它的環(huán)形復(fù)雜度為11-8+2=5(3)環(huán)形復(fù)雜度等于程序中的判斷數(shù)加1流圖中有2條輸出弧的結(jié)點(diǎn)(例如,圖3.3中的結(jié)點(diǎn)c和f)對(duì)應(yīng)于程序中的1個(gè)判斷,有n(n>2)條輸出弧的結(jié)點(diǎn)(例如,圖3.3中的結(jié)點(diǎn)a有3條輸出?。?duì)應(yīng)于程序中的n-1個(gè)判斷。因此,圖3.3所示流圖的環(huán)形復(fù)雜度為2*1+1*(3-1)+1=56.答
40、:Halstead方法根據(jù)詳細(xì)設(shè)計(jì)中使用的不同運(yùn)算符的個(gè)數(shù)n1和不同操作數(shù)的個(gè)數(shù)n2來(lái)預(yù)測(cè)程序長(zhǎng)度H。通常,把變量和常量作為操作數(shù),把其他符合視為運(yùn)算符,因此,逗號(hào)、分號(hào)、圓括號(hào)、方括號(hào)、算術(shù)運(yùn)算符和邏輯運(yùn)算符全都是運(yùn)算符。按照慣例,把所有總是成對(duì)出現(xiàn)或以3個(gè)一組方式出現(xiàn)的符號(hào)視為一個(gè)運(yùn)算符。計(jì)算X和Y之積的代碼中包含的運(yùn)算符有下列8種(n1=8):=、;、while end_while、>、+、-、print、()操作數(shù)有下列5種(n2=5):Z、0、X、Y、1按照Halstead方法預(yù)測(cè)的程序長(zhǎng)度為H= n12 n1 + n22 n2 &
41、#160;=8*2 8+5*2 5= 8*3+5*2.32=35.6計(jì)算X和Y之積的代碼中包含的各種運(yùn)算符的個(gè)數(shù)如下列:運(yùn)算符 個(gè)數(shù)=
42、; 3; 5while end_while
43、60; 1> 1+
44、 1- 1Print
45、160; 1() 1因此,代碼中包含的運(yùn)算符總個(gè)數(shù)為N1=14。代碼中包含的各種操作數(shù)的個(gè)數(shù)如下列:操作數(shù)
46、 個(gè)數(shù)Z
47、160; 40 2X
48、160; 3Y 21
49、160; 1因此,操作數(shù)的總個(gè)數(shù)為N2=12。程序的實(shí)際長(zhǎng)度為N= N1+ N2=26預(yù)測(cè)的長(zhǎng)度與實(shí)際長(zhǎng)度相差9.6,相對(duì)誤差是為9.6/26=37%7.答:分析圖3.4可以看出,該處理過(guò)程由順序執(zhí)行的3個(gè)程序塊組成:首先執(zhí)行處理a,然后執(zhí)行一個(gè)DO-UNTIL型循環(huán),最后執(zhí)行處理j.DO-UNTIL型循環(huán)的循環(huán)體是處理b和一個(gè)IF-THEN-ELSE型分支結(jié)構(gòu),循環(huán)結(jié)束條件為x8。其中,IF-THEN-ELSE型分支結(jié)構(gòu)的分支
50、條件是x1,THEN部分是處理f和另一個(gè)分支條件為x6的IF-THEN-ELSE型分支結(jié)構(gòu);ELSE部分是一個(gè)CASE型多分支結(jié)構(gòu)。這樣一層一層地分析下去,可以畫(huà)出圖3.19所示的與圖3.4等價(jià)的盒圖。圖3.19 與圖3.4等價(jià)的盒圖8.答:令P代表交易的總金額,Q代表每股的售價(jià),n代表交易的股數(shù)。(1)表示手續(xù)費(fèi)計(jì)算方法的判定表如圖3.20所示。判定表的每一列是一條計(jì)算規(guī)則。例如,第1列(規(guī)則1)規(guī)定,當(dāng)交易總金額P少于1000元,且每股售價(jià)Q低于14元,且交易的股數(shù)n是100的倍數(shù)時(shí),給經(jīng)紀(jì)人的手續(xù)費(fèi)為(1+0.05)*0.084P第16列(規(guī)則16)表明,當(dāng)交易總金額P超過(guò)1
51、0000元,且每股售價(jià)Q在14元到25元之間,且交易的股數(shù)n不是100的倍數(shù)時(shí),手續(xù)費(fèi)為(1+0.06)*(0.04P+134)圖3.20 描述手續(xù)費(fèi)計(jì)算方法的判定表(2)表示手續(xù)費(fèi)計(jì)算方法的判定樹(shù)如圖3.21所示。圖3.21 描述手續(xù)費(fèi)計(jì)算方法的判定樹(shù)9.答:(1)從該偽碼程序轉(zhuǎn)變成的程序流程圖示于圖3.22中。圖3.22 從偽碼轉(zhuǎn)變成的程序流程圖(2)由該偽碼程序轉(zhuǎn)變成的盒圖如圖3.23所示。圖3.23 由偽碼轉(zhuǎn)變成的盒圖10.答:(1)通常所說(shuō)的結(jié)構(gòu)化程序,是按照狹義的結(jié)構(gòu)程序的定義衡量,符合定義規(guī)定的程序。圖3.5所示的程序的循環(huán)控制結(jié)構(gòu)有兩個(gè)出口,
52、顯然不符合狹義的結(jié)構(gòu)程序的定義,因此是非結(jié)構(gòu)化的程序。(2)使用附加的標(biāo)志變量flag,至少有兩種方法可以把該程序改造為等價(jià)的結(jié)構(gòu)化程序,圖3.24所示盒圖描繪了等價(jià)的結(jié)構(gòu)化程序。 (a)解法1
53、; (b)解法2圖3.24 與圖3.5等價(jià)的結(jié)構(gòu)化程序(用flag)(3)不使用flag把該程序改造為等價(jià)的結(jié)構(gòu)化程序的方法如圖3.25所示。圖3.25 與圖3.5等價(jià)的結(jié)構(gòu)化程序(不用flag)11.答:(1)根據(jù)這個(gè)偽碼程序畫(huà)出的程序流程圖如圖3.26所示。圖3.26 與偽碼程序?qū)?yīng)的程序流程圖(2)這個(gè)程序是非結(jié)構(gòu)化的。因?yàn)樵趫D3.26中“印出緩沖區(qū)的內(nèi)容”這個(gè)處理框有兩個(gè)入口;此外,循
54、環(huán)結(jié)構(gòu)有兩個(gè)出口:IT為假和MATCH=N為真時(shí)都結(jié)束循環(huán)。(3)僅用3種控制結(jié)構(gòu)的等價(jià)的結(jié)構(gòu)化程序的偽碼如下:INPUT NINPUT KEYWORD(S) FOR TOPICI=0MATCH=0DO WHILE(IT) and (MATCHI=I+1IF WORD= KEYWORDTHEN MATCH=MATCH+1STORE IN BUFFERENDENDIF N=0THEN PRINT”NO MATCH”ELSE CALL SUBROUTINE TO PRINT BUFFERINFORMATIONEND圖3.27所示盒圖描繪了上面給出的結(jié)構(gòu)化程序。圖3.27 與圖3.26等
55、價(jià)的結(jié)構(gòu)化程序(4)該程序邏輯中有兩個(gè)錯(cuò)誤第一個(gè)錯(cuò)誤是WHILE循環(huán)條件IT:根據(jù)這個(gè)條件,當(dāng)I=T時(shí)應(yīng)該執(zhí)行一遍循環(huán)體。循環(huán)體的第一條語(yǔ)句是I=I+1,即把I的值加1使之變成T+1,但是,該檢索系統(tǒng)總共只有T個(gè)詞條(ENTRY),下標(biāo)I變成T+1將出現(xiàn)“越界”錯(cuò)。因此,應(yīng)該把循環(huán)條件改為I第二個(gè)錯(cuò)誤是印出“無(wú)匹配“的條件N=0:該程序使用變量MATCH存放匹配次數(shù),因此,印出“無(wú)匹配“的條件應(yīng)該是MATCH=0。順便說(shuō)一句,即使把該程序改造成了結(jié)構(gòu)化的程序(見(jiàn)第3小題的答案),也仍然應(yīng)該像上述的那樣改正這個(gè)錯(cuò)誤。12.答:(1)圖3.6所示程序流程圖可用偽碼表示為:STARTLoop:IF
56、P1THENS1IF P2THENS2IF P3THENS3IF P4THENS4GO TO LoopELSEGO TO ExitENDELSEGO TO ExitENDELSEGO TO ExitENDExit:STOP(2)使用附加的標(biāo)志變量flag,設(shè)計(jì)出的等價(jià)的結(jié)構(gòu)化程序偽碼如下:STARTflag=TRUEDO UNTIL(NOT P4) OR (NOT flag)IF P1THEN S1ELSE flag=FALSEENDIF P2 AND flagTHEN S2ELSE flag=FALSEENDIF P3 AND flagTHEN S3ELSE
57、; flag=FALSEENDIF P4 AND flagTHEN S4ELSE flag=FALSEENDENDSTOP(3)不使用附加的標(biāo)志變量flag的等價(jià)的結(jié)構(gòu)化程序偽碼如下:STARTDO UNTIL (NOT P1) OR (NOT P2) OR (NOT P3) OR (NOT P4)IF P1THEN S1IF P2THEN S2IF P3THEN S3IF P4 THEN S4ENDENDENDENDENDSTOP13答:偽碼準(zhǔn)確地描述了程序的控制流程。由于偽碼在描述程序的控制流程時(shí)是無(wú)二義性的,因此,由偽碼轉(zhuǎn)變成的程序流程圖是唯
58、一的。但是,同樣的控制流程可以用不同的偽碼來(lái)描述,因此,由程序流程圖轉(zhuǎn)變成的偽碼不是唯一的。例如,第12題第(3)小題的答案也可以用下面的偽碼來(lái)描述STARTLoop:IF P1THEN S1IF P2THEN S2IF P3THEN S3IF P4THEN S4DO TO LoopENDENDENDENDENDSTOP上列偽碼中雖然使用了GO TO 語(yǔ)句,但它仍然是結(jié)構(gòu)化程序,因?yàn)樗匀槐3至藛稳肟趩纬隹诘目刂平Y(jié)構(gòu)。實(shí)際上,它用了GO TO 語(yǔ)句實(shí)現(xiàn)了DO_UNTIL型循環(huán)結(jié)構(gòu)。14答:(1)從這個(gè)例子中看出,Ashcroft_Manna技術(shù)的基本方法是,當(dāng)待改造的程序含有嵌套的費(fèi)結(jié)構(gòu)化的IF語(yǔ)句時(shí),改造后的程序中增加DO-CASE語(yǔ)句和DO-UNTIL語(yǔ)句,并增加一個(gè)輔助變量I,I的初始值偽1。最外層的IF語(yǔ)句在I=1時(shí)執(zhí)行,執(zhí)行完這個(gè)IF語(yǔ)句后把I賦值為隨后應(yīng)該執(zhí)行的內(nèi)層IF語(yǔ)句所對(duì)應(yīng)的CASE標(biāo)號(hào)值。DO-CASE語(yǔ)句的最大分支數(shù)(可執(zhí)行的最大標(biāo)號(hào)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年體檢行業(yè)市場(chǎng)格局與服務(wù)質(zhì)量提升策略研究報(bào)告
- 藥品運(yùn)輸設(shè)備管理制度
- 藥品風(fēng)險(xiǎn)溝通管理制度
- 藥店培訓(xùn)藥品管理制度
- 藥店藥品庫(kù)存管理制度
- 設(shè)備使用科室管理制度
- 設(shè)備備件報(bào)廢管理制度
- 設(shè)備異常運(yùn)營(yíng)管理制度
- 設(shè)備檢修分工管理制度
- 設(shè)備相機(jī)使用管理制度
- Proe有限元分析在工程碩士課程中的應(yīng)用課件
- 2024版國(guó)開(kāi)電大法學(xué)本科《國(guó)際私法》在線形考(任務(wù)1至5)試題及答案
- 2025年下半年南京大數(shù)據(jù)集團(tuán)限公司工作人員招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 麻精藥品管理培訓(xùn)
- 2025年教師招聘考試教育綜合知識(shí)復(fù)習(xí)資料
- 2024版壓力容器設(shè)計(jì)審核機(jī)考題庫(kù)(綜合題)
- Revision Going to a school fair Lesson 1(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)下冊(cè)
- 京東代理合同樣本
- 2024中原綠色產(chǎn)業(yè)生態(tài)發(fā)展(河南)有限公司公開(kāi)招聘80人筆試參考題庫(kù)附帶答案詳解
- 2025外研版七年級(jí)下冊(cè)英語(yǔ)全冊(cè)教案
- 電熱水器使用安全協(xié)議書(shū)
評(píng)論
0/150
提交評(píng)論