# 程式語言的分類

  • “翻譯” 的兩種方式:
    • 編譯型語言:
      一次將編寫的整个程式 "翻譯" 成機器語言的指令,保存成文件,以後執行不再 “翻譯”,只要執行翻譯過的文件即可。
      如:Fortran、C、C++、Pascal 等。

    • 解釋型語言:
      解釋一句執行一句,直到執行完所有命令,或遇到錯誤。
      如:Basic、ASP、PHP、Python、Java 等。

  • 編譯型語言編程步驟:
graph LR
subgraph 第一步
  編輯
  源文件.cpp
end
編輯-->編譯
subgraph 第二步
  編譯
  目標文件.obj
end
編譯-->連接
subgraph 第三步
  連接
  可執行文件.exe
end

# 基本結構

# 第一段程式碼

#include <iostream>                   // 為了要使用 cout 而引入的標頭檔
using namespace std;                  // 為了更方便使用 cout 的註明
int main()                             //main () 函數的開始
{
    cout << "初次嘗試C++" <<endl;       // 真正的程式從這樣一行開始
    cout << "要好好加油喔!" <<endl;    // 接下來執行到這一行
    return 0;                          //main () 函數的結束
}

# C++ 基本要素

# 標識符

  • 標識符: 程式中變數、類型、函式和標號的名稱。
    a,b,name,int, char,main,void 等
  • 關鍵字: 系統已有的標識符
    常見關鍵字:
    • using, namespace, void, return
    • int, float, double, char, bool, signed, unsigned, long, short ,const , true, false, sizeof
    • if, else, for, do, while, switch, case, continue, break
    • class, struct, private, public, this, new, delete
  • 自訂義標識符: 自己給變數、函數等起的名字
    命名規則:
    • 由字母、數字和下劃線组成
    • 第 1 個符號不能是數字
    • 區分大小寫(大小寫敏感)
int a,b,c;
int A,B,C;
double a1,b2,c3;
double table_width, table_height;
char _name[40], _address[100];
int 1a,2b,3c; //× 不合法的標識符

# 運算子、表達式

  • 運算子: 表示運算符號
    • 算術運算子 +-*/%
    • 關係運算子 ><>=<=
  • 表達式: 表示運算的式子
    • 可以是一個變數,一個常數 ab5
    • 也可以是用運算子將變數、常數連接起來 3+5a+ba>b
    • 還可以用運算子將表達式連結起來 (a+b)*(a-b)

# 語句

  • 每一段的程式碼都需要用分號 。(很重要)
  • 它代表一個表達完整的命令。
int a,b,c;// 這是一個說明语句,說明用 a,b 表示整數
a+b // 這是一個表達式,雖然能表達加法運算,但沒有說明運算結果也如何處理 (CE)
c=a+b; // 語句,計算 a 和 b 的和,將结果存入 c 中
a+b; // 在 C++ 中也是語句,但這個語句沒什麼作用
a; // 也是語句,但也沒什麼作用
;;; // 這是 3 個
c=a+b // 雖然有等號,但没有分号,也不是语句
  • 等號也是運算子,等號連接起来的式子是表達式,如 c=a+b
  • 只有加上分號,才是語句 c=a+b;
  • 等號的左邊必須是變數
    5=3 (a+b)=c+d ×
    a+(b=c+d) a+(b=c)+d

# 輸入 、 輸出

在 C++ 中,使用 cincout 以在終端機獲取和輸出資料。
<<>> 代表資料流動方向。

{
    int n; // 宣告變數 n
    cout<< "請輸入數字:";
    cin >> n; 
    cout <<"你輸入的數字為: " << n << endl;
}

endliostream 中的一個物件,功能是換行

# 函式 function

能完成一定功能的有名的程式序列,是組成 C++ 程序的基本單位。

  • main 函数
    C++ 的運行就從這裡開始
int main()
{
	int a,b;
	cin>>a>>b; cout<<a+b<<endl; return 0;
}
  • 系统函式
    sin(x) , cos(x) , exp(x) , sqrt(x)

  • 自定函式

# 工程師的好習慣

# 註解

不管在哪個語言裡註解都相當的重要。
可以用來告訴其他工程師你的想法或區分方式。
// 為單行註解, /* */ 為多行註解。

// 我是單行註解
/*
我是多行註解
可以跨越很多行喔
*/

# 縮排

雖然,縮排在 C 語言裡不會影響到電腦的判讀。
但是,好的工程師就應該要有好的縮排習慣。(超重要)
亂縮排的話,小心我突然出現在你背後喔
縮排方式:按 tab鍵 將區塊內的程式碼排好。

// 未縮排 (可讀性低)
int main(){
int n = 5;
if(n<5){
n+=18;
}
cout<<n<<endl;
}
// 縮排
int main(){
    int n;
    if(n < 5){
        n+=18;
    }
    cout<<n<<endl;
}

# 縮排風格

工程師放置大括號的位置也會有些區別,
是因為他們使用的是不同的縮排風格喔!
主流的風格有兩種,分別是: Allman styleK&R style 的變形

//Allman
int main()
{
    int x = 5,y = 7;
    if(x < y)
    {
        cout<<"x < y"<<endl;
    }
    else
    {
        cout<<"x > y or x = y"<<endl;
    }
}
//K&R 變形 ->OBS
int main(){
    int x = 5,y = 7;
    if(x < y){
        cout<<"x < y"<<endl;
    }else{
        cout<<"x > y or x = y"<<endl;
    }
}

其實還有很多種不同風格,可以到維基百科看看喔~

# 命名守則

在使用變數之前,我們必須為其設定一個名字。
設定一個名字,除了要跟隨著名命名基本原則外,
取的名稱應該與功能有關 (雖不強制,但很重要,關係到可讀性)。

// 錯誤示範
int a,b,c,d,e,f;
float g;
string h;
// 正確示範
int n;         // 數量
int x , y;     // 變數
int sum,total; // 總數
float area;    // 面積
string name;   // 名字
// 當然還有很多例子

# 常見編譯錯誤

編譯錯誤,常常發生我們的疏失,竟可能將這種錯誤降到最低。

初學時,最容易出現三種編譯錯誤:

# 忘記加分號

#include<iostream>
using namespace std;
int main(){
    int x = 1 , y = 93
    cout<< x + y<<endl
}
expected ‘ ; ’ before ‘ ... ’ token

解決方案:在錯誤出現處的行末尾加上 ;

# 括號沒括好

#include<iostream>
using namespace std;
int main(){
    int x = 8 , y = 13;
    if(x < y){
        cout<< x + y <<endl;
    else
        cout<< x - y <<endl;
    }  
}
expected ‘ } ’ before ‘ ... ’ token```

解決方案:檢查自己縮排的狀況,並找出遺漏的 } 並補上

# 忘記宣告

#include<iostream>
using namespace std;
int main(){
    if(x < y){
        cout<< x + y <<endl;
    }else{
        cout<< x - y <<endl;
    }
}
“ 變數/常量/函式 ” was not declared in this scope

解決方案:
1. 檢查變數是否在使用前被宣告,若無則就宣告它 。
2. 確認使用的預設函式標頭檔是否已被宣告,若無則宣告它。

更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay