2019-02-12 計算機(jī)二級C語言程序設(shè)計之程序設(shè)計基本概念

注:整理自高教版《全國計算機(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è)計一般包含以下幾個部分:

  1. 確定數(shù)據(jù)結(jié)構(gòu)。根據(jù)任務(wù)書提出的要求、指定的輸入數(shù)據(jù)和輸出結(jié)果,確定存放數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。
  2. 確定算法。針對存放數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)來確定解決問題、完成問題的步驟。
  3. 編碼。根據(jù)確定的數(shù)據(jù)結(jié)構(gòu)和算法,使用選定的計算機(jī)語言編寫程序代碼,輸入到計算機(jī)并保存在磁盤上,簡稱編程。
  4. 在計算機(jī)上調(diào)試程序。消除由于疏忽而引起的語法錯誤或邏輯錯誤;用各種可能的輸入數(shù)據(jù)對程序進(jìn)行測試,使之對各種合理的數(shù)據(jù)都能得到正確的結(jié)果,對不合理的數(shù)據(jù)也能進(jìn)行適當(dāng)?shù)奶幚怼?/li>
  5. 整理并寫出文檔資料。

算法

計算機(jī)科學(xué)中的算法是指為解決某個特定問題而采取的確定且有限的步驟,它是為了解決“做什么”和“怎么做”的問題。

算法是指為解決某個特定問題而采取的確定且有限的步驟。一個算法應(yīng)當(dāng)具有以下五個特性:

  1. 有窮性。一個算法包含的操作步驟應(yīng)該是有限的。也就是說,在執(zhí)行若干個步驟后,算法將結(jié)束,而且每一步都在合理的時間內(nèi)完成。
  2. 確定性。算法中的每一條指令必須有確切的含義,不能有二義性,對于相同的輸入必能得出相同的執(zhí)行結(jié)果。
  3. 可行性。算法中指定的操作,都可以通過已經(jīng)驗(yàn)證過可以實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次后實(shí)現(xiàn)。
  4. 有零個或多個輸入。在計算機(jī)上實(shí)現(xiàn)的算法是用來處理數(shù)據(jù)對象的,在大多數(shù)情況下這些數(shù)據(jù)需要通過輸入來得到。
  5. 有一個或多個輸出。算法的目的是為了求“解”,這些“解”只有通過輸出才能得到。

算法的描述方法:

  • 偽代碼
  • 流程圖
  • N-S結(jié)構(gòu)圖

結(jié)構(gòu)化程序設(shè)計和模塊化結(jié)構(gòu)

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

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

  1. 順序結(jié)構(gòu)
  2. 選擇結(jié)構(gòu)
  3. 循環(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)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容