版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
工程授課教師:藍天:電子郵箱:lantian
課程群號:302950664第五章程序?qū)崿F(xiàn)程序設(shè)計語言的特點1程序的效率3良好的編程2小結(jié)4本章學(xué)習(xí)目標1了解選擇程序設(shè)計語言的一般原則2理解編程規(guī)范3培養(yǎng)良好的編程程序設(shè)計語言程序設(shè)計語言是:人與計算機通信的最基本工具。程序設(shè)計語言的特性不可避免地會影響開發(fā)的思路和解決問題的方式,會影響代碼的可理解性和可
性。編碼之前的一項重要工作就是選擇一種適當(dāng)?shù)木幊陶Z言。不同的語言適用于不同的應(yīng)用COBOL語言:數(shù)據(jù)處理程序PHP語言:專門用來編寫網(wǎng)頁處理程序Perl語言:更適合文本處理C語言:被廣泛用于系統(tǒng)
開發(fā)JAVA語言:用于跨平臺的應(yīng)用
開發(fā)程序設(shè)計語言的特點-技術(shù)方面一旦確定了需求之后,待選用的程序設(shè)計語言的技術(shù)特性就顯得非常重要了。如果需要復(fù)雜的數(shù)據(jù)結(jié)構(gòu),就要仔細衡量有哪些語言能提供這些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)描述。如果
要求高性能及實時處理能力,就該選用適合于實時處理的語言,如C或匯編語言。如果應(yīng)用有許多輸出報告或繁
件處理,則選用PowerBuilder、Delphi或SQL比較合適。所有程序語言的基本成分都可歸納為4種:數(shù)據(jù)成分:指明該語言能接受的數(shù)據(jù),如各種類型的變量、數(shù)組、指針、記錄等。作為程序操作的對象,具有名稱、類型和作用域等特征。使用前要對這些特征加以說明,數(shù)據(jù)名稱由用戶通過標識符命名,類型是說明數(shù)據(jù)需占用多少單元和存放形式,作用域說明數(shù)據(jù)可被使用的范圍。運算成分:指明該語言可執(zhí)行的運算,如+,-,*、/控制成分:順序結(jié)構(gòu)、條件選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)傳輸成分:數(shù)據(jù)的傳輸方法,例如輸入、輸出函數(shù)程序設(shè)計語言的特點-語言本身名字類型初始化程序變量的局部性程序模塊的獨立性循環(huán)結(jié)構(gòu)分支結(jié)構(gòu)異常處理獨立編譯……1、名字預(yù)先說明程序中所使用的變量名字,編譯程序能,從而幫助程夠檢查程序中出現(xiàn)的名字的序員發(fā)現(xiàn)和改正程序中的錯誤。但是,有些語言不要求顯式地程序中所使用的變量名稱,它把變量第一次出現(xiàn)時使用的名字看做對這個變量的。這樣做可能會引入一些很難發(fā)現(xiàn)的錯誤,并且可能會產(chǎn)生嚴重。2、類型變量的類型確定一個變量的使用方式,有了類型,編譯程序就能夠很容易地發(fā)現(xiàn)程序中某個特定類型的變量使用不當(dāng)?shù)腻e誤。有些語言不要求顯式的類型,例如FORTRAN語言規(guī)定,名字的第一個字母決定它的類型,但是一旦顯式地了一個變量的類型,則以顯式為該變量的類型。這很容易造成閱讀時的。現(xiàn)代的大多數(shù)高級語言都有自定義類型,即允許開發(fā)定義與特定應(yīng)用相關(guān)的類型,并且可以用自定義類型嵌套定義新的類型。例如,可以定義記錄、鏈表、二叉樹等復(fù)雜的結(jié)構(gòu)類型。程序設(shè)計語言中的類型說明不僅僅是一種安全措施,還是一種重要的抽象機制。3、初始化程序設(shè)計中最常見的錯誤之一就是在使用變量之前沒有對變量進行初始化。為了減少發(fā)生錯誤的可能性,應(yīng)該強迫程序員對程序中所使用的變量進行初始化。另一個辦法是在說明變量時由系統(tǒng)給變量賦予一個特殊的標識,表明它尚未初始化,以后如果沒給這個變量賦值就企圖使用它,系統(tǒng)會發(fā)出信號。4、程序變量的局部性程序設(shè)計的一般原則是變量的名字應(yīng)該在靠近使用它的地方引入,并且應(yīng)該只有程序中真正需要它的那些部分才能夠它。通常有兩種提供局部變量的途徑:單層局部性和多層局部性。PROGRAM
TEST……PROCEDURE
A()VARARRAY
A[20],B[20]:INTEGER;WORK,I,J:INTEGER;BEGIN……………………END;PROCEDUREB()VARARRAY
A[20],B[20]:INTEGER;WORK,I,J:INTEGER;BEGIN……………………END;END.程序中過程A和B內(nèi)的變量是單層局部性的,兩個過程中
的變量的作用范圍局限于所在的過程。PROGRAM
TEST……PROCEDURE
A()VARARRAY
A[20],B[20]:INTEGER;WORK,I,J,K:INTEGER;PROCEDURE
B()VARARRAY
A[20],B[20]:INTEGER;WORK,I,J:INTEGER;BEGIN……………………END;BEGIN……………………END;…………程序的結(jié)構(gòu)是多層的,模塊A中的變量與模塊B中的變量除了變量K之外全部相同。內(nèi)層模塊B中有意義的變量是屬于該模塊的A[],B[],WORK,I,J和屬于外層模塊的變量K。要盡量避免內(nèi)層模塊與外層模塊定義相同的變量名,容易引起差錯,給
理解代碼帶來很多5、程序模塊獨立性結(jié)構(gòu)化語言提供了控制局部變量可見性的某些
,主要是在較內(nèi)層程序模塊中定義的變量不能被較外層的程序塊。由于動態(tài)分配的緣故,在兩次調(diào)用一個程序塊的間隔中不能夠保存局部變量的值。因此,即使只有一兩個子程序使用的變量,如果需要在兩次調(diào)用這些子程序的過程中保存這個變量的值,也必須把這個變量說明成全局的,這將增加時發(fā)生差錯的可能性。因此現(xiàn)在大多數(shù)語言提供了靜態(tài)變量,這種變量可以保存前次調(diào)用時的數(shù)據(jù),解決了多次調(diào)用一個模塊時局部變量不能保存的問題。6、循環(huán)結(jié)構(gòu)最常見的循環(huán)結(jié)構(gòu)有for語句、while-do語句和repeat-until語句,這些語言都是在循環(huán)體外判斷循環(huán)條件。有許多場合需要在循環(huán)體內(nèi)的任意一點測試循環(huán)結(jié)束條件,如果使用if-then-else語句和附加的布爾變量實現(xiàn)這個要求,則將增加程序長度并且降低程序的可讀性。某些程序設(shè)計語言考慮到上述要求,適當(dāng)?shù)亟鉀Q了這個問題。
exit{(標識符)}{when(條件)}這個語句把控制轉(zhuǎn)移到循環(huán)語句后面的一條語句或轉(zhuǎn)移到由標識符指定的語句上。7、分支結(jié)構(gòu)簡單的分支語句一般不會出現(xiàn)問題,但是多分支的case型語句注意以下2個問題:如果case表達式取的值不在預(yù)先指定的范圍內(nèi),需要用缺省方式處理。在某些程序設(shè)計語言中,由case表達式選定的執(zhí)行語句取決于所有可能執(zhí)行的語句排列順序,如果語句順序排列錯了,編譯和運行時系統(tǒng)是不會發(fā)現(xiàn)這類錯誤的。8、異常處理程序運行過程中發(fā)生的錯誤或意外事件稱為異常。以前大多數(shù)程序設(shè)計語言在檢測和處理異常方面幾乎沒有給程序員提供任何幫助,程序員只能使用條件控制檢測異常,在發(fā)生異常時把控制轉(zhuǎn)移到處理異常的程序段。但是,JAVA等一些語言提供了異常處理機制,程序員可以很容易地利用語言提供的異常處理機制實現(xiàn)錯誤和異常的處理操作。9、獨立編譯獨立編譯意味著能夠分別編譯各個程序單元,然后再把它們集成為一個完整的程序。一個大程序通常由許多程序單元組成,如果修改了其中任何一個程序單元都需要重新編譯整個程序,將大大增加程序開發(fā)、調(diào)試和的成本;反之,如果可以獨立編譯,則只需要重新編譯修改了的程序單元,然后重新連接整個程序即可。獨立編譯的機制對于開發(fā)大型系統(tǒng)極其重要。10、其它特性某些語言帶有一些特別的功能,這些功能可實現(xiàn)一些特殊的設(shè)計。如MODULA語言和并發(fā)PASCAL語言支持并發(fā)處理、以及必須彼此通信和協(xié)調(diào)的分布式進程。因此適應(yīng)并發(fā)的和分布式處理的要求。程序設(shè)計語言的特點-工程方面詳細設(shè)計能夠直接地翻譯成程序代碼。源程序的可移植性。改善
可移植性的主要途徑是使語言標準化。對于可移植性要求的,應(yīng)該嚴格遵守相應(yīng)的標準編寫程序代碼,不要圖一時的省事去使用語言的非標準特性。編譯程序效率較高。編譯程序首先應(yīng)該支持獨立編譯,并且能夠發(fā)現(xiàn)盡可能多的程序代碼錯誤,輔助程序員提高程序調(diào)試效率。盡可能應(yīng)用代碼生成工具。許多語言都有與它相應(yīng)的編譯程序、連接程序、調(diào)試程序、代碼格式化程序、交叉編譯程序、宏處理程序和標準子程序庫等。對于提高效率是明智的選擇。可
性。可性的前提是代碼的可理解性,源程序的可讀性、語言的文檔化特性是影響可
性的重要因素。程序設(shè)計語言的分類按語言級別分類,有低級語言和高級語言之分按照用戶要求,有過程式語言和非過程式語言之分按照應(yīng)用范圍,有通用語言和
語言之分按照使用方式,有交互式語言和非交互式語言之分按照成分性質(zhì),有順序語言、并發(fā)語言和分布式語言之分第四代語言,有數(shù)據(jù)庫查詢語言DEV2000、程序代碼生成器以及其他一些原型語言、形式化規(guī)格說明語言等等。選擇一種語言要考慮的因素在選擇與評價語言時,首先要從應(yīng)用要求入手,對比各項要求的相對重要性,然后再根據(jù)這些要求和相對重要性來選擇合適的編程語言。具體選擇的考慮:編程待開發(fā)的水平和編程經(jīng)歷的類型算法和計算復(fù)雜性數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性的開發(fā)成本和時間要求的可移植性要求可用的 工具的水平和編程經(jīng)歷。雖然程序員編程學(xué)
門新的語言并不,但是要熟練地掌握和精通一門語言是需要長期的實踐開發(fā)積累的。因此,在選擇語言時一定要考慮到時間限制和程序員掌握語言的程度,盡可能選擇一種程序員熟悉的語言。待開發(fā)的類型可能不同,一般分為數(shù)據(jù)庫應(yīng)用類、實時控制
、系統(tǒng)級、
等等。根據(jù)、人工智能的類型選擇合適的開發(fā)語言,例如,F(xiàn)ORTRAN語言適合科學(xué)計算,PowerBuilder、Delphi、C#等語言適合于信息系統(tǒng)的開發(fā),LISP、PROLOG語言適合于人工智能領(lǐng)域。算法和計算復(fù)雜性。待開發(fā)算法的復(fù)雜性不同,應(yīng)該選擇合適的語言,例如,科學(xué)計算領(lǐng)域大都選擇FORTRAN,因為它的運行性能比較好,但是計算機硬件的發(fā)展使得運算速度已不再成為瓶頸,因此許多計算型+語言。然而計算復(fù)雜度很高的普遍采用C/C+采用匯編語言、人工智能類的語言肯定是不合適的,前者編寫代碼的工作復(fù)雜度太高,后者的運行效率太低,并且這兩類語言的科學(xué)計算庫都很少,可復(fù)用的
元素較少。數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性。有些語言,例如FORTRAN、
BASIC語言,定義數(shù)據(jù)類型的能力非常差,一旦設(shè)計中有比較復(fù)雜的數(shù)據(jù)結(jié)構(gòu),程序員實現(xiàn)時會感到很棘手。而PASCAL、JAVA之類的語言其數(shù)據(jù)結(jié)構(gòu)描述能力非常強大,為程序員創(chuàng)造了一個很廣闊的編程空間。考慮的開發(fā)成本和時間要求。不僅要考慮當(dāng)前的開發(fā)成本,還要考慮今后的成本,如果選擇的語言很生僻,即使現(xiàn)在以很快的速度開發(fā)出來,將來的
工作量不得不考慮。
的可移植性要求。如果目標系統(tǒng)的運行環(huán)境不能確定,例如,可能運行在小型機的UNIX操作系統(tǒng)上,也可能運行在大型機的OS/400操作系統(tǒng)上,甚至還要運行在PC機的Windows操作系統(tǒng)環(huán)境中,這時選擇的開發(fā)語言最好是JAVA。這樣可以保證
的跨平臺運行。選擇語言時,特別是為大型選擇語言時,一定要考慮可用的工具。如果某種語言有支持開發(fā)的工具,則開發(fā)和調(diào)試都會容易。良好的編程良好的編程程序員編寫的代碼除了交給計算機運行外,還必須讓其他程序員或設(shè)計
能夠看懂。如果程序代碼的可讀性好,則調(diào)試和的成本就可以大幅度降低,同時可以減小程序運行期間
失效的可能性,提高程序的可靠性。對于代碼編寫而言,要求程序具有良好的結(jié)構(gòu)和風(fēng)格。結(jié)構(gòu)化程序設(shè)計原則盡量使用語言提供的基本控制結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)。利用塊機制將程序組織成容易識別的塊,每塊只有一個
和一個出口。復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)組合或嵌套實現(xiàn)。對于語言中沒有的控制結(jié)構(gòu),可用一段等價的程序段模擬,但要求該程序段在整個系統(tǒng)中應(yīng)前后一致嚴格控制GOTO語句。自頂向下、逐步細化在詳細設(shè)計和編碼階段,還應(yīng)當(dāng)采取自頂向下、逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,進而翻譯成一系列用某種程序設(shè)計語言寫成的程序。[例]用篩選法求100以內(nèi)的素數(shù)。具體做法就是從2到100中去掉2,3,…,9,10的倍數(shù),剩下的就是100以內(nèi)的素數(shù)。為了解決這個問題,可先按程序功能寫出一個框架。main(
){建立2到100的數(shù)組A[],其中A[i]=i;建立2到10的素數(shù)表B[],存放2到10以內(nèi)素數(shù);------1------2若A[i]=i是B[]中任意一個數(shù)的倍數(shù),則剔除A[i];------3輸出A[
]中所有沒有被剔除的數(shù);
------4}程序設(shè)計風(fēng)格基本要求可讀性要求正確性與容錯性要求可移植性要求輸入和輸出要求重用性要求面
象的程序設(shè)計風(fēng)格1)基本要求程序結(jié)構(gòu)清晰且簡單易懂,單個函數(shù)的行數(shù)一般不要超過100行。算法設(shè)計應(yīng)該簡單,代碼要精簡,避免出現(xiàn)程序。盡量使用標準庫函數(shù)(類方法)和公共函數(shù)(類方法)。最好使用括號以避免二義性。2)可讀性要求→注釋程序頭,函數(shù)頭說明:程序標題,該模塊功能說明,主要算法說明;接口說明:調(diào)用形式,參數(shù)描述;子程序
,有關(guān)數(shù)據(jù)的說明;模塊位置:在哪個源文件中,隸屬于哪一個
包;開發(fā)歷史:包括模塊設(shè)計者,復(fù)審者,復(fù)審日期,修改日期及有關(guān)說明等主要變量(結(jié)構(gòu)、聯(lián)合、類或?qū)ο?:含義的注釋。處理過程的每個階段和典型算法前都有相關(guān)注釋說明,但是不要對每條語句注釋。應(yīng)保持注釋與代碼完全一致。2)可讀性要求→格式程序格式清晰:一行只寫一條語句,一個程序如果寫得密密麻麻、分不出層次,是很難看懂的。利用空格、空行和縮進顯示程序的邏輯結(jié)構(gòu),縮進量為4個字節(jié)。(A<-17)AND
NOT(B<=49)OR
C寫成(A
<
-17)
AND NOT
(B
<=
49)OR
C對于嵌套的循環(huán)和分支程序,層次不要超過五層。2)可讀性要求→程序本身語句力求簡單、清晰,不要片面追求效率,程序編寫得過于緊湊,使語句復(fù)雜化。如:for
(i=1;
i<=n;
i++)for
(j=1;
j<=n;
j++)V[i][j]
=
(i/j)
*
(j/i)V是一個N×N單位矩陣,當(dāng)I≠J時,V(I,J)=0;當(dāng)I=J時,V(I,J)=1。這個程序構(gòu)思巧妙,但不易理解。如果改成下面的形式,更容易了解程序的意圖for
(i=1;
i<=n;
i++)for
(j=1;
j<=n;
j++)if
(i==j)V[i][j]
=
1;elseV[i][j]
=
0;2)可讀性要求→程序本身(續(xù))簡單變量的運算速度比下標(數(shù)組)變量的運算要快,程序員可能把語句:X=A[I]+1/A[I]寫成AI=
A[I];
X=AI+1/AI因為不必數(shù)組的下標變量,程序運行效率高,但把一個計算表達式拆成了多個,增加了理解的難度。一旦將來修改可能會改變這幾行代碼的順序或在其間其它語句,容易引入新的錯誤。2)可讀性要求→程序本身(續(xù))編程時盡可能使用已有的庫函數(shù)。盡量用公共過程或子程序代替具有獨立功能的重復(fù)代碼段,但是如果不具有獨立功能的代碼不要這樣做。使用括號清晰地表達算術(shù)表達式和邏輯表達式的運算順序。盡量使用三種基本控制結(jié)構(gòu)編寫程序,使用IFTHEN
ELSE結(jié)構(gòu)實現(xiàn)分支;使用DO
UNTIL或DOWHILE來實現(xiàn)循環(huán)。2)可讀性要求→程序本身(續(xù))避免采用過于復(fù)雜的條件測試,少用含有
“否定”運算符的條件語句,例如在程序中把:IF
NOT
((CHAR<=’0’)
OR
(CHAR>=’9’))
THEN
……改成IF(CHAR>’0’)
AND
(CHAR<’9’)
THEN
……2)可讀性要求→程序本身(續(xù))避免使用空的ELSE語句和IF
THEN
IF語句IF(CHAR>=’A’)
THENIF(CHAR<=’Z’)
THENPRINT“This
is
a
letter?!盓LSE//這個語句的配套IF邏輯上不明確PRINT
"This
is
not
a
letter?!?)可讀性要求→程序本身(續(xù))避免使用ELSE
GOTO和ELSE
RETURN結(jié)構(gòu)。避免過多的循環(huán)嵌套和條件嵌套。數(shù)據(jù)結(jié)構(gòu)要有利于程序的簡化。模塊功能盡可能單一化,模塊間的耦合能夠清晰可見。利用信息隱蔽確保每一個模塊的獨立性。對遞歸定義的數(shù)據(jù)結(jié)構(gòu)盡量使用遞歸過程。盡量不要修補結(jié)構(gòu)差的程序,而應(yīng)重新設(shè)計和編碼。對太大的程序,要分塊編寫、測試,然后再集成。2)可讀性要求→數(shù)據(jù)說明數(shù)據(jù)說明的先后次序規(guī)范化簡單變量類型說明、數(shù)組說明、公用數(shù)據(jù)塊說明、文件說明每個類型說明中可按如下順序排列整型量說明、實型量說明、字符量說明、邏輯量說明同一條說明語句中可按字母順序排列,例如INTEGER
cost,
length,
price,
width3)正確性與容錯性要求程序首先是正確,其次是考慮優(yōu)美和效率。對所有的用戶輸入,必須進行和有效性檢查。不要單獨進行浮點數(shù)的比較。在計算機中用二進制表示十進制數(shù)時,有時二進制數(shù)不能準確地表達十進制數(shù),這時浮點數(shù)的表示具有確性。用它們做比較,其結(jié)果常常發(fā)生異常情況。解決辦法是在嚴格的容差級范圍內(nèi)檢驗兩個值的差異,其形式為:|x0﹣x1|<ε
其中ε是容差級,其大小取決于具體應(yīng)用中的總體精度要求及所用數(shù)值的精度。3)正確性與容錯性要求(續(xù))所有變量在調(diào)用前必須被初始化。改一個錯誤時可能產(chǎn)生新的錯誤,因此在修改前首先考慮對其它程序的影響。單元測試也是編程的一部分,提交聯(lián)調(diào)測試的程序必須通過單元測試。單元測試時,必須針對類里的每一個public方法進試,測試其正確的輸入,是否得到正確的輸出;錯誤的輸入是否得到相應(yīng)的容錯處理(如異常捕捉處理,返回錯誤提示等)。4)可移植性要求應(yīng)當(dāng)盡量使用語言的標準部分,避免使用第提供的接口,以確保程序不受具體的運行環(huán)境影響,和平臺無關(guān)。對數(shù)據(jù)庫的操作,使用符合語言規(guī)范的標準接口類例如JDBC,除非程序是運行于特定的環(huán)境下,并且有很高的性能優(yōu)化方面的要求。程序中涉及到的數(shù)據(jù)庫定義和
語句,盡量使用標準SQL
數(shù)據(jù)類型和SQL
語句5)輸入和輸出要求任何程序都會有輸入輸出,輸入輸出的方式應(yīng)當(dāng)盡量方便用戶的使用。系統(tǒng)能否為用戶接受,很大程度上取決于輸入輸出的風(fēng)格。在需求分析和設(shè)計階段就應(yīng)確定基本的輸入輸出風(fēng)格,要避免因設(shè)計不當(dāng)帶來操作和理解的麻煩。5)輸入和輸出要求(續(xù))對所有的輸入數(shù)據(jù)進行檢驗,從而識別錯誤的輸入,以保證每個數(shù)據(jù)的有效性。檢查輸入項各種重要組合的合理性,必要
告輸入狀態(tài)信息。輸入的步驟和操作盡可能簡單,并且要保持簡單的輸入格式。有些輸入信息應(yīng)提供缺省值。輸入一批數(shù)據(jù)時,最好使用輸入結(jié)束標志,而不要由用戶指定輸入數(shù)據(jù)數(shù)目。5)輸入和輸出要求(續(xù))在以交互式方式進行輸入時,要在屏幕上顯示提示信息,說明輸入的選擇項和取值范圍,便于操作者輸入。同時,在輸入數(shù)據(jù)的過程和輸入數(shù)據(jù)結(jié)束時,也要在屏幕上給出狀態(tài)信息。當(dāng)程序設(shè)計語言對輸入格式有嚴格要求時,應(yīng)保持輸入格式與輸入語句的要求一致。給所有的輸出加上注解信息。按照用戶的要求設(shè)計輸出報表格式。6)重用性要求可重復(fù)使用的、功能相對獨立的算法或接口。應(yīng)該考慮封裝成公共的控件或類,如時間、日期處理,字符串格式處理,數(shù)據(jù)庫連接,文件讀寫等,以提高系統(tǒng)中程序的可復(fù)用性。相對固定和獨立的程序?qū)崿F(xiàn)方式和過程,應(yīng)考慮做成程序模板,增強對程序?qū)崿F(xiàn)方式的復(fù)用,如對符合一定規(guī)范的XML數(shù)據(jù)的解析等過程。程序的效率程序效率程序的效率是指程序的執(zhí)行速度及程序所需占用的內(nèi)存的度和節(jié)省空間。程序編碼是最后提高運行速的機會,因此在此階段不能不考慮程序的效率。
程序效率的幾條準則:效率是一個性能要求,應(yīng)當(dāng)在需求分析階段給出。軟件效率以需求為準,不應(yīng)以人力所及為準。好的設(shè)計可以提高效率。程序的效率與程序的簡單性相關(guān)。
一般說來,任何對效率無重要改善,且對程序的簡單性、可讀性和正確性不利的程序設(shè)計方法都是不可取的。算法對效率的影響源程序的效率與詳細設(shè)計階段確定的算法的效率直接有關(guān)。在詳細設(shè)計翻譯轉(zhuǎn)換成源程序代碼后,算法效率反映為程序的執(zhí)行速度和容量的要求。設(shè)計向程序轉(zhuǎn)換過程中的指導(dǎo)原則①在編程序前,盡可能化簡有關(guān)的算術(shù)表達式和邏輯表達式;②仔細檢查算法中的嵌套的循環(huán),盡
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年09月江蘇2024年江蘇寶應(yīng)農(nóng)村商業(yè)銀行校園招考筆試歷年參考題庫附帶答案詳解
- 二零二五年房企論壇承辦與宣傳物料制作合同3篇
- 2024年09月江蘇2024年華夏銀行南京分行校園招考筆試歷年參考題庫附帶答案詳解
- 二零二五年度農(nóng)業(yè)科技項目合作民間借款合同參考格式4篇
- 2024年08月烏海銀行股份有限公司社會招考信貸人員筆試歷年參考題庫附帶答案詳解
- 二零二五年度苗圃苗木種植基地?zé)o人機植保服務(wù)合同4篇
- 2021-2026年中國平衡供暖市場供需現(xiàn)狀及投資戰(zhàn)略研究報告
- 2024年05月甘肅光大銀行蘭州分行社會招考(512)筆試歷年參考題庫附帶答案詳解
- 二零二五版電子書版權(quán)采購合同標準書2篇
- 黑龍江2024年黑龍江日報報業(yè)集團招聘20人筆試歷年參考題庫附帶答案詳解
- 專升本英語閱讀理解50篇
- 施工單位值班人員安全交底和要求
- 中國保險用戶需求趨勢洞察報告
- 數(shù)字化轉(zhuǎn)型指南 星展銀行如何成為“全球最佳銀行”
- 中餐烹飪技法大全
- 靈芝孢子油減毒作用課件
- 現(xiàn)場工藝紀律檢查表
- 醫(yī)院品管圈與護理質(zhì)量持續(xù)改進PDCA案例降低ICU病人失禁性皮炎發(fā)生率
- 新型電力系統(tǒng)研究
- 烘干廠股東合作協(xié)議書
- 法院服務(wù)外包投標方案(技術(shù)標)
評論
0/150
提交評論