C語言程序設(shè)計基本概念課件_第1頁
C語言程序設(shè)計基本概念課件_第2頁
C語言程序設(shè)計基本概念課件_第3頁
C語言程序設(shè)計基本概念課件_第4頁
C語言程序設(shè)計基本概念課件_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

全國計算機等級考試

二級教程

----C語言程序設(shè)計王艷群E-mail:wangyanqun@全國計算機等級考試

二級教程

----C語言程序設(shè)計1第一章程序設(shè)計基本概念1.1程序和程序設(shè)計1.1.1C程序

將需要計算機做的工作寫成一定形式的指令,并把它們存儲在計算機內(nèi)部的存儲器中,當(dāng)我們給出命令之后,它就按指令順序自動進行操作。我們把這種可以連續(xù)執(zhí)行的指令集合叫做“程序”。所以說,程序就是人與機器“溝通”的語言,也就是我們常說的“程序設(shè)計語言”。

程序設(shè)計語言的種類很多,用什么樣的語言寫的程序指令就叫什么程序,比如說用VB、C++、Java等語言寫的程序就相應(yīng)叫VB程序、C++程序、Java程序,當(dāng)然用C語言寫的程序就叫C程序。

第一章程序設(shè)計基本概念2

計算機本身是不能直接識別由上面所說的高級語言編寫的程序的,它只能接受和處理由0和1的代碼構(gòu)成的二進制指令或數(shù)據(jù)。這種形式的指令是面向機器的,因此叫它“機器語言”。那么由高級語言寫出來的程序相對于機器執(zhí)行的機器語言來說叫“源程序”,把由二進制代碼表示的程序稱為“目標(biāo)程序”。因此,在編寫完源程序以后,若想在機器上執(zhí)行該程序,就要有一種被叫做“編譯程序”的軟件把源程序翻譯成“目標(biāo)程序”。每種高級語言都有與它對應(yīng)的編譯程序。如C語言的編譯程序TurboC.

C語言源程序C語言編譯程序二進制機器指令計算機本身是不能直接識別由上面所說的高3

C源程序經(jīng)過C編譯程序編譯之后生成一個后綴為.OBJ的二進制文件(稱為目標(biāo)文件),然后由自然保護區(qū)為“連接程序”(Link)的軟件,把.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為.EXE的可執(zhí)行文件??赏ㄟ^點擊或者輸入該文件的名字就可以執(zhí)行這個文件了。1.1.2程序設(shè)計簡單程序設(shè)計一般包含以下幾個部分:

1.確定數(shù)據(jù)結(jié)構(gòu)。

2.確定算法。

3.編碼。C源程序經(jīng)過C編譯程序編譯之后生成一個后綴為.OBJ的4

4.在計算機上調(diào)試程序。

5.整理并寫出文檔資料。1.2算法

學(xué)習(xí)計算機程序設(shè)計的目的就是在用語言作為工具,設(shè)計出可供計算機運行的程序。那么,如何對一個已知的問題進行有效的求解呢?怎樣才能編寫出程序呢?一般來說,除了待定合理的數(shù)據(jù)結(jié)構(gòu)外,關(guān)鍵的一步是設(shè)計算法,有了一個好的算法,就可以用任何一種計算機高級語言把算法轉(zhuǎn)換為程序(編寫程序)。算法---為解決某個特定的問題而采取的確定且有限的步驟。4.在計算機上調(diào)試程序。5

算法的五個特性:

1.有窮性;

2.確定性;

3.可行性;

4.有0個或多個輸入;

5.有1個或多人輸出;

算法的描述方法:偽代碼和流程圖。

算法的五個特性:61.3結(jié)構(gòu)化程序設(shè)計和模塊化結(jié)構(gòu)

1.3.1結(jié)構(gòu)化程序

結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成:

1.順序結(jié)構(gòu);

2.選擇結(jié)構(gòu);

3.循環(huán)結(jié)構(gòu)。

順序結(jié)構(gòu)ABAB流程圖N-S圖1.3結(jié)構(gòu)化程序設(shè)計和模塊化結(jié)構(gòu)順序結(jié)構(gòu)ABAB流程7

PAB真假PBA真假二分支選擇結(jié)構(gòu)選擇結(jié)構(gòu)PAB真假PBA真假二分支選擇結(jié)構(gòu)選擇結(jié)構(gòu)8多分支選擇結(jié)構(gòu)A1A2AiAnk=k2k=k1k=knk=ki......多分支選擇結(jié)構(gòu)A1A2AiAnk=k2k=k1k=knk=k9循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)PA假真當(dāng)P為真AAP真假A直到P為真注:A,B,A1….An可以是一個簡單語句,也可以是一個基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)PA假真當(dāng)P為真AAP真假10

已經(jīng)證明,由三種基本結(jié)構(gòu)所絡(luò)組成的算法可以解決任何復(fù)雜的問題。由三種基本結(jié)構(gòu)所構(gòu)成的算法稱為結(jié)構(gòu)化算法;由三種基本結(jié)構(gòu)所構(gòu)成的程序稱為結(jié)構(gòu)化程序。已經(jīng)證明,由三種基本結(jié)構(gòu)所絡(luò)組成的算法可以解決任何復(fù)雜11例1.1先后輸入若干個整數(shù),要求打印出其中最大的數(shù),當(dāng)輸入的數(shù)小于0時結(jié)束。用N-S流程圖表示算法。解題思路:先輸入一個數(shù),在沒有其他數(shù)參加比較之前,它顯然是當(dāng)前最大的數(shù),把它放到變量max

中,讓max始終存放當(dāng)前已比較過的數(shù)中上最大值。然后輸入第二個數(shù),并與max比較,如果第二個數(shù)大于max,則用第二個數(shù)替換max中原來的值;如果第二個數(shù)小于max,則max中原來的值保持不變。如此循環(huán)下去,直到輸入的數(shù)小于0時程序結(jié)束。最后max中的值就是所有輸入數(shù)中的最大值。根據(jù)上面的思路,畫出N-S流程圖。變量x用來控制循環(huán)的次數(shù),當(dāng)x>0時,執(zhí)行循環(huán)體;在循環(huán)體內(nèi)進行兩個數(shù)的比較和和輸入新的x值。例1.1先后輸入若干個整數(shù),要求打印出其中最大的數(shù),當(dāng)輸12讀入一個數(shù)給xmax=x當(dāng)x>0時輸出maxx>maxmax=x

否讀入一個新數(shù)給x例1.1程序的N-S流程圖讀入一個數(shù)給xmax=x當(dāng)x>0時輸出maxx>maxmax131.3.2模塊化結(jié)構(gòu)

當(dāng)計算機在處理比較復(fù)雜的任務(wù)時,所編寫的程序經(jīng)常會很長,而且通常情況下是由多人來完成的。這時就需要要處理的復(fù)雜問題分解成若干個子問題,如果這些子問題仍然很大,可以再劃分更小的子問題,直到劃分的子問題比較容易求解。而這個容易求解的小問題我們可以叫做一個模塊。通常我們稱這樣的程序設(shè)計方法為“模塊化”的方法,由一個個功能模塊構(gòu)成的程序結(jié)構(gòu)為模塊化結(jié)構(gòu)。

C語言是一種結(jié)構(gòu)化程序設(shè)計語言。提供了定義“函數(shù)”的功能,沒有子程序的概念,它提供的函數(shù)可程序的所有功能;C語言允許對函數(shù)單獨進行編譯,從而可以實現(xiàn)模塊化。1.3.2模塊化結(jié)構(gòu)當(dāng)計算機在處理比14C語言32個關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhileC語言32個關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)15演講完畢,謝謝觀看!演講完畢,謝謝觀看!16全國計算機等級考試

二級教程

----C語言程序設(shè)計王艷群E-mail:wangyanqun@全國計算機等級考試

二級教程

----C語言程序設(shè)計17第一章程序設(shè)計基本概念1.1程序和程序設(shè)計1.1.1C程序

將需要計算機做的工作寫成一定形式的指令,并把它們存儲在計算機內(nèi)部的存儲器中,當(dāng)我們給出命令之后,它就按指令順序自動進行操作。我們把這種可以連續(xù)執(zhí)行的指令集合叫做“程序”。所以說,程序就是人與機器“溝通”的語言,也就是我們常說的“程序設(shè)計語言”。

程序設(shè)計語言的種類很多,用什么樣的語言寫的程序指令就叫什么程序,比如說用VB、C++、Java等語言寫的程序就相應(yīng)叫VB程序、C++程序、Java程序,當(dāng)然用C語言寫的程序就叫C程序。

第一章程序設(shè)計基本概念18

計算機本身是不能直接識別由上面所說的高級語言編寫的程序的,它只能接受和處理由0和1的代碼構(gòu)成的二進制指令或數(shù)據(jù)。這種形式的指令是面向機器的,因此叫它“機器語言”。那么由高級語言寫出來的程序相對于機器執(zhí)行的機器語言來說叫“源程序”,把由二進制代碼表示的程序稱為“目標(biāo)程序”。因此,在編寫完源程序以后,若想在機器上執(zhí)行該程序,就要有一種被叫做“編譯程序”的軟件把源程序翻譯成“目標(biāo)程序”。每種高級語言都有與它對應(yīng)的編譯程序。如C語言的編譯程序TurboC.

C語言源程序C語言編譯程序二進制機器指令計算機本身是不能直接識別由上面所說的高19

C源程序經(jīng)過C編譯程序編譯之后生成一個后綴為.OBJ的二進制文件(稱為目標(biāo)文件),然后由自然保護區(qū)為“連接程序”(Link)的軟件,把.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為.EXE的可執(zhí)行文件??赏ㄟ^點擊或者輸入該文件的名字就可以執(zhí)行這個文件了。1.1.2程序設(shè)計簡單程序設(shè)計一般包含以下幾個部分:

1.確定數(shù)據(jù)結(jié)構(gòu)。

2.確定算法。

3.編碼。C源程序經(jīng)過C編譯程序編譯之后生成一個后綴為.OBJ的20

4.在計算機上調(diào)試程序。

5.整理并寫出文檔資料。1.2算法

學(xué)習(xí)計算機程序設(shè)計的目的就是在用語言作為工具,設(shè)計出可供計算機運行的程序。那么,如何對一個已知的問題進行有效的求解呢?怎樣才能編寫出程序呢?一般來說,除了待定合理的數(shù)據(jù)結(jié)構(gòu)外,關(guān)鍵的一步是設(shè)計算法,有了一個好的算法,就可以用任何一種計算機高級語言把算法轉(zhuǎn)換為程序(編寫程序)。算法---為解決某個特定的問題而采取的確定且有限的步驟。4.在計算機上調(diào)試程序。21

算法的五個特性:

1.有窮性;

2.確定性;

3.可行性;

4.有0個或多個輸入;

5.有1個或多人輸出;

算法的描述方法:偽代碼和流程圖。

算法的五個特性:221.3結(jié)構(gòu)化程序設(shè)計和模塊化結(jié)構(gòu)

1.3.1結(jié)構(gòu)化程序

結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成:

1.順序結(jié)構(gòu);

2.選擇結(jié)構(gòu);

3.循環(huán)結(jié)構(gòu)。

順序結(jié)構(gòu)ABAB流程圖N-S圖1.3結(jié)構(gòu)化程序設(shè)計和模塊化結(jié)構(gòu)順序結(jié)構(gòu)ABAB流程23

PAB真假PBA真假二分支選擇結(jié)構(gòu)選擇結(jié)構(gòu)PAB真假PBA真假二分支選擇結(jié)構(gòu)選擇結(jié)構(gòu)24多分支選擇結(jié)構(gòu)A1A2AiAnk=k2k=k1k=knk=ki......多分支選擇結(jié)構(gòu)A1A2AiAnk=k2k=k1k=knk=k25循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)PA假真當(dāng)P為真AAP真假A直到P為真注:A,B,A1….An可以是一個簡單語句,也可以是一個基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)PA假真當(dāng)P為真AAP真假26

已經(jīng)證明,由三種基本結(jié)構(gòu)所絡(luò)組成的算法可以解決任何復(fù)雜的問題。由三種基本結(jié)構(gòu)所構(gòu)成的算法稱為結(jié)構(gòu)化算法;由三種基本結(jié)構(gòu)所構(gòu)成的程序稱為結(jié)構(gòu)化程序。已經(jīng)證明,由三種基本結(jié)構(gòu)所絡(luò)組成的算法可以解決任何復(fù)雜27例1.1先后輸入若干個整數(shù),要求打印出其中最大的數(shù),當(dāng)輸入的數(shù)小于0時結(jié)束。用N-S流程圖表示算法。解題思路:先輸入一個數(shù),在沒有其他數(shù)參加比較之前,它顯然是當(dāng)前最大的數(shù),把它放到變量max

中,讓max始終存放當(dāng)前已比較過的數(shù)中上最大值。然后輸入第二個數(shù),并與max比較,如果第二個數(shù)大于max,則用第二個數(shù)替換max中原來的值;如果第二個數(shù)小于max,則max中原來的值保持不變。如此循環(huán)下去,直到輸入的數(shù)小于0時程序結(jié)束。最后max中的值就是所有輸入數(shù)中的最大值。根據(jù)上面的思路,畫出N-S流程圖。變量x用來控制循環(huán)的次數(shù),當(dāng)x>0時,執(zhí)行循環(huán)體;在循環(huán)體內(nèi)進行兩個數(shù)的比較和和輸入新的x值。例1.1先后輸入若干個整數(shù),要求打印出其中最大的數(shù),當(dāng)輸28讀入一個數(shù)給xmax=x當(dāng)x>0時輸出maxx>maxmax=x

否讀入一個新數(shù)給x例1.1程序的N-S流程圖讀入一個數(shù)給xmax=x當(dāng)x>0時輸出maxx>maxmax291.3.2模塊化結(jié)構(gòu)

當(dāng)計算機在處理比較復(fù)雜的任務(wù)時,所編寫的程序經(jīng)常會很長,而且通常情況下是由多人來完成的。這時就需要要處理的復(fù)雜問題分解成若干個子問題,如果這些子問題仍然很大,可以再劃分更

溫馨提示

  • 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

提交評論