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)