![程序設(shè)計(jì)語(yǔ)言和編碼_第1頁(yè)](http://file4.renrendoc.com/view/a0190486e83d3266c2c5981cba63cfe2/a0190486e83d3266c2c5981cba63cfe21.gif)
![程序設(shè)計(jì)語(yǔ)言和編碼_第2頁(yè)](http://file4.renrendoc.com/view/a0190486e83d3266c2c5981cba63cfe2/a0190486e83d3266c2c5981cba63cfe22.gif)
![程序設(shè)計(jì)語(yǔ)言和編碼_第3頁(yè)](http://file4.renrendoc.com/view/a0190486e83d3266c2c5981cba63cfe2/a0190486e83d3266c2c5981cba63cfe23.gif)
![程序設(shè)計(jì)語(yǔ)言和編碼_第4頁(yè)](http://file4.renrendoc.com/view/a0190486e83d3266c2c5981cba63cfe2/a0190486e83d3266c2c5981cba63cfe24.gif)
![程序設(shè)計(jì)語(yǔ)言和編碼_第5頁(yè)](http://file4.renrendoc.com/view/a0190486e83d3266c2c5981cba63cfe2/a0190486e83d3266c2c5981cba63cfe25.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)語(yǔ)言和編碼第一頁(yè),共五十八頁(yè),2022年,8月28日編碼階段的任務(wù)是根據(jù)詳細(xì)設(shè)計(jì)說(shuō)明書編寫程序程序設(shè)計(jì)語(yǔ)言的特性和程序設(shè)計(jì)風(fēng)格會(huì)深刻地影響軟件的質(zhì)量和可維護(hù)性為了保證程序編碼的質(zhì)量,程序員必須深刻理解、熟練掌握并正確地運(yùn)用程序設(shè)計(jì)語(yǔ)言的特性此外,還要求源程序具有良好的結(jié)構(gòu)性和良好的程序設(shè)計(jì)風(fēng)格2第二頁(yè),共五十八頁(yè),2022年,8月28日內(nèi)容摘要程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)風(fēng)格3第三頁(yè),共五十八頁(yè),2022年,8月28日內(nèi)容摘要程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)風(fēng)格4第四頁(yè),共五十八頁(yè),2022年,8月28日基本概念程序設(shè)計(jì)語(yǔ)言是指用于書寫計(jì)算機(jī)程序的語(yǔ)言,它是一種實(shí)現(xiàn)性的軟件語(yǔ)言語(yǔ)法(syntax)用來(lái)表示構(gòu)成語(yǔ)言的各個(gè)記號(hào)之間的組合規(guī)則,它是構(gòu)成語(yǔ)言結(jié)構(gòu)正確成分所需遵循的規(guī)則集合如C語(yǔ)言中for語(yǔ)句的構(gòu)成規(guī)則是:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語(yǔ)句
語(yǔ)法中不涉及到這些記號(hào)的含義,也不涉及使用者5第五頁(yè),共五十八頁(yè),2022年,8月28日語(yǔ)義(semantic)用來(lái)表示按照各種表示方式所表示的各個(gè)記號(hào)的特定含義,但它不涉及到使用者。
如上述for語(yǔ)句中:表達(dá)式1表示循環(huán)初值;表達(dá)式2表示循環(huán)條件;表達(dá)式3表示循環(huán)的增量;語(yǔ)句為循環(huán)體。整個(gè)語(yǔ)句的語(yǔ)義是:(1)計(jì)算表達(dá)式1(2)計(jì)算表達(dá)式2,若計(jì)算結(jié)果為0,則終止循環(huán);否則轉(zhuǎn)(3)(3)執(zhí)行循環(huán)體(4)計(jì)算表達(dá)式3(5)轉(zhuǎn)向(2)6第六頁(yè),共五十八頁(yè),2022年,8月28日語(yǔ)用(pragmatic)用來(lái)表示構(gòu)成語(yǔ)言的各個(gè)記號(hào)和使用者的關(guān)系。如:語(yǔ)言是否允許遞歸?是否要規(guī)定遞歸層數(shù)的上界?這種上界如何確定?這些都屬于語(yǔ)用上的問(wèn)題。7第七頁(yè),共五十八頁(yè),2022年,8月28日程序設(shè)計(jì)語(yǔ)言的基本成分程序設(shè)計(jì)語(yǔ)言基本成份可歸納為四種:數(shù)據(jù)成分、運(yùn)算成分、控制成分、傳輸成分?jǐn)?shù)據(jù)成分:它指明該語(yǔ)言能接受的數(shù)據(jù),用來(lái)描述程序中的數(shù)據(jù)。如各種類型的變量、數(shù)組、指針、記錄等。作為程序操作的對(duì)象,具有名稱、類型和作用域等特征。使用前要對(duì)數(shù)據(jù)的這些特征加以說(shuō)明。數(shù)據(jù)名稱由用戶通過(guò)標(biāo)識(shí)符命名,類型說(shuō)明數(shù)據(jù)需占用存儲(chǔ)單元的多少和存放形式,作用域說(shuō)明數(shù)據(jù)可以使用的范圍。8第八頁(yè),共五十八頁(yè),2022年,8月28日以C語(yǔ)言為例,其數(shù)據(jù)構(gòu)造方式可分為基本類型和派生類型
9第九頁(yè),共五十八頁(yè),2022年,8月28日運(yùn)算成分:它指明該語(yǔ)言允許執(zhí)行的運(yùn)算,用來(lái)描述程序中所需進(jìn)行的運(yùn)算。如+、-、*、/等??刂瞥煞郑核该髟撜Z(yǔ)言允許的控制結(jié)構(gòu),人們可利用這些控制成分來(lái)構(gòu)造程序中的控制邏輯?;镜目刂瞥煞职ǎ喉樞蚪Y(jié)構(gòu)、條件選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)。如下頁(yè)圖10第十頁(yè),共五十八頁(yè),2022年,8月28日基本程序控制結(jié)構(gòu)11第十一頁(yè),共五十八頁(yè),2022年,8月28日傳輸成分:它指明該語(yǔ)言允許的數(shù)據(jù)傳輸方式,在程序中可用它進(jìn)行數(shù)據(jù)傳輸。例如:TurboC語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供了兩個(gè)控制臺(tái)格式化輸入、輸出函數(shù)printf()和scanf(),這兩個(gè)函數(shù)可以在標(biāo)準(zhǔn)輸入輸出設(shè)備上以各種不同的格式讀寫數(shù)據(jù)。Printf()函數(shù)用來(lái)向標(biāo)準(zhǔn)輸出設(shè)備(屏幕)寫數(shù)據(jù),scanf()函數(shù)用來(lái)從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)上讀數(shù)據(jù)。12第十二頁(yè),共五十八頁(yè),2022年,8月28日程序設(shè)計(jì)語(yǔ)言的特性心理特性從設(shè)計(jì)到編碼的轉(zhuǎn)換基本上是人的活動(dòng),因此,語(yǔ)言的性能對(duì)程序員的心理影響將對(duì)轉(zhuǎn)換產(chǎn)生重大影響在維持現(xiàn)有機(jī)器的效率、容量和其它硬件限制條件的前提下,程序員總希望選擇簡(jiǎn)單易學(xué)、使用方便的語(yǔ)言,以減少程序出錯(cuò)率,提高軟件可靠性,從而提高用戶對(duì)軟件質(zhì)量的可信度13第十三頁(yè),共五十八頁(yè),2022年,8月28日
影響程序員心理的語(yǔ)言特性有:一致性:指語(yǔ)言采用的標(biāo)記法(使用的符號(hào))協(xié)調(diào)一致的程度。如,一符多用的標(biāo)記法容易導(dǎo)致錯(cuò)誤。二義性:對(duì)語(yǔ)句不同理解所產(chǎn)生的二義性將導(dǎo)致程序員對(duì)程序理解的混亂。如,
ifthenifthenelsex:=a**b**c14第十四頁(yè),共五十八頁(yè),2022年,8月28日緊致性(compactness):指程序員必須記憶的與編碼有關(guān)的信息總量。刻畫緊致性的指標(biāo)有:對(duì)結(jié)構(gòu)化部件的支持程度,可用關(guān)鍵字和縮寫的種類,算術(shù)及邏輯操作符的數(shù)目,預(yù)定義函數(shù)的個(gè)數(shù)等。局部性:程序由模塊組成,應(yīng)采用高內(nèi)聚低耦合、模塊獨(dú)立、局部化等原則。線性:人們習(xí)慣于按邏輯上線性的次序理解程序,程序中大量的分支和循環(huán)、隨意的GOTO語(yǔ)句會(huì)破壞程序的線性,提倡結(jié)構(gòu)化程序設(shè)計(jì)。15第十五頁(yè),共五十八頁(yè),2022年,8月28日傳統(tǒng)性:傳統(tǒng)性容易影響人們學(xué)習(xí)新語(yǔ)種的積極性16第十六頁(yè),共五十八頁(yè),2022年,8月28日工程特性程序設(shè)計(jì)語(yǔ)言的特性影響人們思考程序的方式,從而也限制了人們與計(jì)算機(jī)進(jìn)行通信的方式。為滿足軟件工程的需要,程序設(shè)計(jì)語(yǔ)言還應(yīng)該考慮:將設(shè)計(jì)翻譯成代碼的便利程度、編譯器的效率、源代碼的可移植性、配套的開(kāi)發(fā)工具、軟件的可復(fù)用性和可維護(hù)性。17第十七頁(yè),共五十八頁(yè),2022年,8月28日將設(shè)計(jì)翻譯成代碼的便利程度:語(yǔ)言若直接支持結(jié)構(gòu)化部件、復(fù)雜的數(shù)據(jù)結(jié)構(gòu)、特殊I/O處理、按位操作和OO方法,則便于將設(shè)計(jì)轉(zhuǎn)換成代碼。編譯器的效率:編譯器應(yīng)生成效率高的代碼源代碼的可移植性:語(yǔ)言的標(biāo)準(zhǔn)化有助于提高程序代碼的可移植性,源程序中應(yīng)盡量不用標(biāo)準(zhǔn)文本以外的語(yǔ)句。18第十八頁(yè),共五十八頁(yè),2022年,8月28日配套的開(kāi)發(fā)工具:CASE工具可減少編碼時(shí)間,提高代碼質(zhì)量。盡可能使用工具和程序設(shè)計(jì)支撐環(huán)境??蓮?fù)用性:指編程語(yǔ)言能否提供可復(fù)用的軟件成分,復(fù)用時(shí)需要修改調(diào)整的內(nèi)容多少可維護(hù)性:包括可理解性、可測(cè)試性、可修改性。源程序的可讀性和文檔化特性是影響可維護(hù)性的重要因素。19第十九頁(yè),共五十八頁(yè),2022年,8月28日應(yīng)用特性不同的程序設(shè)計(jì)語(yǔ)言滿足不同的技術(shù)特性,可以對(duì)應(yīng)于不同的應(yīng)用。例如Prolog語(yǔ)言適用于人工智能領(lǐng)域、SQL語(yǔ)言適用于關(guān)系數(shù)據(jù)庫(kù)。語(yǔ)言的技術(shù)特性對(duì)軟件工程各階段有一定的影響,特別是確定了軟件需求之后,程序設(shè)計(jì)語(yǔ)言的特性就很重要了,要根據(jù)不同項(xiàng)目的特性選擇相應(yīng)特性的語(yǔ)言。20第二十頁(yè),共五十八頁(yè),2022年,8月28日程序設(shè)計(jì)語(yǔ)言的發(fā)展和分類程序設(shè)計(jì)語(yǔ)言的分類按語(yǔ)言級(jí)別:低級(jí)語(yǔ)言和高級(jí)語(yǔ)言;按應(yīng)用范圍:通用語(yǔ)言和專用語(yǔ)言;按用戶要求:過(guò)程式語(yǔ)言和非過(guò)程式語(yǔ)言;按語(yǔ)言所含的成分:順序語(yǔ)言、并發(fā)語(yǔ)言和分布式語(yǔ)言21第二十一頁(yè),共五十八頁(yè),2022年,8月28日程序設(shè)計(jì)語(yǔ)言的發(fā)展史第一代語(yǔ)言:機(jī)器語(yǔ)言和匯編語(yǔ)言第二代語(yǔ)言:早期的高級(jí)語(yǔ)言,如BASIC,F(xiàn)ORTRAN,COBOL等第三代語(yǔ)言:具有很強(qiáng)的數(shù)據(jù)結(jié)構(gòu)和過(guò)程描述能力,支持結(jié)構(gòu)化編程,如Pascal,Modula,C,Ada等第四代語(yǔ)言(4GL):這類語(yǔ)言出現(xiàn)于七十年代,其目的是為了提高程序開(kāi)發(fā)速度,以及讓非專業(yè)用戶能直接編制計(jì)算機(jī)程序22第二十二頁(yè),共五十八頁(yè),2022年,8月28日第四代語(yǔ)言的特點(diǎn):對(duì)用戶友善,一般用類自然語(yǔ)言、圖形或表格等描述方式,普通用戶很容易掌握多數(shù)與數(shù)據(jù)庫(kù)系統(tǒng)相結(jié)合,可直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作對(duì)許多應(yīng)用功能均有默認(rèn)的假設(shè),用戶不必詳細(xì)說(shuō)明每一件事情的做法程序碼長(zhǎng)度及獲得結(jié)果的時(shí)間與使用COBOL語(yǔ)言相比約少一個(gè)數(shù)量級(jí)支持結(jié)構(gòu)化編程,易于理解和維護(hù)23第二十三頁(yè),共五十八頁(yè),2022年,8月28日
目前,第四代語(yǔ)言的種類繁多,尚無(wú)標(biāo)準(zhǔn),在語(yǔ)法和能力上有很大差異,其中一些支持非過(guò)程式編程,更多的是既含有非過(guò)程語(yǔ)句,也含有過(guò)程語(yǔ)句。典型的4GL有:數(shù)據(jù)庫(kù)查詢語(yǔ)言、報(bào)表生成程序、應(yīng)用生成程序、電子表格、圖形語(yǔ)言等。多數(shù)4GL是面向領(lǐng)域的,很少是通用的。24第二十四頁(yè),共五十八頁(yè),2022年,8月28日
自然語(yǔ)言最理想的是可以使用自然語(yǔ)言(如英語(yǔ)、法語(yǔ)或漢語(yǔ)),使計(jì)算機(jī)能理解并立即執(zhí)行請(qǐng)求。但迄今為止,自然語(yǔ)言理解仍然是計(jì)算機(jī)科學(xué)研究中的一個(gè)難點(diǎn),盡管在實(shí)驗(yàn)室的研究中取得了一定的成果,但在現(xiàn)實(shí)中的應(yīng)用仍然是相當(dāng)有限的。
25第二十五頁(yè),共五十八頁(yè),2022年,8月28日程序設(shè)計(jì)語(yǔ)言的選擇為一個(gè)特定的開(kāi)發(fā)項(xiàng)目選擇編程語(yǔ)言時(shí),通常要考慮如下因素:應(yīng)用領(lǐng)域算法和計(jì)算復(fù)雜性軟件運(yùn)行環(huán)境用戶需求,特別是性能需求數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性軟件開(kāi)發(fā)人員的知識(shí)水平可用的編譯器與交叉編譯器26第二十六頁(yè),共五十八頁(yè),2022年,8月28日項(xiàng)目所屬的應(yīng)用領(lǐng)域常常是首要的標(biāo)準(zhǔn)COBOL適用于商業(yè)領(lǐng)域FORTRAN適用于工程和科學(xué)計(jì)算領(lǐng)域Prolog、Lisp適用于人工智能領(lǐng)域Smalltalk、C++適用于OO系統(tǒng)的開(kāi)發(fā)有些語(yǔ)言適用于多個(gè)應(yīng)用領(lǐng)域,如C若有多種語(yǔ)言都適合于某項(xiàng)目的開(kāi)發(fā)時(shí),也可考慮選擇開(kāi)發(fā)人員比較熟悉的語(yǔ)言27第二十七頁(yè),共五十八頁(yè),2022年,8月28日選擇高級(jí)語(yǔ)言還是低級(jí)語(yǔ)言優(yōu)先選擇高級(jí)語(yǔ)言開(kāi)發(fā)和維護(hù)高級(jí)語(yǔ)言程序比開(kāi)發(fā)和維護(hù)低級(jí)語(yǔ)言程序容易得多必要時(shí)使用低級(jí)語(yǔ)言高級(jí)語(yǔ)言程序經(jīng)編譯后所產(chǎn)生的目標(biāo)程序的功效要比完成相同功能的低級(jí)語(yǔ)言程序低得多,所以在有些情況下會(huì)部分或全部使用低級(jí)語(yǔ)言28第二十八頁(yè),共五十八頁(yè),2022年,8月28日
使用低級(jí)語(yǔ)言的情況:對(duì)運(yùn)行時(shí)間和存儲(chǔ)空間有過(guò)高要求的項(xiàng)目,如電子筆記本中的軟件在某些不能提供高級(jí)語(yǔ)言編譯程序的計(jì)算機(jī)上開(kāi)發(fā)程序,如單片機(jī)上的軟件大型系統(tǒng)中對(duì)系統(tǒng)執(zhí)行時(shí)間起關(guān)鍵作用的模塊29第二十九頁(yè),共五十八頁(yè),2022年,8月28日內(nèi)容摘要程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)風(fēng)格30第三十頁(yè),共五十八頁(yè),2022年,8月28日程序設(shè)計(jì)風(fēng)格編程的依據(jù)是詳細(xì)設(shè)計(jì)的結(jié)果,因此程序的質(zhì)量主要取決于設(shè)計(jì),但編程的質(zhì)量也在很大程度上影響著程序的質(zhì)量編程風(fēng)格主要包括:源程序中的內(nèi)部文檔數(shù)據(jù)說(shuō)明語(yǔ)句構(gòu)造輸入/輸出31第三十一頁(yè),共五十八頁(yè),2022年,8月28日源程序文檔化在源程序中可包含一些內(nèi)部文檔,以幫助閱讀和理解源程序在源程序中的內(nèi)部文檔主要包括:標(biāo)識(shí)符的命名注解程序的視覺(jué)組織32第三十二頁(yè),共五十八頁(yè),2022年,8月28日標(biāo)識(shí)符的命名選擇含義明確的名字,使其能正確提示標(biāo)識(shí)符所代表的實(shí)體例如,表示總量的變量名用Total,表示平均值的用Average等名字不要太長(zhǎng),太長(zhǎng)會(huì)增加打字量,且易出錯(cuò)。必要時(shí)可使用縮寫不用相似的名字,相似的名字容易混淆,不易發(fā)現(xiàn)錯(cuò)誤如cm,cn,cmn,cnm,cnn,cmm33第三十三頁(yè),共五十八頁(yè),2022年,8月28日不用關(guān)鍵字作標(biāo)識(shí)符同一個(gè)名字不要有多個(gè)含義名字中避免使用易混淆的字符。如數(shù)字0與字母O;數(shù)字1與字母I或l;數(shù)字2與字母z等34第三十四頁(yè),共五十八頁(yè),2022年,8月28日程序的注釋程序中的注解用來(lái)幫助人們理解程序,決不是可有可無(wú)的一些正規(guī)的程序文本中,注解行的數(shù)量約占整個(gè)源程序的1/3到1/2,甚至更多注解分為序言性注解和功能性注解35第三十五頁(yè),共五十八頁(yè),2022年,8月28日通常置于每個(gè)程序模塊的開(kāi)頭部分,主要描述:模塊的功能模塊的接口:包括調(diào)用格式、參數(shù)的解釋、該模塊需要調(diào)用的其它子模塊名重要的局部變量:包括用途、約束和限制條件開(kāi)發(fā)歷史:包括模塊的設(shè)計(jì)者、評(píng)審者、評(píng)審日期、修改日期以及對(duì)修改的描述序言性注釋36第三十六頁(yè),共五十八頁(yè),2022年,8月28日通常嵌在源程序體內(nèi),主要描述程序段的功能。書寫功能性注解時(shí)應(yīng)注意的問(wèn)題:注解要正確,錯(cuò)誤的注解比沒(méi)有注解更壞;為程序段作注解,而不是為每一個(gè)語(yǔ)句作注解;用縮進(jìn)和空行,使程序與注釋容易區(qū)分;注解應(yīng)提供一些從程序本身難以得到的信息,而不是語(yǔ)句的重復(fù)。功能性注釋37第三十七頁(yè),共五十八頁(yè),2022年,8月28日例如,下面的模塊級(jí)注釋描述了公共的和私有的過(guò)程(在類模塊中稱為“方法”)、屬性及其數(shù)據(jù)類型,以及如何將該類作為對(duì)象來(lái)使用的有關(guān)信息:公共方法:
MailAddRecipient(strNameAsString,OptionalfTypeAsBoolean)strName://要加入到郵件中的收件人名稱。
fType:OutlookMailItemType//屬性設(shè)置。
SendMail(OptionalblnShowMailFirstAsBoolean)blnShowMailFirst://發(fā)送前是否顯示Outlook郵件信息。如果不能解析收件人的地址,讓代碼將它設(shè)置為True。
私有方法:
InitializeOutlook()CreateMail()
公共屬性:
MailSubject:(Writeonly,String)MailMessage:(Writeonly,String)MailAttachments:(Writeonly,String)38第三十八頁(yè),共五十八頁(yè),2022年,8月28日通過(guò)在程序中添加一些空格、空行和縮進(jìn)等技巧,幫助人們從視覺(jué)上看清程序的結(jié)構(gòu)例如,通過(guò)縮進(jìn)技巧可清晰地觀察到程序的嵌套層次,同時(shí)還容易發(fā)現(xiàn)諸如“遺漏end”那樣的錯(cuò)誤視覺(jué)組織39第三十九頁(yè),共五十八頁(yè),2022年,8月28日
IF(…)THEN
IF(…)THEN
……
ELSE
……
ENDIF
……
ELSE
……
ENDIF40第四十頁(yè),共五十八頁(yè),2022年,8月28日自然的程序段之間可用空行隔開(kāi)可通過(guò)添加空格使語(yǔ)句成分清晰,如
(A<-17)ANDNOT(B<=49)ORC
可寫成
(A<-17)ANDNOT(B<=49)ORC也可以通過(guò)添加括號(hào)突出運(yùn)算的優(yōu)先級(jí),避免發(fā)生運(yùn)算的錯(cuò)誤,如
a**(b**c)41第四十一頁(yè),共五十八頁(yè),2022年,8月28日放置大括號(hào)一般首選的方法是K&R方法:把左括號(hào)放在行尾,右括號(hào)放在行首。如:if
(X)
{Y}定義函數(shù)時(shí)應(yīng)當(dāng)把左右括號(hào)都放在行首,如:int
F(int
x){//}注意,右括號(hào)所在的行不應(yīng)當(dāng)有其它語(yǔ)句,除非跟隨著一個(gè)條件判斷。也就是do-while語(yǔ)句中的“while”和if-else語(yǔ)句中的“else”。例如:do
{body
of
do-loop}
while
(condition);if
(x
==
y)
{…}
else
if
(x
>
y)
{...}
else
{…}42第四十二頁(yè),共五十八頁(yè),2022年,8月28日數(shù)據(jù)說(shuō)明為了使程序中數(shù)據(jù)說(shuō)明更易于理解和維護(hù),可采用以下風(fēng)格:數(shù)據(jù)說(shuō)明的次序應(yīng)當(dāng)規(guī)范化說(shuō)明語(yǔ)句中變量安排有序化使用注解說(shuō)明復(fù)雜數(shù)據(jù)結(jié)構(gòu)43第四十三頁(yè),共五十八頁(yè),2022年,8月28日數(shù)據(jù)說(shuō)明的次序應(yīng)當(dāng)規(guī)范化數(shù)據(jù)說(shuō)明次序規(guī)范化,使數(shù)據(jù)屬性容易查找,也有利于測(cè)試,排錯(cuò)和維護(hù)原則上,數(shù)據(jù)說(shuō)明的次序與語(yǔ)法無(wú)關(guān),其次序是任意的。但出于閱讀、理解和維護(hù)的需要,最好使其規(guī)范化,使說(shuō)明的先后次序固定44第四十四頁(yè),共五十八頁(yè),2022年,8月28日說(shuō)明語(yǔ)句中變量安排有序化當(dāng)多個(gè)變量名在一個(gè)說(shuō)明語(yǔ)句中說(shuō)明時(shí),可以將這些變量按字母的順序排列,以便于查找45第四十五頁(yè),共五十八頁(yè),2022年,8月28日使用注釋說(shuō)明復(fù)雜數(shù)據(jù)結(jié)構(gòu)如果設(shè)計(jì)了一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),應(yīng)當(dāng)使用注釋來(lái)說(shuō)明在程序?qū)崿F(xiàn)時(shí)這個(gè)數(shù)據(jù)結(jié)構(gòu)的固有特點(diǎn)例如用戶自定義的數(shù)據(jù)類型,應(yīng)當(dāng)在注釋中做必要的補(bǔ)充說(shuō)明46第四十六頁(yè),共五十八頁(yè),2022年,8月28日語(yǔ)句構(gòu)造編碼階段的主要任務(wù)就是書寫程序語(yǔ)句。有關(guān)書寫語(yǔ)句的原則有幾十種,總起來(lái)說(shuō),希望每條語(yǔ)句盡可能簡(jiǎn)單明了,能直截了當(dāng)?shù)胤从吵绦騿T的意圖,不能為了片面追求效率而使語(yǔ)句復(fù)雜化。常用的規(guī)則如下:47第四十七頁(yè),共五十八頁(yè),2022年,8月28日1.在一行內(nèi)只寫一條語(yǔ)句在一行內(nèi)只寫一條語(yǔ)句,并且采取適當(dāng)添加空格的辦法,使程序的邏輯和功能變得更加明確。許多程序設(shè)計(jì)語(yǔ)言允許在一行內(nèi)寫多個(gè)語(yǔ)句。但這種方式會(huì)使程序可讀性變差。因而不可取。48第四十八頁(yè),共五十八頁(yè),2022年,8月28日2.程序編寫首先應(yīng)當(dāng)考慮清晰性程序編寫首先應(yīng)當(dāng)考慮清晰性,不要刻意追求技巧性,使程序編寫得過(guò)于緊湊。例如,有一個(gè)用C語(yǔ)句寫出的程序段:
A[I]=A[I]+A[T];
A[T]=A[I]-A[T];
A[I]=A[I]-A[T];49第四十九頁(yè),共五十八頁(yè),2022年,8月28日
此段程序可能不易看懂,有時(shí)還需用實(shí)際數(shù)據(jù)試驗(yàn)一下。實(shí)際上,這段程序的功能就是交換A[I]和A[T]中的內(nèi)容。目的是為了節(jié)省一個(gè)工作單元。如果改一下:
WORK=A[T];
A[T]=A[I];
A[I]=WORK;
就能讓讀者一目了然了。50第五十頁(yè),共五十八頁(yè),2022年,8月28日3.程序要能直截了當(dāng)?shù)卣f(shuō)明程序員的用意。程序編寫得要簡(jiǎn)單,寫清楚,直截了當(dāng)?shù)卣f(shuō)明程序員的用意。例如,
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
V[i][j]=(i/j)*(j/i)
除法運(yùn)算(/)在除數(shù)和被除數(shù)都是整型量時(shí),其結(jié)果只取整數(shù)部分,而得到整型量。51第五十一頁(yè),共五十八頁(yè),2022年,8月28日
當(dāng)i<j時(shí),i/j=0
當(dāng)j<i時(shí),j/i=0
得到的數(shù)組當(dāng)i≠j時(shí)
V[i][j]=(i/j)*(j/i)=0
當(dāng)i=j(luò)時(shí)
V[i][j]=(i/j)*(j/i)=1這樣得到的結(jié)果V是一個(gè)單位矩陣。52第五十二頁(yè),共五十八頁(yè),2022年,8月28日寫成以下的形式,就能讓讀者直接了解程序編寫者的意圖。
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j)
V[i][j]=1.0;
ELSE
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 團(tuán)知識(shí)競(jìng)賽活動(dòng)方案8篇
- 2025年醫(yī)療委托服務(wù)協(xié)議樣本
- 上海市松江區(qū)汽車租賃服務(wù)合同模板
- 2025年冬季供暖系統(tǒng)承包協(xié)議
- 2025年經(jīng)營(yíng)權(quán)讓渡協(xié)議第十七案
- 2025年寫字樓租賃合同續(xù)租協(xié)議書
- 2025年砂洗機(jī)項(xiàng)目申請(qǐng)報(bào)告模稿
- 2025年醫(yī)師專業(yè)技能提升合作協(xié)議書范本
- 2025年藥效學(xué)研究服務(wù)項(xiàng)目申請(qǐng)報(bào)告
- 2025年鄉(xiāng)村住宅修建工程協(xié)議
- 建筑基坑工程監(jiān)測(cè)技術(shù)標(biāo)準(zhǔn)
- 2024年廣東汕尾市“奔向海陸豐”事業(yè)單位(綜合崗類)招聘工作人員176人歷年高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 【2024高考萬(wàn)能答題模版】數(shù)學(xué)答題模板1
- DG-TJ 08-2242-2023 民用建筑外窗應(yīng)用技術(shù)標(biāo)準(zhǔn)
- 2024-2025上期學(xué)校心理健康教育工作計(jì)劃(附每周工作安排)
- 【中考真題】2024年河南省普通高中招生考試歷史試卷(含答案)
- YYT 0653-2017 血液分析儀行業(yè)標(biāo)準(zhǔn)
- JT-T-445-2021汽車底盤測(cè)功機(jī)
- 高考英語(yǔ)經(jīng)常用的七百個(gè)詞匯
- 不定代詞用法總結(jié)及配套練習(xí)題
- 糖尿病孕婦護(hù)理:案例分析
評(píng)論
0/150
提交評(píng)論