注:整理自高教版《全國計算機(jī)等級考試二級教程——C語言程序設(shè)計》和人郵版《全國計算機(jī)等級考試教程 二級C語言程序設(shè)計》
程序和程序設(shè)計
C程序
人們把可以連續(xù)執(zhí)行的一條條指令的集合稱為“程序”。
可以說,程序就是人與機(jī)器“對話”的語言,也就是我們常說的“程序設(shè)計語言”。
目前,使用比較廣泛的語言,如Visual Basic,Java,C++,C語言等,它們都被稱為計算機(jī)的“高級語言”。
但是對于計算機(jī)本身來說,它并不能直接識別由高級語言編寫的程序,它只能接受和處理由0和1的代碼構(gòu)成的二進(jìn)制指令或數(shù)據(jù)。由于這種形式的指令是面向機(jī)器的,因此也被稱為“機(jī)器語言”。
匯編語言是介于機(jī)器語言和高級語言之間的一種語言。
我們把由高級語言編寫的程序稱為“源程序”,把由二進(jìn)制代碼標(biāo)識的程序稱為“目標(biāo)程序”。為了把源程序轉(zhuǎn)換成機(jī)器能接受的目標(biāo)程序,軟件工作者編制了一系列軟件,通過這些軟件可以把用戶按規(guī)定寫出的語句一一翻譯成二進(jìn)制的機(jī)器指令。這種具有翻譯功能的軟件稱為“編譯程序”,每種高級語言都有與它對應(yīng)的編譯程序。
C源程序經(jīng)過編譯程序編譯之后生成一個后綴為.obj的二進(jìn)制文件(目標(biāo)文件),然后由稱為“連接程序”的軟件,把.obj文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為.exe的可執(zhí)行文件。
程序設(shè)計
程序設(shè)計,就是用程序設(shè)計語言編寫程序的過程。
簡單的程序設(shè)計一般包含以下幾個部分:
- 確定數(shù)據(jù)結(jié)構(gòu)。根據(jù)任務(wù)書提出的要求、指定的輸入數(shù)據(jù)和輸出結(jié)果,確定存放數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。
- 確定算法。針對存放數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)來確定解決問題、完成問題的步驟。
- 編碼。根據(jù)確定的數(shù)據(jù)結(jié)構(gòu)和算法,使用選定的計算機(jī)語言編寫程序代碼,輸入到計算機(jī)并保存在磁盤上,簡稱編程。
- 在計算機(jī)上調(diào)試程序。消除由于疏忽而引起的語法錯誤或邏輯錯誤;用各種可能的輸入數(shù)據(jù)對程序進(jìn)行測試,使之對各種合理的數(shù)據(jù)都能得到正確的結(jié)果,對不合理的數(shù)據(jù)也能進(jìn)行適當(dāng)?shù)奶幚怼?/li>
- 整理并寫出文檔資料。
算法
計算機(jī)科學(xué)中的算法是指為解決某個特定問題而采取的確定且有限的步驟,它是為了解決“做什么”和“怎么做”的問題。
算法是指為解決某個特定問題而采取的確定且有限的步驟。一個算法應(yīng)當(dāng)具有以下五個特性:
- 有窮性。一個算法包含的操作步驟應(yīng)該是有限的。也就是說,在執(zhí)行若干個步驟后,算法將結(jié)束,而且每一步都在合理的時間內(nèi)完成。
- 確定性。算法中的每一條指令必須有確切的含義,不能有二義性,對于相同的輸入必能得出相同的執(zhí)行結(jié)果。
- 可行性。算法中指定的操作,都可以通過已經(jīng)驗(yàn)證過可以實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次后實(shí)現(xiàn)。
- 有零個或多個輸入。在計算機(jī)上實(shí)現(xiàn)的算法是用來處理數(shù)據(jù)對象的,在大多數(shù)情況下這些數(shù)據(jù)需要通過輸入來得到。
- 有一個或多個輸出。算法的目的是為了求“解”,這些“解”只有通過輸出才能得到。
算法的描述方法:
- 偽代碼
- 流程圖
- N-S結(jié)構(gòu)圖
結(jié)構(gòu)化程序設(shè)計和模塊化結(jié)構(gòu)
結(jié)構(gòu)化程序
結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成:
- 順序結(jié)構(gòu)
- 選擇結(jié)構(gòu)
- 循環(huán)結(jié)構(gòu)
已經(jīng)證明,由三種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜問題。
由三種基本結(jié)構(gòu)所構(gòu)成的算法稱為結(jié)構(gòu)化算法;由三種基本結(jié)構(gòu)所構(gòu)成的程序稱為結(jié)構(gòu)化程序。
模塊化結(jié)構(gòu)
在程序設(shè)計時,用一個個小模塊來實(shí)現(xiàn)一項簡單的功能,每個程序設(shè)計人員分別完成一個或多個小模塊。我們稱這樣的程序設(shè)計方法為“模塊化”的方法,有一個個功能模塊構(gòu)成的程序結(jié)構(gòu)稱為模塊化結(jié)構(gòu)。