程序設(shè)計(jì)基本概念_第1頁(yè)
程序設(shè)計(jì)基本概念_第2頁(yè)
程序設(shè)計(jì)基本概念_第3頁(yè)
程序設(shè)計(jì)基本概念_第4頁(yè)
程序設(shè)計(jì)基本概念_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第1章程序設(shè)計(jì)基本概念C

語(yǔ)言程序設(shè)計(jì)1本章主要內(nèi)容程序和程序設(shè)計(jì)算法結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)21.1.1

C程序幾個(gè)概念程序

高級(jí)語(yǔ)言機(jī)器語(yǔ)言3例如:00100011111011010110000101110110機(jī)器語(yǔ)言程序MOVAX,

300HADDBX,AXMOV[2100H],BX

HLT匯編語(yǔ)言源程序main(){inta,b,c;a=300;b=18;c=a+b;

printf(“a+b=%d\n”,c);}高級(jí)語(yǔ)言源程序(C)源程序需要翻譯4C語(yǔ)言的編譯:編譯方法圖1.2編譯過(guò)程(.C或.cpp)編譯程序連接程序編譯連接C源程序機(jī)器語(yǔ)言目標(biāo)程序可執(zhí)行程序(.OBJ)(.EXE)運(yùn)行運(yùn)行結(jié)果52.程序設(shè)計(jì)用計(jì)算機(jī)解決一個(gè)實(shí)際應(yīng)用問(wèn)題時(shí)的整個(gè)處理過(guò)程稱為程序設(shè)計(jì)

提出問(wèn)題確定數(shù)據(jù)結(jié)構(gòu)確定算法編寫程序調(diào)試和運(yùn)行程序輸入程序翻譯(編譯或解釋)得到運(yùn)行結(jié)果61.1.2算法什么是算法為解決某一應(yīng)用問(wèn)題而采用的解題步驟算法的描述方式

用自然語(yǔ)言描述算法

用流程圖描述算法

用N-S結(jié)構(gòu)圖描述算法

例如:輸出兩個(gè)數(shù)中的最大數(shù)7用自然語(yǔ)言描述算法第一步:輸入x和y的值第二步:比較x和y的值,如果x大于y,則輸出x的值,否則輸出y的值。

易于理解,但冗長(zhǎng),不夠精確,難于描述復(fù)雜算法。例如當(dāng)描述“輸出10個(gè)數(shù)中最大數(shù)”的算法時(shí),會(huì)冗長(zhǎng)、難于理解8圖1.5用流程圖描述算法用流程圖描述算法NYz=yz=xx>y?開(kāi)始輸入x和y結(jié)束輸出z起止框輸入/輸出框判斷框處理框流程線9用N-S結(jié)構(gòu)圖描述算法輸入x、y的值x>yTFz=xz=y輸出z的值圖1.7用N-S結(jié)構(gòu)圖描述的算法已經(jīng)證明,任何復(fù)雜的問(wèn)題都可以三種基本算法結(jié)構(gòu)來(lái)描述:順序、選擇、循環(huán)。因此用計(jì)算機(jī)語(yǔ)句描述的程序也包含三種基本結(jié)構(gòu)。

101.1.3結(jié)構(gòu)化程序設(shè)計(jì)程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu)程序:按照書(shū)寫順序依次執(zhí)行語(yǔ)句選擇結(jié)構(gòu)程序:按照條件判斷選擇執(zhí)行語(yǔ)句循環(huán)結(jié)構(gòu)程序:通過(guò)條件控制循環(huán)執(zhí)行語(yǔ)句三種基本結(jié)構(gòu)的共同點(diǎn):都是只有一個(gè)入口和一個(gè)出口;結(jié)構(gòu)內(nèi)的每一個(gè)框都有機(jī)會(huì)被執(zhí)行;結(jié)構(gòu)內(nèi)沒(méi)有死循環(huán)。11結(jié)構(gòu)化程序設(shè)計(jì)的基本原則:如果一個(gè)程序僅包含這三種基本結(jié)構(gòu)(由這些基本結(jié)構(gòu)順序組成),則稱為結(jié)構(gòu)化程序。結(jié)構(gòu)化程序設(shè)計(jì)的基本原則:采用自頂向下、逐步細(xì)化的方法進(jìn)行設(shè)計(jì);采用模塊化原則和方法進(jìn)行設(shè)計(jì)。即將大型任務(wù)從上向下劃分為多個(gè)功能模塊,每個(gè)模塊又可以劃分為若干子模塊,然后分別進(jìn)行模塊程序的編寫;每個(gè)模塊都是用結(jié)構(gòu)化程序?qū)崿F(xiàn),即都只能由三種基本結(jié)構(gòu)組成,并通過(guò)計(jì)算機(jī)語(yǔ)言的結(jié)構(gòu)化語(yǔ)句實(shí)現(xiàn)。121.2C語(yǔ)言概述主要內(nèi)容:C語(yǔ)言的發(fā)展C語(yǔ)言的特點(diǎn)C程序的基本結(jié)構(gòu)C程序的執(zhí)行過(guò)程131.2.1C語(yǔ)言的發(fā)展發(fā)展過(guò)程

B語(yǔ)言:Bell實(shí)驗(yàn)室,1970年在PDP機(jī)器上用其編寫UNIX系統(tǒng)CPL語(yǔ)言:劍橋大學(xué),1963年BCPL語(yǔ)言:劍橋大學(xué),1967年C語(yǔ)言:Bell實(shí)驗(yàn)室,1972~1973年用其改寫UNIX系統(tǒng)經(jīng)簡(jiǎn)化進(jìn)一步簡(jiǎn)化保持精練、接近硬件的優(yōu)點(diǎn),克服數(shù)據(jù)類型過(guò)少的不足141.2.2C語(yǔ)言的特點(diǎn)語(yǔ)言簡(jiǎn)潔,表達(dá)能力強(qiáng),易于理解只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句數(shù)據(jù)構(gòu)造能力強(qiáng)運(yùn)算符豐富程序書(shū)寫格式自由可直接訪問(wèn)物理地址,實(shí)現(xiàn)對(duì)硬件和低層系統(tǒng)軟件的訪問(wèn)語(yǔ)言生成的代碼質(zhì)量高可移植性好增加學(xué)習(xí)難度151.2.3C程序的基本結(jié)構(gòu)【例1.1】計(jì)算并輸出一個(gè)數(shù)a的平方。

main(){

floata,b;a=5.2;b=a*a;

printf("b=%f\n",b);

}

main

為函數(shù)名程序從這里開(kāi)始運(yùn)行函數(shù)體開(kāi)始函數(shù)體結(jié)束函數(shù)體內(nèi)定義a,b為a賦值計(jì)算并輸出平方值b執(zhí)行程序的輸出結(jié)果為:b=27.039997

161.2.3C程序的基本結(jié)構(gòu)【例1.2】輸入兩個(gè)數(shù),輸出其中的大數(shù)。int

max(intx,inty)

/*max函數(shù)*/{

intz;if(x>y)z=x;elsez=y;return(z);}main()

/*主函數(shù)*/{inta,b,c;

scanf("%d,%d",&a,&b);c=max(a,b);/*調(diào)用max函數(shù),求a和b中大數(shù)*/

printf("max=%d\n",c);}17C程序結(jié)構(gòu)C程序由函數(shù)構(gòu)成必須有,且只能有一個(gè)main(主函數(shù))總是從main函數(shù)開(kāi)始執(zhí)行函數(shù)由函數(shù)首部和函數(shù)體組成函數(shù)首部指定函數(shù)名、函數(shù)參數(shù)、類型函數(shù)體從{開(kāi)始,到}結(jié)束函數(shù)內(nèi)有語(yǔ)句18C程序結(jié)構(gòu)(續(xù))語(yǔ)句包括說(shuō)明性語(yǔ)句、可執(zhí)行語(yǔ)句以;表示語(yǔ)句結(jié)束注釋可以出現(xiàn)在程序的任何位置

用/*和*/括起來(lái),必須成對(duì)出現(xiàn)書(shū)寫格式C語(yǔ)言沒(méi)有行的概念,書(shū)寫格式自由。習(xí)慣小寫字母,縮進(jìn)格式。191.2.4C程序的執(zhí)行過(guò)程

1.源程序文件的建立和編輯

編寫源程序,形成.C文件需用編輯工具:tc.exe、記事本2.編譯

編譯源程序,形成目標(biāo)程序.Obj文件需用編譯工具:tcc.exe3.連接

連接OBJ文件和調(diào)用的庫(kù)函數(shù),形成運(yùn)行程序

.exe

文件需用連接工具:tlink.exe4.運(yùn)行

.exe

文件運(yùn)行jc1_2TurboC提供集成化開(kāi)發(fā)環(huán)境201.3C程序的符號(hào)系統(tǒng)主要內(nèi)容:基本字符標(biāo)識(shí)符211.3.1基本字符大寫英文字母:ABC……XYZ

小寫英文字母:abc……xyz

數(shù)字:012……9

空白符:空格符、換行符、制表符

特殊字符:+-*/<>()[]{}_=!#%.,;:‘“|&?$^\~

221.3.2標(biāo)識(shí)符

由字母、下劃線和數(shù)字組成的字符序列用于程序中的變量、符號(hào)常量、數(shù)組、函數(shù)、數(shù)據(jù)類型等操作對(duì)象的名字1.系統(tǒng)定義標(biāo)識(shí)符具有固定名字和特定含義的標(biāo)識(shí)符分為關(guān)鍵字和預(yù)定義標(biāo)識(shí)符

2.用戶定義標(biāo)識(shí)符

用于對(duì)用戶使用的變量、數(shù)組、函數(shù)等操作對(duì)象進(jìn)行命名23關(guān)鍵字

數(shù)據(jù)類型:

int、char、float、double、short、long、void、signed、unsigned、enum、struct、union、const、typedef、volatile

存儲(chǔ)類別:auto、static、register、extern語(yǔ)句命令字:break、case、continue、default、do、else、for、goto、if、return、switch、while

運(yùn)算符:sizeof

24預(yù)定義標(biāo)識(shí)符系統(tǒng)標(biāo)準(zhǔn)庫(kù)函數(shù)scanf、printf、putchar、getchar、strcpy、strcmp、sqrt等編譯預(yù)備處理命令include、define等25對(duì)標(biāo)識(shí)符的規(guī)定

用戶定義標(biāo)識(shí)符必須以字母或下劃線“_”開(kāi)頭不能含有除字母、數(shù)字和下劃線“_”外的其他字符標(biāo)識(shí)符中大小寫字母含義不同關(guān)鍵字必須用小寫字母。不允許使用關(guān)鍵字為變量、數(shù)組、函數(shù)等操作對(duì)象命名預(yù)定義標(biāo)識(shí)符允許用戶對(duì)它們重新定義,當(dāng)重新定義后將改變它們?cè)瓉?lái)的含義26正確區(qū)分標(biāo)識(shí)符正確區(qū)分哪些是合法標(biāo)識(shí)符,哪些是不合法標(biāo)識(shí)符。其中合法標(biāo)識(shí)符中哪些是關(guān)鍵字,哪些是預(yù)定義標(biāo)識(shí)符,哪些是用戶定義標(biāo)識(shí)符。Abc

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論