Download presentation
Presentation is loading. Please wait.
Published byἉνανίας Ιωαννίδης Modified 5年之前
1
第2章 建立C應用程式 2-1 如何設計C應用程式 2-2 第一個C程式 2-3 Dev-C++整合開發環境的使用 2-4 C程式的寫作風格
2-5 在Windows作業系統執行C應用程式 2-6 列印程式碼
2
2-1 如何設計C應用程式 2-1-1 程式設計的基礎 2-1-2 演算法
3
2-1-1 程式設計的基礎 程式設計就是將需要解決的問題轉換成程式碼,程式碼不只能夠在電腦上正確的執行,而且可以驗證程式執行的正確性,程式設計的過程可以分成5個階段,如下所示: 需求(Requirements) 設計(Design) 分析(Analysis) 撰寫程式碼(Coding) 驗證(Verification)
4
2-1-1 程式設計的基礎-需求 需求(Requirements):程式設計的需求是在了解問題本身,以便確切獲得程式需要輸入的資料和其產生的結果,如下圖所示:
5
2-1-1 程式設計的基礎-設計 設計(Design):在了解程式設計的需求後,我們就可以開始找尋解決問題的方法和策略,簡單的說,設計階段就是找出解決問題的步驟,如下圖所示:
6
2-1-1 程式設計的基礎-分析 分析(Analysis):在解決需求時,只有一種解決方法嗎?例如:如果有100個變數,我們可以宣告100個變數來儲存資料,或是使用陣列來儲存,在分析階段是將所有可能解決問題的演算法都寫下來,然後分析比較那一種方法比較好,選擇最好的演算法來撰寫程式。
7
2-1-1 程式設計的基礎-撰寫程式碼 撰寫程式碼(Coding):現在我們就可以開始使用程式語言撰寫程式碼,以本書為例是使用C程式語言實際撰寫程式。
8
2-1-1 程式設計的基礎-驗證 驗證(Verification):驗證就是證明程式執行的結果符合需求的輸出資料,在這個階段可以再細分成三個部分: 證明:執行程式時需要證明它的執行結果是正確的,程式符合所有輸入資料的組合,程式規格也都符合演算法的需求。 測試:程式需要測試各種可能情況、條件和輸入資料,以測試程式執行無誤,如果有錯誤產生,就需要除錯來解決程式問題。 除錯:如果程式無法輸出正確的結果,除錯是在找出錯誤的地方,我們不但需要找出錯誤,還需要決定如何更正它。
9
2-1-2 演算法-定義 演算法是完成目標工作的一組指令,這組指令的步驟是有限的。除此之外,演算法還必須滿足一些條件,如下所示:
輸入(Input):沒有或數個外界的輸入資料。 輸出(Output):至少有一個輸出結果。 明確性(Definiteness):每一個指令步驟都十分明確,沒有模稜兩可。 有限性(Finiteness):這組指令一定會結束。 有效性(Effectiveness):每一個步驟都可行,可以追蹤其結果。
10
2-1-2 演算法-方法 演算法只是將解決問題步驟詳細的寫出來,所以並沒有固定的方式,基本上只要能夠描述這組指令的執行過程即可,常用的方式如下所示: 一般語言文字:直接使用文字描述來說明執行的步驟。 虛擬碼(Pseudo Code):趨近程式語言的描述方法,其每一列約可轉換成一列程式碼。 流程圖(Flow Chart):使用結構化的圖表描述執行過程,以各種不同形狀的圖形表示不同的操作。
11
2-2 第一個C程式 2-2-1 第一個C程式 2-2-2 C程式的架構 2-2-3 編譯和執行存在的C程式檔案
12
2-2 第一個C程式-步驟 在安裝好Dev-C++整合開發環境後,我們 就可以開始開發C應用程式,程式開發的步 驟,如下所示:
Step 1:啟動Dev-C++,新增原始碼檔案。 Step 2:輸入程式碼,建立和儲存C原始程式 碼檔案,副檔名為.c。 Step 3: 執行「執行」→「編譯並執行」指 令,編譯且執行C程式。
13
2-2-1 第一個C程式-步驟1 步驟1:建立C程式檔案
Dev-C++是一套整合開發環境,只需啟動Dev-C++就可以編輯、編譯和執行C應用程式。 執行「檔案」→「開新檔案」→「原始碼」指令,可以建立一個名為新文件1的程式檔案,看到【新文件1】標籤的編輯視窗。
14
2-2-1 第一個C程式-步驟2 步驟2:編輯和儲存程式碼 在空白的程式碼檔案,就可以開始編輯程式碼。
15
2-2-1 第一個C程式-步驟3 步驟3:編譯和執行C應用程式
在建立和儲存C程式檔案後,Dev-C++可以馬上執行「執行」→「編譯並執行」指令或按F9鍵,就會開啟「命令提示字元」視窗顯示執行結果,如下圖所示:
16
2-2-2 C程式的架構-說明 C程式的架構是由含括標頭檔、函數和全域變數宣告、main()主程式和其它函數所組成。程式架構主要是開頭的含括標題檔和主程式main(),如下所示: 01: /* 程式範例: Ch2-2.c */ 02: #include <stdio.h> 03: main() 04: { 05: printf("第一個C程式\n"); 06: getchar(); 07: }
17
2-2-2 C程式的架構-程式註解 程式註解:第1列是程式註解,註解可以出現在程式檔案的任何地方,在此的註解文字是說明C程式檔案的名稱,如下所示: 01: /* 程式範例: Ch2-2.c */
18
2-2-2 C程式的架構-標頭檔 標頭檔:第2列含括標題檔,標頭檔是函式庫的函式宣告,如果在程式中需要使用這些函式庫,就需要含括指定標頭檔,標頭檔的附檔名為.h,如下所示: 02: #include <stdio.h>
19
2-2-2 C程式的架構-主程式 主程式:第3~7列的main()函數是C程式的主程式,這是C應用程式執行時的進入點,也就是說執行C程式是從此函數的程式碼開始,如下所示: 03: main() 04: { 05: printf("第一個C程式\n"); 06: getchar(); 07: }
20
2-2-3 編譯和執行存在的C程式檔案 如果擁有現成的C程式檔案,只需啟動 Dev-C++就可以直接開啟存在的C程式檔 案,如果已經開啟程式檔案也沒有關係, Dev-C++可以同時開啟多個的程式檔案。 在切換好編輯的C程式檔案時,執行「執行」 →「編譯並執行」指令或按F9鍵,就可以 編譯/執行目前編輯的C程式檔案。
21
2-3 Dev-C++整合開發環境的使用 2-3-1 Dev-C++的使用介面 2-3-2 工具列按鈕的功能說明
2-3-3 編輯程式碼視窗的使用 2-3-4 編譯器輸出視窗
22
2-3-1 Dev-C++的使用介面
23
2-3-2 工具列按鈕的功能說明-1
24
2-3-2 工具列按鈕的功能說明-2
25
2-3-3 編輯程式碼視窗的使用 在Dev-C++的每一個程式碼編輯視窗,都可以視為是一個比Windows【記事本】功能更強大的程式碼編輯工具。
26
2-3-4 編譯器輸出視窗-圖例 當編譯C程式碼時,Dev-C++的編譯器輸出視窗 會顯示編譯狀態,如果程式編譯有錯誤,例如: 在Dev-C++開啟Ch2-3-1.c的範例程式,此程 式碼擁有錯誤。
27
2-3-4 編譯器輸出視窗-說明 【編譯器訊息】標籤指出產生錯誤的程式碼,各欄位的說明,如下所示: 行號:錯誤所在的原始程式碼的行號或列號。
檔案:錯誤所在的原始程式碼檔案名稱路徑。 訊息:錯誤訊息的說明文字,[Warning]開頭訊息是警告訊息,其錯誤等級較低,程式仍然可以編譯成執行檔,不過筆者建議在程式除錯時,仍然需要處理警告的錯誤訊息。
28
2-3-4 編譯器輸出視窗-編譯器記錄 在【編譯器記錄】標籤可以看到編譯記錄 的相關資料,如下圖所示:
29
2-4 C程式的寫作風格-程式敘述 程式敘述(Statements):C程式是由程式敘述所組成,一列程式敘述如同英文的一個句子,內含多個運算式、運算子或關鍵字,如下所示: int balance = 1000; interest = balance * rate; printf("第一個C應用程式\n");
30
2-4 C程式的寫作風格-「;」程式敘述結束符號
balance = 10000; rate = 0.04; interest = balance * rate;
31
2-4 C程式的寫作風格-程式區塊1 程式區塊(Blocks):程式區塊是由多個程式敘述組成,使用「{」和「}」符號包圍,如下所示:
main() { printf("第一個C程式\n"); getchar(); }
32
2-4 C程式的寫作風格-程式區塊2 C語言屬於「自由格式」(Free-format)的程式語言,我們可以將多個程式敘述寫在同一列,甚至可以將整個程式區塊置於同一列,程式設計者可以自由編排程式碼,如下所示: main() { printf("第一個C程式\n"); getchar(); }
33
2-4 C程式的寫作風格-程式註解 程式註解(Comments):程式註解是程式中十分重要的部分,因為良好的註解文字不但能夠了解程式的目的,並且在程式維護上,也可以提供更多的資訊。C語言的程式註解是以「/*」和「*/」符號標示註解文字,如下所示: /* 程式範例: Ch2-2.c */ C語言的註解可以跨很多列,如下所示: /* 程式範例: Ch2-2.c */
34
2-4 C程式的寫作風格-太長的程式碼 太長的程式碼:如果C語言的程式碼列如果太長,基於程式編排的需求,如果程式碼需要分成兩列,直接分割即可,如下所示: result = compare((void *)ptr, (void *)ptr1, (int (*) (void *, void *))numcmp); 程式碼需要連續列(不可有新行字元'\n'),我們可以在程式碼列的最後加上「\」符號(Line Splicing),將程式碼分成數列,如下所示: sum = scores[0] + scores[1] + \ scores[2] + scores[3] + \ scores[4];
35
2-4 C程式的寫作風格-程式碼縮排 程式碼縮排:在撰寫程式時記得使用縮排編排程式碼,適當的縮排程式碼,可以讓程式更加容易閱讀,因為可以反應出程式碼的邏輯和迴圈架構,例如:迴圈區塊的程式碼縮幾格編排,如下所示: for ( i = 0; i <= 10; i++ ) { printf("%d\n", i); total = total + i; }
36
2-5 在Windows作業系統執行C應用程式
在Dev-C++編譯和執行C應用程式後,在 原始碼程式檔案相同的資料夾即產生編譯 成的執行檔,副檔名為.exe,換句話說, 我們可以直接在Windows作業系統執行 EXE執行檔。 直接在Windows作業系統開啟「命令提示 字元」視窗來執行編譯成的執行檔,檔名 是專案名稱。
37
2-6 列印程式碼 如果讀者需要繳交作業或進行程式碼除錯,我們可以將程式碼列印成報表。Dev-C++提供列印功能可以列印程式碼編輯視窗的程式碼。 執行「檔案」→「列印」指令,勾選【行號】可以加上程式碼前的行號,請開啟印表機的電源,在選好參數,預設為1份,按【確定】鈕,稍等一下,如果印表機連線沒有問題,就可以從印表機送出列印結果的報表。
Similar presentations