520 likes | 709 Views
C++ 安裝與設定、簡介、基本程式設計步驟與環境. 講師:陳烱勳 Email:mikemouse@is.cs.nthu.edu.tw. DEV C++. 免費且開放原始碼的 C++ 程式設計軟體 多頁面視窗 工程編輯器 編輯器和編譯器 (GNU GCC 編譯器 ) 連接程式和執行程式 高亮度語法顯示 http://sourceforge.net/projects/dev-cpp/files/Binaries/Dev-C%2B%2B%204.9.9.2/devcpp-4.9.9.2_setup.exe/download. 安裝 DEV C++.
E N D
C++安裝與設定、簡介、基本程式設計步驟與環境C++安裝與設定、簡介、基本程式設計步驟與環境 講師:陳烱勳 Email:mikemouse@is.cs.nthu.edu.tw
DEV C++ • 免費且開放原始碼的 C++ 程式設計軟體 • 多頁面視窗 • 工程編輯器 • 編輯器和編譯器(GNU GCC 編譯器) • 連接程式和執行程式 • 高亮度語法顯示 • http://sourceforge.net/projects/dev-cpp/files/Binaries/Dev-C%2B%2B%204.9.9.2/devcpp-4.9.9.2_setup.exe/download
安裝DEV C++ • 下載完成,用左鍵按該檔案兩下,進行安裝 • 選擇語言English
第一次執行選擇語言 • 請選擇Chinese [TW]
功能表 工具列 專案瀏覽區 編寫程式區 編譯器輸出紀錄區 狀態列 操作環境說明
選擇「專案」項目 建立專案
程式語言 低階語言 高階語言 組合語言 機器語言 Fortran C/C++ Java 程式類語言的演進與分類
機器語言 (Machine Language) • 0 :代表向前走一步 • 1 :代表向後退一步 • 2 :代表往左轉 90 度 • 3 :代表往右轉 90 度 • 往前走三步、再往右走三步 • 指令:0003000
原始程式 (組合語言) 機器碼 組譯器 執行 組合語言 (Assembly) Forward Forward Forward Right Forward Forward Forward • Forward 取代 0 • Backward 取代 1 • Left 取代 2 • Right 取代 3 • 往前走三步、再往右走三步
原始程式 (高階語言) 機器碼 編譯器 或 解譯器 執行 高階語言 • 往前走三步、再往右走三步
規劃 design 撰寫程式碼 coding 轉換程式碼 compiler 測試程式 test 語法錯誤 規劃錯誤 (邏輯錯誤) (輸出結果≠目標) 高階程式語言設計之基本原理
新竹高鐵站 高鐵左營站 公車 墾丁 新竹家裡 台鐵新竹站 台鐵屏東站 規劃(design) • 了解所需解決的問題 • 利用文字敘述或流程圖來規劃程式執行流程 • 例如:墾丁出遊
開始 輸入數值X Z=X mod 2 不成立(false) Z=0 成立 (true) 結束 顯示X為奇數 顯示X為偶數 • 判斷輸入數值為奇數或偶數
大括號中每行都內縮 撰寫程式 • 適當的縮排 • Tab鍵或空白鍵 • 明確的註解 • 提高程式可讀性,以利日後維護 • 有意義的命名 • 增加可讀性與可偵錯性
轉換程式碼(編譯-compiler) • 通常C++的編譯器都是與C相容的,依據程式附檔名來判斷編譯的程式碼屬於哪一種(.c代表C程式檔案;.cpp代表C++程式檔案) • 語法錯誤 • 程式碼編寫方式不符合語言規則 • 會於訊息視窗中,告知您語法錯誤的位置 (行號和檔案),以及該問題的簡要說明
測試程式(test) • 語法錯誤(Syntax errors) • 程式碼有語法上的錯誤,無法產生執行檔或機器碼 • 依照訊息視窗中的指示,修正之 • 執行時錯誤(Run-time errors) • 執行檔或機器碼執行時發生未控制的錯誤,錯誤訊息由作業系統送出 • 例如:除以0 • 語意錯誤或邏輯錯誤(Logical errors) • 及時檢視變數內容值 • 須有偵錯工具 • 單步執行(step-by-step) • 設立中斷點 • 列印標記測試
除錯工具 • 設定啟用除錯資訊
除錯可用工具 • 單步執行 • 執行下一步的意思 • 跳過函數單步執行 • 不往區塊裡面執行,一個區塊當做一行來執行的意思 • 追蹤入函式 • 跳到函式裡追蹤執行 • 執行到游標位置 • 另一種不用中斷點的方式,在游邊處就會停下來,效果跟中斷點一樣 • 中斷執行 • 停止除錯,如果你不想繼續除錯了,就按這個按鈕停止
程式解析-前置處理區 • 多以#開頭 • 前置處理區並不算C++正式指令,所以不須在指令後加上「;」作為結束 • 用以指定使用哪些已提供函數 • C++的輸出 (cout)、輸入 (cin)函數接定義於iostream標頭檔中
#include 指令可有下列兩種格式: • #include <檔名> • 搜尋系統的 INCLUDE 資料夾去找要含括的檔案 • 主要是用於含括標準函式庫中的含括檔使用。 • #include “檔名” • 指示前置處理器先到目前的工作目錄去找, 若找不到, 再到系統的 INCLUDE 資料夾去找 • 常用於要含括自己寫的檔案 • #include “B.cpp”
名稱空間(Namespace) • 早期C/C++語言將所有識別字(變數、函數與類別)都定義為全域性名稱空間 • 名稱衝突/覆寫現象 • 名稱空間(namespace) • 用來區分相同名稱且不同定義的變數、函數或類別 • C++新型標頭檔都定義在std名稱空間內
車庫 氣動式按摩椅 CD音響 氣動式按摩椅 空力套件 後視鏡方向燈 嬰兒座椅 MP3音響 舒壓震動按摩椅 減速車距警示系統 名稱空間(Namespace) 圖片來源:豐田汽車 http://www.toyota.com.tw/
車庫1 車庫2 車庫3 車庫4 氣動式按摩椅 CD音響 氣動式按摩椅 空力套件 後視鏡方向燈 嬰兒座椅 MP3音響 舒壓震動按摩椅 減速車距警示系統 名稱空間(Namespace) 圖片來源:豐田汽車 http://www.toyota.com.tw/
如果不設定名稱空間,必須在每個函數之前加上它的名稱空間如果不設定名稱空間,必須在每個函數之前加上它的名稱空間
函數主體 (程式敘述) main()函數 • C/C++程式的進入點(起始點) • 稱main()為主程式
函數有回傳值時 • 函數型態為 回傳資料型態 函數名稱(參數) • int main( int argc, char *argv[]) • Return 0; • return EXIT_SUCCESS; • 函數沒有回傳值時 • 函數型態為 void 函數名稱(參數) • void main( int argc, char *argv[]) • System(“pause”); • 暫停執行,以利觀看程式執行結果 • 需#include <cstdlib>
程式敘述 • 「;」代表一個指令或一個程式呼叫的結束 • C++的指令具有自由化格式,只要不違背基本語法都可以。
int main(); intmain(); • return 0; return0; • cout << “hello”; c out << “hello”; 錯誤表示 正確表示
程式註解 • 單行註解: • //註解文字 • 區塊註解: • /* 註解文字區塊 */ • 不可以有巢狀結構
輸出與輸入功能 • cout • 不須指定輸出資料格式,由系統自動判斷 • 使用「<<」串接輸出運算子 • cout << ‘a’; //輸出字元 • cout << “字串”; //輸出字串 • cout << 變數; //輸出變數,會自動將變數轉成字串再輸出 • cout << “字串” << 變數; //串接輸出 • cout << “字串”<<變數<<字串;
cin • 執行此指令時,程式會停下來等待使用者輸入 • 使用「>>」串接輸入運算子 • cin >> 變數1; • cin >> 變數1 >> 變數2 >> ... >> 變數n;