程序設計語言與編碼_第1頁
程序設計語言與編碼_第2頁
程序設計語言與編碼_第3頁
程序設計語言與編碼_第4頁
程序設計語言與編碼_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第六章 程序設計語言與編碼首都師范大學 教育技術系方海光做為軟件工程過程的一個階段,程序編碼是設計的繼續(xù)。程序設計語言的特性和程序設計風格會深刻地影響軟件的質量和可維護性。為了保證程序編碼的質量,程序員必須深刻理解、熟練掌握并正確地運用程序設計語言的特性。此外,還要求源程序具有良好的結構性和良好的程序設計風格。26.1.1 程序設計語言的分類大體上,程序設計語言分為以下幾類:(1)機器語言(2)匯編語言(3)高級語言(4)4GL由于高級語言種類繁多,我們可以從應用特點、語言內在特點和對客觀系統(tǒng)的描述三個不同的角度來對高級語言進行分類。3(1)基礎語言(例:FORTRAN,BASIC,COBOL

2、和ALGOL)(2)結構化語言(例:ALGOL,PL/1,PASCAL,C,Ada)(3)專用語言(例:APL,LISP,PROLOG,BLISS,F(xiàn)ORTH)1、從應用特點的角度來分4(1)系統(tǒng)實現(xiàn)語言(例:C語言)(2)靜態(tài)高級語言(例:FORTRAN、COBOL)(3)塊結構高級語言(例:PASCAL,ALGOL)(4)動態(tài)高級語言2、從語言內在特點的角度來分5(2)面向對象語言對象+消息(1)面向過程語言數據結構+算法3、從描述客觀系統(tǒng)的角度來分例:Delphi、Visual Basic、JAVA、C+。6 6.1.2 程序設計語言的選擇 為開發(fā)一個特定項目選擇程序設計語言時,必須從技

3、術特性、工程特性和心理特性幾方面考慮。在選擇語言時,從問題入手, 確定它的要求是什么,以及這些要求的相對重要性。由于一種語言不可能同時滿足它的各種需求, 所以要對各種要求進行權衡,比較各種可用語言的適用程度, 最后選擇認為是最適用的語言。 7 1. 項目的應用領域 項目應用領域是選擇語言的關鍵因素, 有下列幾種類型。 1) 科學工程計算 該計算需要大量的標準庫函數, 以便處理復雜的數值計算, 可供選用的語言有:8(1) FORTRAN語言: 是世界上第一個被正式推廣應用的計算機語言,產生于1954年,經過FORTRAN 0到FORTRAN , 又相繼擴展為FORTRAN 77,F(xiàn)ORTRAN

4、90,通過幾個版本不斷的更新,使它不僅面向科學計算,數據處理能力也極強。 (2) Pascal語言: 產生于60年代末, 具有很強的數據和過程結構化的能力,它是第一個體現(xiàn)結構化編程思想的語言, 由于它語言簡明、數據類型豐富、程序結構嚴謹,許多算法都用類Pascal來概括。用Pascal語言寫程序,也有助于培養(yǎng)良好的編程風格。 9(3) C語言:產生于70年代初,最初用于描述UNIX操作系統(tǒng)及其上層軟件,后來發(fā)展成具有很強功能的語言,支持復雜的數據結構, 可大量運用指針,具有豐富靈活的操作運算符及數據處理操作符。此外還具有匯編語言的某些特性,使程序運行效率高。 (4) PL/1語言: 是一個適用

5、性非常廣泛的語言, 能夠適用于多種不同的應用領域,但由于太龐大,難以推廣使用,目前一些PL/1的子集被廣泛使用。102) 數據處理與數據庫應用數據處理與數據庫應用可供選用的語言如下:(1) Cobol語言: 產生于 50 年代末, 是廣泛用于商業(yè)數據處理的語言,它具有極強的數據定義能力,程序說明與硬件環(huán)境說明分開, 數據描述與算法描述分開,結構嚴謹層次分明, 說明采用類英語的語法結構,可讀性強。11(2) SQL語言: 最初是為IBM公司開發(fā)的數據庫查詢語言, 目前不同的軟件開發(fā)公司有了不同的擴充版本, 如 80 年代后期我國引入Informix-SQL, Microsoft-SQL可以方便地

6、對數據庫進行存取管理。 12(3) 4GL語言: 稱為第4代語言,隨著信息系統(tǒng)的飛速發(fā)展, 原來的第2代語言(如FORTRAN,Cobol)第3代語言(如Pascal, C等)受硬件和操作系統(tǒng)的局限,其開發(fā)工具不能滿足新技術發(fā)展的需求,因此,在70年代末,提出了第4代語言的概念, 4GL的主要特征是:13 友好的用戶界面: 指操作簡單, 使非計算機專業(yè)人員也能方便地使用它。 兼有過程性和非過程性雙重特性:非過程性指語言的抽象層次又提高到一個新的高度,只需告訴計算機“做什么”, 而不必描述“怎么做”,“怎么做”的工作由語言系統(tǒng)運用它的專門領域的知識來填充過程細節(jié)。 高效的程序代碼: 指能縮短開發(fā)

7、周期, 并減少維護的代價。 完備的數據庫: 指在4GL中實現(xiàn)數據庫功能, 不再把DBMS(數據庫管理系統(tǒng))看成是語言以外的成分。 14 應用程序生成器:能提供一些常用的程序來完成文件維護、屏幕管理、報表生成和查詢等任務, 從而有效提高軟件生產率。 目前流行的Fox公司的FoxPro, Uniface公司的Uniface, Powersoft公司的Power Builder, Informix公司的Informix-4GL以及各種擴充版本的SQL等都不同程度地具有上述特征。 153) 實時處理 實時處理軟件一般對性能的要求很高,可選用的語言有: (1) 匯編語言:是面向機器的,它可以完成高級語言

8、無法滿足要求的特殊功能,如與外部設備之間的一些接口操作。16(2) Ada語言:是美國國防部出資開發(fā)的,主要用于適時、 并發(fā)和嵌入系統(tǒng)的語言。Ada語言是在Pascal基礎上開發(fā)出來的,但其功能更強、更復雜。它提供了一組豐富的實時特性, 包括多任務處理、中斷處理、任務間同步與通信等, 它還提供了許多程序包供程序員選擇。通過修訂,已成為安全、高效和靈活的面向對象的編程語言。 174) 系統(tǒng)軟件 如果編寫操作系統(tǒng)、編譯系統(tǒng)等系統(tǒng)軟件時,可選用匯編語言、C語言、Pascal語言和Ada語言。5) 人工智能 如果要完成知識庫系統(tǒng)、專家系統(tǒng)、決策支持系統(tǒng)、推理工程、語言識別、模式識別、機器人視角及自然語

9、言處理等人工智能領域內的系統(tǒng), 應選擇的語言如下: 18(1) Lisp: 是一種函數型語言,產生于60年代初,它特別適用于組合問題中的符號運算和表處理,因此用于定理證明、樹的搜索和其他問題的求解。近年來Lisp廣泛應用于專家系統(tǒng)的開發(fā), 對于定義知識庫系統(tǒng)中的事實、規(guī)則和相應的推理相對要容易一些。 19(2) Prolog: 是一種邏輯型語言,產生于70年代初,它提供了支持知識表示的特性,每一個程序由一組表示事實、規(guī)則和推理的子句組成, 比較接近于自然語言,符合人的思維方式。 以上討論的語言,一般適用于相應的應用領域, 但要根據具體情況靈活掌握。有的語言功能強,適用的范圍較廣,但比較龐大。2

10、02. 軟件開發(fā)的方法 有時編程語言的選擇依賴于開發(fā)的方法,如果要用快速原型模型來開發(fā),要求能快速實現(xiàn)原型,因此宜采用4GL。如果是面向對象方法,宜采用面向對象的語言編程。近年來,推出了許多面向對象的語言,這里主要介紹以下幾種:21(1) C+:是由美國AT&T公司的Bell實驗室最先設計和實現(xiàn)的語言,它提供了面向對象類的定義、繼承、封裝和消息傳遞等概念實現(xiàn)的手段,又與C語言兼容,保留了C語言的許多特性, 維護了大量已開發(fā)的C庫、C工具以及C源程序的完整性,使編程人員不必放棄自己熟悉的C語言,只需補充學習C+提供的那些面向對象的概念,因而從C過渡到C+比較容易,加之它的運行性能較高, 成為當今

11、最受歡迎的對象語言之一。22 目前, 除了常用的AT&T C+, Turbo C+, Borland C+及Microsoft C+等版本外,又推出了Microsoft Visual C+, 充分發(fā)揮Windows和Web的功能。 23(2) Java: 是由Sun公司開發(fā)的一種面向對象的、分布式的、 安全的、 高效的及易移植的語言,它的基本功能類似于C+, 但做了重大修改, 不再支持運算符重載、多繼承及許多易于混淆和較少使用的特性,增加了內存空間自動垃圾收集的功能, 使程序員不必考慮內存管理問題。Java應用程序可利用語言提供的例程庫,能夠自由地打開和訪問網絡上的對象。243. 軟件執(zhí)行的環(huán)

12、境 良好的編程環(huán)境不但有效提高軟件生產率, 同時能減少錯誤,有效提高軟件質量。近幾年推出了許多可視化的軟件開發(fā)環(huán)境, 如Visual BASIC, Visual C, Visual FoxPro及Delphi(面向對象的Pascal)等,都提供了強有力的調試工具, 幫助你快速形成高質量的軟件。254. 算法和數據結構的復雜性 科學計算、實時處理和人工智能領域中的問題算法較復雜, 而數據處理、數據庫應用和系統(tǒng)軟件領域內的問題,數據結構比較復雜,因此選擇語言時可考慮是否有完成復雜算法的能力, 或者有構造復雜數據結構的能力。265. 軟件開發(fā)人員的知識 有時編程語言的選擇與軟件開發(fā)人員的知識水平及心

13、理因素有關,新的語言雖然有吸引力,但軟件開發(fā)人員若熟悉某種語言, 而且有類似項目的開發(fā)經驗,往往愿選擇原有的語言。 開發(fā)人員應仔細地分析軟件項目的類型, 敢于學習新知識,掌握新技術。 276.2 程序設計風格 隨著計算機技術的發(fā)展,軟件的規(guī)模增大了,軟件的復雜性也增強了。為了保證軟件的質量,要加強軟件測試。 為了延長軟件的生存期,就要經常進行軟件維護。不論測試與維護, 都必須要閱讀程序。因此,讀程序是軟件維護和開發(fā)過程中的一個重要組成部分。有時讀程序的時間比寫程序的時間還要多。28 同樣一個題目,為什么有人編的程序容易讀懂, 而有人編的程序不易讀懂呢? 這就存在一個程序設計的風格問題。程序設計

14、風格指一個人編制程序時所表現(xiàn)出來的特點、 習慣及邏輯思路等。良好的編程風格可以減少編碼的錯誤, 減少讀程序的時間,從而提高軟件的開發(fā)效率。因此本節(jié)主要討論與編程風格有關的因素。291. 源程序文檔化編寫源程序文檔化的原則為:(1) 標識符應按意取名。若是幾個單詞組成的標識符, 每個單詞第一個字母用大寫,或者之間用下劃線分開,這便于理解。 如某個標識符取名為rowofscreen, 若寫成RowOfScreen或row-of-screen就容易理解了。但名字也不是越長越好,太長了,書寫與輸入都易出錯,必要時用縮寫名字,但縮寫規(guī)則要一致。 30(2) 程序應加注釋。 注釋是程序員與讀者之間通信的重

15、要工具,用自然語言或偽碼描述。它說明了程序的功能,特別在維護階段, 對理解程序提供了明確指導。注釋分序言性注釋和功能性注釋。31序言性注釋應置于每個模塊起始部分, 主要內容有: 說明每個模塊的用途、 功能。 說明模塊的接口即調用形式、 參數描述及從屬模塊的清單。 數據描述: 指重要數據的名稱、 用途、 限制、 約束及其他信息。 開發(fā)歷史: 指設計者、 審閱者姓名及日期, 修改說明及日期。 32功能性注釋嵌入在源程序內部,說明程序段或語句的功能以及數據的狀態(tài)。注意以下幾點: 注釋用來說明程序段, 而不是每一行程序都要加注釋。 使用空行或縮進或括號, 以便很容易區(qū)分注釋和程序。 修改程序也應修改注

16、釋。 332. 數據說明為了使數據定義更易于理解維護,有以下指導原則: (1) 數據說明順序應規(guī)范,使數據的屬性更易于查找, 從而有利于測試、糾錯與維護。例如按常量說明、類型說明、 全程量說明及局部量說明順序。(2) 一個語句說明多個變量時, 各變量名按字典序排列。 (3) 對于復雜的數據結構, 要加注釋, 說明在程序實現(xiàn)時的特點。343. 語句構造 語句構造的原則為:簡單直接,不能為了追求效率而使代碼復雜化。為了便于閱讀和理解,不要一行多個語句。不同層次的語句采用縮進形式,使程序的邏輯結構和功能特征更加清晰。 要避免復雜的判定條件,避免多重的循環(huán)嵌套。表達式中使用括號以提高運算次序的清晰度等

17、。 354. 輸入和輸出在編寫輸入和輸出程序時考慮以下原則:(1) 輸入操作步驟和輸入格式盡量簡單。(2) 應檢查輸入數據的合法性、 有效性, 報告必要的輸入狀態(tài)信息及錯誤信息。(3) 輸入一批數據時, 使用數據或文件結束標志, 而不要用計數來控制。 (4) 交互式輸入時, 提供可用的選擇和邊界值。36(5) 當程序設計語言有嚴格的格式要求時, 應保持輸入格式的一致性。(6) 輸出數據表格化、 圖形化。 輸入、 輸出風格還受其他因素的影響, 如輸入、 輸出設備,用戶經驗及通信環(huán)境等。375. 效率效率指處理機時間和存儲空間的使用, 對效率的追求明確以下幾點: (1) 效率是一個性能要求, 目標

18、在需求分析給出。 (2) 追求效率建立在不損害程序可讀性或可靠性基礎之上, 要先使程序正確,再提高程序效率;先使程序清晰,再提高程序效率。 38(3) 提高程序效率的根本途徑在于選擇良好的設計方法、 良好的數據結構與算法,而不是靠編程時對程序語句做調整。 總之,在編碼階段,要善于積累編程經驗,培養(yǎng)和學習良好的編程風格,使編出的程序清晰易懂,易于測試與維護, 從而提高軟件的質量。 39程序實際上也是一種供人閱讀的文章,有一個文章的風格問題。應該使程序具有良好的風格,詳細說明以下內容: 1 源程序文檔化 2 數據說明 3 語句結構 4 輸入輸出方法401 源程序文檔化 標識符的命名 安排注釋 程序

19、的視覺組織41符號名的命名符號名即標識符,包括模塊名、變量名、常量名、標號名、子程序名、數據區(qū)名以及緩沖區(qū)名等。這些名字應能反映它所代表的實際東西,應有一定實際意義。例如,表示次數的量用Times,表示總量的用Total,表示平均值的用Average,表示和的量用Sum等。42名字不是越長越好,應當選擇精煉的意義明確的名字。必要時可使用縮寫名字,但這時要注意縮寫規(guī)則要一致,并且要給每一個名字加注釋。同時,在一個程序中,一個變量只應用于一種用途。NEW.BALANCE.ACCOUNTS.PAYABLE NBALAP N 43程序的注釋 夾在程序中的注釋是程序員與日后的程序讀者之間通信的重要手段。

20、注釋決不是可有可無的。一些正規(guī)的程序文本中,注釋行的數量占到整個源程序的13到12,甚至更多。注釋分為序言性注釋和功能性注釋。44序言性注釋通常置于每個程序模塊的開頭部分,它應當給出程序的整體說明,對于理解程序本身具有引導作用。有些軟件開發(fā)部門對序言性注釋做了明確而嚴格的規(guī)定,要求程序編制者逐項列出。有關項目包括: 程序標題;45 有關本模塊功能和目的的說明; 主要算法; 接口說明:包括調用形式,參數描述,子程序清單; 有關數據描述:重要的變量及其用途,約束或限制條件,以及其它有關信息; 模塊位置:在哪一個源文件中,或隸屬于哪一個軟件包; 開發(fā)簡歷:模塊設計者,復審者,復審日期,修改日期及有關

21、說明等。46功能性注釋功能性注釋嵌在源程序體中,用以描述其后的語句或程序段是在做什么工作,或是執(zhí)行了下面的語句會怎么樣。而不要解釋下面怎么做。例如, /* ADD AMOUNT TO TOTAL */ TOTAL = AMOUNTTOTAL不好。47如果注明把月銷售額計入年度總額,便使讀者理解了下面語句的意圖: /* ADD MONTHLY-SALES TO ANNUAL-TOTAL */TOTAL = AMOUNTTOTAL要點 描述一段程序,而不是每一個語句; 用縮進和空行,使程序與注釋容易區(qū)別; 注釋要正確。48視覺組織 空格、空行和移行恰當地利用空格,可以突出運算的優(yōu)先性,避免發(fā)生運算

22、的錯誤。例如 ,將表達式(A17)ANDNOT(B49)ORC寫成(A17) AND NOT (B49) OR C自然的程序段之間可用空行隔開;49移行也叫做向右縮格。它是指程序中的各行不必都在左端對齊,都從第一格起排列。這樣做使程序完全分不清層次關系。對于選擇語句和循環(huán)語句,把其中的程序段語句向右做階梯式移行。使程序的邏輯結構更加清晰。例如,兩重選擇結構嵌套,寫成下面的移行形式,層次就清楚得多。50 IF() THEN IF() THEN ELSE ENDIF ELSE ENDIF51數據說明在設計階段已經確定了數據結構的組織及其復雜性。在編寫程序時,則需要注意數據說明的風格。為了使程序中數

23、據說明更易于理解和維護,必須注意以下幾點。 1.數據說明的次序應當規(guī)范化 2.說明語句中變量安排有序化 3.使用注釋說明復雜數據結構52數據說明的次序應當規(guī)范化數據說明次序規(guī)范化,使數據屬性容易查找,也有利于測試,排錯和維護。原則上,數據說明的次序與語法無關,其次序是任意的。但出于閱讀、理解和維護的需要,最好使其規(guī)范化,使說明的先后次序固定。53例如,在FORTRAN程序中數據說明次序 常量說明 簡單變量類型說明 數組說明 公用數據塊說明 所有的文件說明在類型說明中還可進一步要求。例如, 可按如下順序排列: 整型量說明 實型量說明 字符量說明 邏輯量說明54說明語句中變量安排有序化當多個變量名

24、在一個說明語句中說明時,應當對這些變量按字母的順序排列。帶標號的全程數據(如FORTRAN的公用塊)也應當按字母的順序排列。例如,把 integer size, length, width, cost, price寫成 integer cost, length, price , size, width 55使用注釋說明復雜數據結構如果設計了一個復雜的數據結構,應當使用注釋來說明在程序實現(xiàn)時這個數據結構的固有特點。例如, 對PL/1的鏈表結構和Pascal中用戶自定義的數據類型,都應當在注釋中做必要的補充說明。56語句結構在設計階段確定了軟件的邏輯流結構,但構造單個語句則是編碼階段的任務。語句構

25、造力求簡單,直接,不能為了片面追求效率而使語句復雜化。571. 在一行內只寫一條語句在一行內只寫一條語句,并且采取適當的移行格式,使程序的邏輯和功能變得更加明確。許多程序設計語言允許在一行內寫多個語句。但這種方式會使程序可讀性變差。因而不可取。58例如,有一段排序程序FOR I:=1 TO N1 DO BEGIN T:=I;FOR J:=I1 TO N DO IF AJAT THEN T:=J;IF TI THEN BEGIN WORK:=AT;AT:=AI;AI:=WORK;END END;由于一行中包括了多個語句,掩蓋了程序的循環(huán)結構和條件結構,使其可讀性變得很差。59FOR I:=1 T

26、O N-1 DO /改進布局 BEGIN T:=I; FOR J:=I1 TO N DO IF AJAT THEN T:=J; IF TI THEN BEGIN WORK:=AT; AT:=AI; AI:=WORK; END END;602.程序編寫首先應當考慮清晰性程序編寫首先應當考慮清晰性,不要刻意追求技巧性,使程序編寫得過于緊湊。例如,有一個用 C 語句寫出的程序段: AI = AIAT; AT = AIAT; AI = AIAT;61 此段程序可能不易看懂,有時還需用實際數據試驗一下。實際上,這段程序的功能就是交換AI和AT中的內容。目的是為了節(jié)省一個工作單元。如果改一下: WORK

27、= AT; AT = AI; AI = WORK;就能讓讀者一目了然了。623.程序要能直截了當地說明程序員的用意。程序編寫得要簡單,寫清楚,直截了當地說明程序員的用意。例如, for ( i = 1; i = n; i+ ) for ( j = 1; j = n; j+ ) Vij ( ij ) * ( ji )除法運算()在除數和被除數都是整型量時,其結果只取整數部分,而得到整型量。63 當 ij 時, i / j = 0 當 ji 時, j / i = 0 得到的數組 當ij時 Vij = ( ij ) * ( ji ) = 0 當ij時 Vij = ( ij ) * ( ji ) =

28、1這樣得到的結果 V 是一個單位矩陣。64寫成以下的形式,就能讓讀者直接了解程序編寫者的意圖。 for ( i1; i = n; i+ ) for ( j1; j = n; j+ ) if ( i = j ) Vij 1.0; ELSE Vij 0.0;65664. 除非對效率有特殊的要求, 程序編寫要做到清晰第一,效率第二。不要為了追求效率而喪失了清晰性。事實上,程序效率的提高主要應通過選擇高效的算法來實現(xiàn)。5.首先要保證程序正確, 然后才要求提高速度。反過來說,在使程序高速運行時,首先要保證它是正確的。676.避免使用臨時變量而使可讀性下降。例如,有的程序員為了追求效率,往往喜歡把表達式

29、AI1AI;寫成 AIAI; XAI1AI;這樣將一句分成兩句寫,會產生意想不到的問題。687. 讓編譯程序做簡單的優(yōu)化。8. 盡可能使用庫函數9. 避免不必要的轉移。同時如果能保持程序可讀性,則不必用 GO TO語句。 例如,有一個求三個數中最小值的程序:69 IF ( X Y ) GOTO 30 IF (Y Z) GOTO 50 SMALLZ GOTO 7030 IF ( X Z)GOTO 60 SMALLZ GOTO 7050 SMALLY GOTO 7060 SMALLX70 CONTINUE70 程序只需編寫成: smallx; if ( y small ) smally; if (

30、 z = a ) if ( char = z ) cout “This is a letter。”; else cout = 0 & char = 9 ) 不要讓讀者繞彎子想。7314. 盡可能用通俗易懂的偽碼來描述程序的流程,然后再翻譯成必須使用的語言。15. 數據結構要有利于程序的簡化。16. 要模塊化,使模塊功能盡可能單一化,模塊間的耦合能夠清晰可見。17. 利用信息隱蔽,確保每一個模塊的獨立性。7418. 從數據出發(fā)去構造程序。19. 不要修補不好的程序,要重新編寫。也不要一味地追求代碼的復用,要重新組織。20. 對太大的程序,要分塊編寫、測試,然后再集成。21. 對遞歸定義的數據結構

31、盡量使用遞歸過程。75輸入和輸出輸入和輸出信息是與用戶的使用直接相關的。輸入和輸出的方式和格式應當盡可能方便用戶的使用。一定要避免因設計不當給用戶帶來的麻煩。因此,在軟件需求分析階段和設計階段,就應基本確定輸入和輸出的風格。系統(tǒng)能否被用戶接受,有時就取決于輸入和輸出的風格。76不論是批處理的輸入輸出方式,還是交互式的輸入輸出方式,在設計和編碼時都應考慮下列原則: 1. 對所有的輸入數據都要進行檢驗,識別錯誤的輸入,以保證每個數據的有效性;2. 檢查輸入項的各種重要組合的合理性,必要時報告輸入狀態(tài)信息;3. 使得輸入的步驟和操作盡可能簡單,并保持簡單的輸入格式;77 4. 輸入數據時,應允許使用

32、自由格式輸入; 5. 應允許缺省值; 6. 輸入一批數據時,最好使用輸入結束標志,而不要由用戶指定輸入數據數目; 7. 在交互式輸入輸入時,要在屏幕上使用提示符明確提示交互輸入的請求,指明可使用選擇項的種類和取值范圍。同時,在數據輸入的過程中和輸入結束時,也要在屏幕上給出狀態(tài)信息;78 8. 當程序設計語言對輸入輸出格式有嚴格要求時,應保持輸入格式與輸入語句的要求的一致性;9. 給所有的輸出加注解,并設計輸出報表格式。輸入輸出風格還受到許多其它因素的影響。如輸入輸出設備(例如終端的類型,圖形設備,數字化轉換設備等)、用戶的熟練程度、以及通信環(huán)境等。 796.3 結構化程序設計結構化程序設計主要

33、包括兩方面:在編寫程序時,強調使用幾種基本控制結構,通過組合嵌套,形成程序的控制結構。盡可能避免使用GOTO語句。在程序設計過程中,盡量采用自頂向下和逐步細化的原則,由粗到細,一步步展開。80結構化程序設計的主要原則使用語言中的順序、選擇、重復等有限的基本控制結構表示程序邏輯。選用的控制結構只準許有一個入口和一個出口。程序語句組成容易識別的塊,每塊只有一個入口和一個出口。復雜結構應該用基本控制結構進行組合嵌套來實現(xiàn)。81語言中沒有的控制結構,可用一段等價的程序段模擬,但要求該程序段在整個系統(tǒng)中應前后一致。嚴格控制GOTO語句,僅在下列情形才可使用: 用一個非結構化的程序設計語言去實現(xiàn)一個結構化的構造。 若不使用GOTO語句就會使程序功能模糊。 在某種可以改善而不是損害程序可讀性的情況下。82例1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論