C++安裝與設定、簡介、基本程式設計步驟與環境
Download
Report
Transcript C++安裝與設定、簡介、基本程式設計步驟與環境
C++安裝與設定、簡介、基本
程式設計步驟與環境
講師:陳烱勳
Email:[email protected]
DEV C++
免費且開放原始碼的 C++ 程式設計軟體
多頁面視窗
工程編輯器
編輯器和編譯器(GNU GCC 編譯器)
連接程式和執行程式
高亮度語法顯示
http://sourceforge.net/projects/devcpp/files/Binaries/DevC%2B%2B%204.9.9.2/devcpp4.9.9.2_setup.exe/download
安裝DEV C++
下載完成,用左鍵按該檔案兩下,進行
安裝
選擇語言English
第一次執行選擇語言
請選擇Chinese [TW]
操作環境說明
功能表
工具列
專案瀏
覽區
狀態列
編寫程式區
編譯器輸出
紀錄區
修改語言-1
修改語言-2
建立專案
選擇「專案」項目
選擇此項目
輸入專案名稱
選擇此項目,執行程式
程式類語言的演進與分類
程式語言
低階語言
機器語言
組合語言
高階語言
Fortran
C/C++
Java
機器語言 (Machine Language)
0 :代表向前走一步
1 :代表向後退一步
2 :代表往左轉 90 度
3 :代表往右轉 90 度
往前走三步、再往右走三步
指令:0003000
組合語言 (Assembly)
Forward
Forward 取代 0
Backward 取代 1
Left 取代 2
Right 取代 3
往前走三步、再往右走三步
原始程式
(組合語言)
組譯器
Forward
Forward
Right
Forward
機器碼
Forward
Forward
執行
高階語言
往前走三步、再往右走三步
編譯器
原始程式
或
(高階語言)
解譯器
機器碼
執行
高階程式語言設計之基本原理
規劃
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++程式
編譯
執行
程式解析-前置處理區
多以#開頭
前置處理區並不算C++正式指令,所以不
須在指令後加上「;」作為結束
用以指定使用哪些已提供函數
C++的輸出 (cout)、輸入 (cin)函數接定義於
iostream標頭檔中
#include 指令可有下列兩種格式:
#include <檔名>
搜尋系統的 INCLUDE 資料夾去找要含括的檔案
主要是用於含括標準函式庫中的含括檔使用。
#include “檔名”
指示前置處理器先到目前的工作目錄去找, 若找
不到, 再到系統的 INCLUDE 資料夾去找
常用於要含括自己寫的檔案
#include “B.cpp”
說明
C/C++舊型 C/C++新型
標頭檔
標頭檔
<math.h>
<cmath>
包含數學運算函數
<stdio.h>
<cstdio>
包含標準輸出輸入函數
<string.h>
<cstring>
包含字串處理函數
<iostream.h <iostream>
>
包含標準輸出輸入函數
<fstream.h> <fstream>
包含檔案輸出入的處理函數
名稱空間(Namespace)
早期C/C++語言將所有識別字(變數、函
數與類別)都定義為全域性名稱空間
名稱衝突/覆寫現象
名稱空間(namespace)
用來區分相同名稱且不同定義的變數、函數
或類別
C++新型標頭檔都定義在std名稱空間內
名稱空間(Namespace)
車庫
嬰兒座椅
氣動式按摩椅
氣動式按摩椅
舒壓震動按摩椅
MP3音響
CD音響
空力套件
減速車距警示系
統
後視鏡方向燈
圖片來源:豐田汽車 http://www.toyota.com.tw/
名稱空間(Namespace)
車庫1
車庫2
車庫3
嬰兒座椅
氣動式按摩椅
氣動式按摩椅
MP3音響
CD音響
空力套件
後視鏡方向燈
車庫4
舒壓震動按摩
椅
減速車距警示
系統
圖片來源:豐田汽車 http://www.toyota.com.tw/
如果不設定名稱空間,必須在每個函數
之前加上它的名稱空間
main()函數
C/C++程式的進入點(起始點)
稱main()為主程式
函數主體
(程式敘述)
函數有回傳值時
函數型態為 回傳資料型態 函數名稱(參數)
Return 0;
return EXIT_SUCCESS;
函數沒有回傳值時
函數型態為 void 函數名稱(參數)
int main( int argc, char *argv[])
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;
字元格式
\0
\a
\b
\t
\n (endl)
\r
\'
\"
\\
說明
產生空格(null space)
產生嗶聲(bell ring)
倒退(backspace)
移到下一個定位點(tab)
換行(newline)
跳到該行起點(carriage return)
插入單引號(single quote)
插入雙引號(double quote)
插入反斜線(back slash)