版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章程序設(shè)計(jì)語(yǔ)言和編碼教學(xué)目標(biāo)與要求理解編碼階段的主要任務(wù)掌握程序設(shè)計(jì)語(yǔ)言的類別掌握結(jié)構(gòu)化程序設(shè)計(jì)的主要原則掌握注釋的兩種類型了解程序設(shè)計(jì)風(fēng)格第7章程序設(shè)計(jì)語(yǔ)言和編碼教學(xué)重點(diǎn)與難點(diǎn)理解編碼階段的主要任務(wù)掌握結(jié)構(gòu)化程序設(shè)計(jì)的主要原則了解程序設(shè)計(jì)風(fēng)格第7章程序設(shè)計(jì)語(yǔ)言和編碼做為軟件工程過(guò)程的一個(gè)階段,程序編碼是設(shè)計(jì)的繼續(xù)。編碼是在詳細(xì)設(shè)計(jì)的基礎(chǔ)上進(jìn)行的,其主要任務(wù)是將軟件的詳細(xì)設(shè)計(jì)轉(zhuǎn)換成用程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)的程序代碼,也就是根據(jù)詳細(xì)設(shè)計(jì)階段給出的程序邏輯結(jié)構(gòu)的描述,選擇某種計(jì)算機(jī)能夠接受的程序語(yǔ)言,按照編程規(guī)范,編寫(xiě)出高質(zhì)量的、具有一致性、可移植性、可維護(hù)性和高效率的程序代碼。程序設(shè)計(jì)語(yǔ)言的性能和設(shè)計(jì)風(fēng)格對(duì)于程序設(shè)計(jì)的效能和質(zhì)量有著直接的關(guān)系。7.1程序設(shè)計(jì)語(yǔ)言
7.1.1語(yǔ)言類別
1.機(jī)器語(yǔ)言——第一代語(yǔ)言機(jī)器語(yǔ)言是計(jì)算機(jī)硬件系統(tǒng)能夠識(shí)別、執(zhí)行的一組指令。用這種語(yǔ)言編寫(xiě)的程序,都是二進(jìn)制代碼的形式,且所有的地址分配都是以絕對(duì)地址的形式處理。存儲(chǔ)空間的安排,寄存器、變址的使用都由程序員計(jì)劃。對(duì)于不同的機(jī)器就有相應(yīng)的一套機(jī)器語(yǔ)言。優(yōu)點(diǎn):執(zhí)行效率高,速度快;缺點(diǎn):不易編制、不易理解,出錯(cuò)率高。b6b5b401234567b3b2b1b000000101001110010111011100000NULDLESP0@P、p10001SOHDC1!1AQaq20010STXDC2“2BRbr30011ETXDC3#3CScs40100EOTDC4$4DTdt50101ENQNAK%5EUeu60110ACKSYN&6FVfv70111BELETB‘7GWgw81000BSCAN(8HXhx91001HTEM)9IYiyA1010LFSUB*:JZjzB1011VTESC+;K[k{C1100FFFS,〈L\l|D1101CRGS-=M]m}E1110SORS·〉N↑n~F1111SIUS/?O↓oDELASCII碼表
7.1.1語(yǔ)言類別
2.匯編語(yǔ)言——第二代語(yǔ)言匯編語(yǔ)言是用助記符來(lái)代替操作碼,用地址符號(hào)來(lái)代替地址碼的語(yǔ)言。存儲(chǔ)空間的安排可由機(jī)器解決,減少了程序員的工作量,也減少了出錯(cuò)率。匯編程序是把匯編語(yǔ)言程序翻譯成機(jī)器語(yǔ)言程序的程序,翻譯的過(guò)程成為匯編。匯編語(yǔ)言因使用的機(jī)器不同而不同。優(yōu)點(diǎn):執(zhí)行效率高,速度快,易于理解和記憶。缺點(diǎn):不同指令集的處理器系統(tǒng)就有自己相應(yīng)的匯編語(yǔ)言。舉例:匯編語(yǔ)言計(jì)算1---10的累加和
MVDR1,0;
MVDR2,0A;
MVDR3,0;2066:INCR3;
ADDR1,R3;
CMPR3,R2;
JNZ2066;
RET;
7.1.1語(yǔ)言類別
3.高級(jí)語(yǔ)言——第三代語(yǔ)言高級(jí)語(yǔ)言不依賴于實(shí)現(xiàn)這種語(yǔ)言的計(jì)算機(jī)。一條語(yǔ)句往往對(duì)應(yīng)多條機(jī)器指令,因而用高級(jí)語(yǔ)言編寫(xiě)程序使工作量大為減少。翻譯方法:編譯:先翻譯,后執(zhí)行解釋:逐條翻譯,逐條執(zhí)行分類:通用語(yǔ)言:適用性強(qiáng),應(yīng)用面廣,可移植性強(qiáng)專用語(yǔ)言:面向特定的應(yīng)用領(lǐng)域舉例:C語(yǔ)言計(jì)算1---10的累加和
Main(){
intsum=0;
for(inti=1;i<=10;i++)sum=sum+i;printf(“1-10的累加和是:”)+sum;}舉例:JAVA語(yǔ)言計(jì)算1---10的累加和publicclassForPrime
{
publicstaticvoidmain(String[]args){
intsum=0;
for(inti=1;i<=10;i++)sum=sum+i;
System.out.println("Thesumis:"+sum);
}}
7.1.2語(yǔ)言的選擇為什么要選擇編碼語(yǔ)言
“程序設(shè)計(jì)語(yǔ)言不是引起軟件問(wèn)題的原因,也不是用它來(lái)解決軟件問(wèn)題,但是由于語(yǔ)言在一切軟件活動(dòng)中所處的中心位置,它們能使現(xiàn)存的問(wèn)題變得較易解決或更加嚴(yán)重”。這段話揭示了語(yǔ)言在軟件開(kāi)發(fā)中的作用,提醒我們重視在編碼前選好適當(dāng)?shù)恼Z(yǔ)言。
7.1.2語(yǔ)言的選擇當(dāng)衡量某一語(yǔ)言是否可選作編碼語(yǔ)言時(shí),通常要考慮的因素有:1.項(xiàng)目的應(yīng)用領(lǐng)域2.算法和計(jì)算復(fù)雜性3.軟件的開(kāi)發(fā)環(huán)境4.性能因素5.軟件開(kāi)發(fā)人員的水平1.項(xiàng)目的應(yīng)用領(lǐng)域——關(guān)鍵因素各種語(yǔ)言都有自己的適用領(lǐng)域2.算法和計(jì)算復(fù)雜性
FORTRAN及現(xiàn)代語(yǔ)言都支持較復(fù)雜計(jì)算和算法。要根據(jù)各個(gè)語(yǔ)言的特點(diǎn),選取能夠適應(yīng)軟件項(xiàng)目算法和計(jì)算復(fù)雜性的語(yǔ)言。3.軟件的開(kāi)發(fā)環(huán)境良好的編程環(huán)境不但有效提高軟件生產(chǎn)率,同時(shí)能減少錯(cuò)誤,有效提高軟件質(zhì)量??梢暬能浖砷_(kāi)發(fā)環(huán)境,提供了強(qiáng)有力的調(diào)試工具,可以快速生成高質(zhì)量的軟件,降低軟件開(kāi)發(fā)和維護(hù)的成本。軟件可移植性要求。如果目標(biāo)系統(tǒng)將在幾臺(tái)不同的計(jì)算機(jī)上運(yùn)行,那么應(yīng)選用可移植性好的語(yǔ)言。4.性能因素有些實(shí)時(shí)應(yīng)用要求具有快速的響應(yīng)速度,此時(shí)可選用匯編語(yǔ)言或Ada語(yǔ)言。有時(shí)為提高效率,一部分程序用匯編語(yǔ)言書(shū)寫(xiě),其余大部分仍用高級(jí)語(yǔ)言來(lái)書(shū)寫(xiě)。5.軟件開(kāi)發(fā)人員的水平新的更強(qiáng)有力的語(yǔ)言,雖然對(duì)于應(yīng)用有很強(qiáng)的吸引力,但是因?yàn)橐延械恼Z(yǔ)言已經(jīng)積累了大量的久經(jīng)使用的程序,具有完整的資料、支撐軟件和軟件開(kāi)發(fā)工具,程序設(shè)計(jì)人員比較熟悉,而且有過(guò)類似項(xiàng)目的開(kāi)發(fā)經(jīng)驗(yàn)和成功的先例。由于心理因素,人們往往寧愿選用原有的語(yǔ)種,所以應(yīng)徹底地分析、評(píng)價(jià),介紹新的語(yǔ)言,以便從原有語(yǔ)言過(guò)渡到新的語(yǔ)言。如果條件允許,應(yīng)盡量選用程序員所熟悉的語(yǔ)言。7.2SP方法與編程結(jié)構(gòu)化程序的三個(gè)要點(diǎn):自頂向下和逐步細(xì)化順序、選擇、循環(huán)等基本結(jié)構(gòu)對(duì)三種基本結(jié)構(gòu)可以組合嵌套結(jié)構(gòu)化程序的特點(diǎn)單入口,單出口不用GOTO語(yǔ)句層次分明,易于理解;易于驗(yàn)證、易于測(cè)試、易于維護(hù)結(jié)構(gòu)化程序設(shè)計(jì)的主要原則使用語(yǔ)言中的順序、選擇、循環(huán)等有限的基本控制結(jié)構(gòu)表示程序邏輯。選用的控制結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口。程序語(yǔ)句組成容易識(shí)別的塊,每塊只有一個(gè)入口和一個(gè)出口。復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)進(jìn)行組合嵌套來(lái)實(shí)現(xiàn)。例1打印A,B,C三數(shù)中最小者的程序if(A
<B)and(A<C)thenwrite(A)
elseif(A
B)and(B
<C)then
write(B)
else
write(C)
endifendif7.3程序內(nèi)部文檔程序內(nèi)部帶有的說(shuō)明性材料就是程序的內(nèi)部文檔,它是直接寫(xiě)在代碼中的描述性材料。內(nèi)部文檔可用注釋語(yǔ)句書(shū)寫(xiě)。夾在程序中的注釋是程序員與日后的程序讀者之間通信的重要手段。注釋是不可執(zhí)行的。一些正規(guī)的程序文本中,注釋行的數(shù)量占到整個(gè)源程序的1/3到1/2,甚至更多。注釋分為序言性注釋和描述性注釋。序言性注釋序言性注釋通常放在每個(gè)程序模塊的開(kāi)頭部分,它應(yīng)當(dāng)給出程序模塊的整體說(shuō)明,對(duì)于理解程序模塊具有引導(dǎo)作用。描述:
①程序標(biāo)題:有關(guān)該模塊的功能和目的說(shuō)明;②接口說(shuō)明:包括調(diào)用形式,參數(shù)描述,子程序清單;③有關(guān)數(shù)據(jù)描述(重要的變量及其用途,約束或限制條件,以及其他有關(guān)信息);④模塊位置(在哪一個(gè)源文件中,或隸屬于哪一個(gè)軟件包);⑤開(kāi)發(fā)簡(jiǎn)歷:模塊設(shè)計(jì)者,復(fù)審者,復(fù)審日期,修改日期及有關(guān)說(shuō)明等。描述性注釋描述性注釋嵌在源程序體中,用以描述其后的語(yǔ)句或程序段是在做什么工作,或是執(zhí)行了下面的語(yǔ)句會(huì)怎么樣。描述:
①用于描述一段程序,而不是每一個(gè)語(yǔ)句;②用縮進(jìn)或空行或其它顏色,使程序與注釋容易區(qū)別;③注釋要正確。7.4程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格是指書(shū)寫(xiě)源程序的習(xí)慣、程序代碼的邏輯結(jié)構(gòu)與習(xí)慣的編程技術(shù)。程序設(shè)計(jì)風(fēng)格在很大程度上影響著程序的可讀性、可測(cè)試性和可維護(hù)性。7.4.1編碼原則要寫(xiě)清楚使用括號(hào)以避免二義性使用縮排格式顯示程序的邏輯結(jié)構(gòu)采用3種基本控制結(jié)構(gòu)模塊化,使用子程序使用有意義的變量名所有的變量在使用前應(yīng)初始化7.4.2編碼風(fēng)格1、符號(hào)名的選擇符號(hào)名即標(biāo)識(shí)符,包括模塊名、變量名、常量名、標(biāo)號(hào)名、子程序名、數(shù)據(jù)區(qū)名以及緩沖區(qū)名等。這些名字應(yīng)能反映它所代表的實(shí)際東西,應(yīng)有一定實(shí)際意義。顯示聲明一切變量。通常在一個(gè)程序中,一個(gè)變量只應(yīng)用于一種用途,即一個(gè)變量不能身兼幾種含義。名字不是越長(zhǎng)越好,應(yīng)當(dāng)選擇精煉的意義明確的名字。必要時(shí)可使用縮寫(xiě)名字,但這時(shí)要注意縮寫(xiě)規(guī)則要一致,并且要給每一個(gè)名字加注釋。2、程序的視覺(jué)組織恰當(dāng)?shù)乩每崭瘢梢酝怀鲞\(yùn)算的優(yōu)先性,避免發(fā)生運(yùn)算的錯(cuò)誤。例如,將表達(dá)式
(A<-17)ANDNOT(B<=49)ORC
寫(xiě)成
(A<-17)ANDNOT(B<=49)ORC自然的程序段之間可用空行隔開(kāi);2、程序的視覺(jué)組織移行也叫做向右縮格。它是指程序中的各行不必都在左端對(duì)齊,都從第一格起排列。對(duì)于選擇語(yǔ)句和循環(huán)語(yǔ)句,把其中的程序段語(yǔ)句向右做階梯式移行。使程序的邏輯結(jié)構(gòu)更加清晰。階梯式移行示例IF(…)THENIF(…)THEN
……
ELSE
……
ENDIF
……ELSE
…ENDIF3、表達(dá)式的書(shū)寫(xiě)(1)盡量少用中間變量(2)注意添加括號(hào)澄清計(jì)算意圖(3)注意浮點(diǎn)運(yùn)算的誤差(4)注意整數(shù)運(yùn)算的特點(diǎn)4、數(shù)據(jù)說(shuō)明
數(shù)據(jù)說(shuō)明的次序應(yīng)當(dāng)規(guī)范化。例如:常量說(shuō)明→簡(jiǎn)單變量類型說(shuō)明→數(shù)組說(shuō)明→公共數(shù)據(jù)塊說(shuō)明→所有的文件說(shuō)明。例如:整型量說(shuō)明→實(shí)型量說(shuō)明→字符量說(shuō)明→邏輯量說(shuō)明。當(dāng)多個(gè)變量名用一個(gè)語(yǔ)句說(shuō)明時(shí),應(yīng)當(dāng)對(duì)這些變量按字母的順序排列。如果設(shè)計(jì)了一個(gè)復(fù)雜數(shù)據(jù)結(jié)構(gòu),應(yīng)使用注釋說(shuō)明在程序?qū)崿F(xiàn)時(shí)這個(gè)數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)。5、語(yǔ)句構(gòu)造在設(shè)計(jì)階段確定了軟件的邏輯結(jié)構(gòu),但構(gòu)造單個(gè)語(yǔ)句則是編碼階段的任務(wù)。語(yǔ)句構(gòu)造力求簡(jiǎn)單,直接,不能為了片面追求效率而使語(yǔ)句復(fù)雜化。語(yǔ)句構(gòu)造的規(guī)則①在一行內(nèi)只寫(xiě)一條語(yǔ)句,并且采取適當(dāng)?shù)囊菩懈袷?,使程序的邏輯和功能變得更加明確。FORI:=1TON-1DOBEGINT:=I;FORJ:=I+1TONDOIFA[J]<A[T]THENT:=J;IFT≠ITHENBEGINWORK:=A[T];A[T]:=A[I];A[I]:=WORK;ENDEND;數(shù)組的排序示例FORI:=1TON-1DO//改進(jìn)布局
BEGIN
T:=I;
FORJ:=I+1TONDO
IFA[J]<A[T]THENT:=J;
IFT≠ITHEN
BEGIN
WORK:=A[T];
A[T]:=A[I];
A[I]:=WORK;
END
END;語(yǔ)句構(gòu)造的規(guī)則②盡量避免復(fù)雜的條件測(cè)試。③避免大量使用循環(huán)嵌套和條件嵌套。④利用括號(hào)使邏輯表達(dá)式或算術(shù)表達(dá)式的運(yùn)算次序清晰直觀。6、輸入/輸出輸入和輸出信息是與用戶的使用直接相關(guān)的。輸入和輸出的方式和格式應(yīng)當(dāng)盡可能方便用戶的使用。一定要避免因設(shè)計(jì)不當(dāng)給用戶帶來(lái)的麻煩。因此,在軟件需求分析階段和設(shè)計(jì)階段,就應(yīng)基本確定輸入和輸出的風(fēng)格。系統(tǒng)能否被用戶接受,有時(shí)就取決于輸入和輸出的風(fēng)格。輸入/輸出風(fēng)格還受到許多其他因素的影響,如輸入/輸出設(shè)備、用戶的熟練程度
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB51T 1765-2014 紅毛五加生產(chǎn)技術(shù)規(guī)程
- DB51T 1551-2012 農(nóng)作物樣品田間采集及制備技術(shù)規(guī)范 第1部分:大宗蔬菜
- DB51T 986-2010 游牧用雙撐桿式帳篷
- 精密管項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 高壓管生產(chǎn)加工項(xiàng)目可行性研究報(bào)告
- 新建核子密度儀項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 螺釘項(xiàng)目投資計(jì)劃
- 傳聲器投資規(guī)劃項(xiàng)目建議書(shū)
- 新建刀刃鎧裝熱電偶項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 無(wú)人機(jī)項(xiàng)目實(shí)施方案
- GB/T 18281.3-2024醫(yī)療保健產(chǎn)品滅菌生物指示物第3部分:濕熱滅菌用生物指示物
- 消防法知識(shí)課件
- 計(jì)量經(jīng)濟(jì)學(xué)練習(xí)題
- 關(guān)于禮儀培訓(xùn)課件
- 2024年采購(gòu)經(jīng)理競(jìng)聘演講稿模版(2篇)
- 第七單元測(cè)試卷-2024-2025學(xué)年語(yǔ)文四年級(jí)上冊(cè)(統(tǒng)編版)
- 北京市海淀區(qū)2023-2024學(xué)年高三上學(xué)期期末考試 英語(yǔ) 含答案
- 探索心理學(xué)的奧秘智慧樹(shù)知到期末考試答案章節(jié)答案2024年北京大學(xué)
- 學(xué)術(shù)交流英語(yǔ)(學(xué)術(shù)寫(xiě)作)智慧樹(shù)知到期末考試答案2024年
- 北京市西城區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期期末英語(yǔ)試題
- 技術(shù)顧問(wèn)聘用協(xié)議書(shū)范文
評(píng)論
0/150
提交評(píng)論