多重程序設(shè)計_第1頁
多重程序設(shè)計_第2頁
多重程序設(shè)計_第3頁
多重程序設(shè)計_第4頁
多重程序設(shè)計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章C語言概述1.1C語言的發(fā)展簡史與特色1.2簡單的C程序介紹1.3用C語言解決實際問題的步驟1.1C語言的發(fā)展簡史與特色1.1.1C語言發(fā)展簡史C語言是目前世界上最廣泛使用的通用計算機語言。用它既可編寫計算機系統(tǒng)軟件,也可編寫各種應(yīng)用軟件,所以在數(shù)百種計算機語言中,C語言仍然是目前最流行、最受歡迎的計算機語言?,F(xiàn)在,Windows已成為計算機的主要操作系統(tǒng),相應(yīng)的基于Windows的程序開發(fā)多采用C++,它雖是一種面向?qū)ο蟮恼Z言,但其核心內(nèi)容仍是標(biāo)準(zhǔn)C。1.1.2C語言的特色1.C與其它語言的比較1)C與匯編語言比較C語言允許對位、字節(jié)和地址進行操作(指針),這三者是計算機最基本的工作單元,在編制系統(tǒng)程序時要經(jīng)常用到,所以它適用于寫系統(tǒng)程序。由于匯編語言是非結(jié)構(gòu)化語言,含有大量的跳轉(zhuǎn)、子程序調(diào)用以及變址,這種結(jié)構(gòu)的缺陷使得匯編語言程序難以讀懂,難以維護,也不能移植。而C語言的結(jié)構(gòu)化、模塊化克服了匯編程序難讀、難維護的缺點。C語言又具有匯編語言的功能,目標(biāo)代碼長度也差不多,效率幾乎與匯編相近,且具有很好的可移植性。2)C與其它高級語言比較C有豐富的運算符,達34種,其中有很多運算符對應(yīng)于常用的機器指令,比如++等可直接編譯成機器代碼,使用起來簡單精練。C有多樣化的表達式類型;C的數(shù)據(jù)類型豐富,具有現(xiàn)代語言的各種數(shù)據(jù)結(jié)構(gòu)。C的數(shù)據(jù)類型有:整型,實型,字符型,數(shù)組,指針,結(jié)構(gòu)體,共用體等。C的輸入輸出使用的是數(shù)據(jù)流C程序生成的機器代碼質(zhì)量高,內(nèi)存占用少,運行速度快,程序執(zhí)行效率高。

2.C是結(jié)構(gòu)化語言C語言是以函數(shù)為模塊來編寫源程序的,所以C程序是模塊化的。C語言具有結(jié)構(gòu)化的控制語句,如if~else語句,switch語句,while語句,do~while語句,for語句等。因此是結(jié)構(gòu)化的理想語言,符合現(xiàn)代編程風(fēng)格的要求。結(jié)構(gòu)化語言的一個顯著特點是代碼和數(shù)據(jù)的分隔化,即代碼和數(shù)據(jù)分開存貯,互相隔離;程序的各個部分除了必要的信息交流外,彼此互不影響,相互隔離。3.C是編程者的語言C語言的其它主要優(yōu)點如下:C語言簡潔、緊湊,使用方便靈活;一共只有32個關(guān)鍵字(27個來自kerninghan和Ritchie的標(biāo)準(zhǔn),5個由ANSI標(biāo)準(zhǔn)委員會增補),9種控制語句,它們構(gòu)成了C語言的全部指令;程序書寫形式自由,壓縮了一切不必要的成分。C語言很少限制、很少缺陷、模塊結(jié)構(gòu)、彼此獨立的函數(shù)和一些十分緊湊的關(guān)鍵字,使得C語言能達到接近匯編語言的高效率和廣泛的應(yīng)用范圍,所以在許多情況下它是編程者首選的計算機語言。4.C的“缺點”語法限制不嚴(yán)格

2)程序設(shè)計自由度大1.2簡單的C程序介紹例1.1打印一個語句。程序:main(){printf(″Asimplecprogram.\n″);}經(jīng)編譯后運行結(jié)果如下:Asimplecprogram.例1.2求兩數(shù)中的小者。程序:main()/*主函數(shù)*/{inta,b,c;/*定義變量*/scanf(″%d,%d″,&a,&b);/*輸入*/c=min(a,b);/*調(diào)用函數(shù)*/printf(″min=%d\n″,c);/*輸出*/}intmin(intx,inty)/*定義函數(shù)*/{intz;/*定義局部變量*/if(x>y)z=y;elsez=x;return(z);/*返回z值*/}經(jīng)編譯后運行如下:14,4min=4再次運行:6,29min=6本程序包括兩個函數(shù):主函數(shù)main和子函數(shù)min。通過上述兩個例子,我們可以看到:(1)C程序是由函數(shù)構(gòu)成的。(2)一個函數(shù)由兩部分組成:函數(shù)的首部和函數(shù)體。(3)main函數(shù)通常位于程序之首,實際上它位于程序的開頭、最后及函數(shù)與函數(shù)之間均是合法的,但不管在什么位置,一個C程序總是從main函數(shù)開始執(zhí)行的。(4)C程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句可以分寫在多行上。(5)C語言本身沒有輸入輸出語句。(6)可以用/*…*/對C程序中的任何部分作注釋,它可增加程序的可讀性。1.3用C語言解決實際問題的步驟1.3.1一個實例的求解過程1.問題提出計算y=f(x)曲線,x軸(y=0),x=a,x=b四條曲線所圍成的面積。參看圖1.1。圖1.1計算面積2.分析問題用戶需求:計算四條曲線所圍的面積。已知條件:四條曲線(即x=a,x=b,y=0,y=f(x))。需要進行的處理:計算面積,注意誤差和精度。需要用到的軟、硬件環(huán)境:用C語言編程,在個人微機上運行,使用TurboC編譯系統(tǒng)。進行可行性分析:用數(shù)值計算方法完全能夠?qū)崿F(xiàn)。經(jīng)過分析,我們已做到心中有數(shù)。3.確定處理方案根據(jù)實際問題選用適當(dāng)?shù)臄?shù)學(xué)模型(本例屬科學(xué)計算)。根據(jù)高等數(shù)學(xué)中學(xué)到的知識,我們提出的數(shù)學(xué)模型是,也就是在[a,b]區(qū)間內(nèi)求f(x)函數(shù)的定積分。4.根據(jù)處理方案確定操作步驟圖1.2矩形法求積分在圖1.2中畫陰影線的小面積有4條邊,第一條長度f(c),第二條長度f(d),第三條長度d-c,而第四條線我們采用近似的辦法:以第一條線高度作x軸的平行線得y=f(c),則小矩形面積為(d-c)·f(c);或以第二條線高度作x軸平行線得y=f(d),則小矩形面積為(d-c)·f(d)。然后將各小塊面積累加起來。以上過程歸納起來就得出了近似公式,最后得到一個操作步驟,也就是算法,如下所示:(1)讀a,b和n(分成n塊)。(2)求高h=(b-a)/n。(3)s=0,面積的初始值為0。(4)i=1,先計算第一個小面積。(5)s=s+h*f(a+i*h),用后點計算;或s=s+h*f(a+(i-1)*h),用前點計算,小面積累加起來。(6)i=i+1,取下一個小面積。(7)如i<=n轉(zhuǎn)(5),否則打印s。

5.根據(jù)操作步驟編寫源程序程序:main(){floata,b,h,s;floatf(float);inti,n;scanf(″%f,%f,%d″,&a,&b,&n);h=(b-a)/n;s=0;i=1;while(i<=n){s=s+h*f(a+(i-1)*h);/*用前點計算*/i++;}printf(″a=%f,b=%f,n=%d,s=%f\n″,a,b,n,s);}

6.輸入程序并上機調(diào)試上機輸入源程序并調(diào)試,直到改正了所有的編譯錯誤和運行錯誤。在調(diào)試過程中應(yīng)該精心選擇典型數(shù)據(jù)進行測試。本例當(dāng)計算有誤差或精度不足時可加大分塊數(shù)量,或采用其它計算方法:如改為梯形法或拋物線法(即辛普生法)等。要避免因調(diào)試數(shù)據(jù)不能反映實際數(shù)據(jù)的特征而引起的計算偏差和運行錯誤。7.整理分析計算結(jié)果圖1.3用計算機處理一個實際問題1.3.2算法1.什么是算法為解決一個問題而采取的方法和步驟,就稱為“算法”。對同一個問題,可以有不同的解題方法和步驟,也就有不同的算法。例如求可采用矩形法,梯形法,辛普生法(即拋物線法)等。為了有效地解題,不僅需要保證算法正確,還要考慮算法的質(zhì)量,選擇較好的算法,或進行算法的優(yōu)化。2.算法的特點一個算法,必須具有以下特點:(1)僅有有限的操作步驟,即“有窮性”(無死循環(huán))。(2)算法的每一個步驟應(yīng)當(dāng)是確定的,即無“二義性”。(3)有適當(dāng)?shù)妮斎?,即有確定的條件。(4)有輸出結(jié)果。沒有輸出的算法是無意義的。(5)算法中的每一個步驟都應(yīng)當(dāng)有效執(zhí)行(無死語句)。3.算法的重要性掌握最基本的、常用的算法是很重要的,算法設(shè)計是整個程序設(shè)計的核心。著名計算機科學(xué)家沃思(Wirth)曾提出一個公式:程序=算法+數(shù)據(jù)結(jié)構(gòu)。對初學(xué)者而言,數(shù)據(jù)結(jié)構(gòu)即是語言提供的各種數(shù)據(jù)類型,無大難點。這樣編程的任務(wù)主要是考慮算法問題,當(dāng)然還要學(xué)會基本的語句和語法。4.算法的表示方法用自然語言表示2)用傳統(tǒng)流程圖表示圖1.4傳統(tǒng)流程圖常用符號

例1.3求,用傳統(tǒng)流程圖表示,見圖1.5。圖1.5矩形法求積分3)用N-S流程圖表示例1.4求,用

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論