1 / 37

第2章 建立 C 應用程式

第2章 建立 C 應用程式. 2-1 如何設計 C 應用程式 2-2 第一個 C 程式 2-3 Dev-C++ 整合開發環境的使用 2-4 C 程式的寫作風格 2-5 在 Windows 作業系統執行 C 應用程式 2-6 列印程式碼. 2-1 如何設計 C 應用程式. 2-1-1 程式設計的基礎 2-1-2 演算法. 2-1-1 程式設計的基礎. 程式設計就是將需要解決的問題轉換成程式碼,程式碼不只能夠在電腦上正確的執行,而且可以驗證程式執行的正確性,程式設計的過程可以分成5個階段,如下所示: 需求( Requirements) 設計( Design)

murray
Download Presentation

第2章 建立 C 應用程式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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程式的寫作風格-「;」程式敘述結束符號 • 「;」程式敘述結束符號: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份,按【確定】鈕,稍等一下,如果印表機連線沒有問題,就可以從印表機送出列印結果的報表。

More Related