C++入門教程

缪语博發表於2024-10-11

C++入門教程

---------------------------------------------------------- 一. 初識C++ ---------------------------------------------------------

1. 什麼是C++.

c++是一種較為基礎的程式語言,雖然沒有Python,Scratch那麼高階,但是它應用範圍很廣.不論是資訊奧賽還是國家考試,都會出現它的身影.所以,學好c++成了入門計算機的第一步

2. C++的編譯.

所有的c++程式碼都需要編譯成EXE檔案.這裡推薦幾款好用而又著名的編譯器:

(1) Devc++

(2) CodeBlocks

(3) Visual Studio Code

3. 基本格式.

#include<bits/stdc++.h>//標頭檔案,這個是萬能的
#include<iostream>//標頭檔案
using namespace std;//名稱空間
int main()//main主函式
{
	return 0;//返回函式,考試必須寫
}

4. 影片連結.

我為此做過一個影片,大家可以撥冗看一下
bilibili
----------------------------------------------------- 二. C++的基本語法 -------------------------------------------------------

1. 命名變數.

在我們做數學題的時候,經常會碰到設未知數的問題.這個"未知數"有點像我們的變數,是隨機的.

格式: <型別名> + '空格' + <變數名>

例如:

int a;//int 型別,是整數型,範圍:-2147483647~2147483647;
double b;//double 型別,是浮點(小數)型;
long long c;//long long 型別,長整型,大約能存到18,19位;
char d;//char 型別,字元形式,至於什麼是字元形式,大家可以上網查一下ASCII碼錶;
string str;//string 型別,是字串型,可以想象成是很多個char連在一起;
bool n;//布林值,即 0 或 1 ;

2. 輸入輸出.

在我們執行其他的程式時,都會看見上面有一行一行的文字,這就使我們想到:我們在程式設計序時,如何輸入輸出呢?下面,給幾個例子給大家.

(1) 格式化輸入輸出.

scanf("");
printf("...(你想說的東東)");

其中,scanf的括號中的雙引號中的內容可以是你想輸入的變數.
例如:

  • %d 指的是 int 型別的數;

  • %c 指的是 char 型別的數;

  • lld 指的是 long long 型別的數;
    但是,格式化輸入輸出的應用並不是很廣,大家把重點放在下一條上.

(2) 流輸入輸出.

cin>>k>>p>>o;
cout<<"言吾MYB是大傻瓜"<<"你好,我是言吾MYB"<<o<<endl;

其中, <<>> 後可以加無限多的東西.

  • 雖然流輸入輸出更加方便快捷,但是速度會更慢.
    如果想達到同樣的效果,需加上這一句話:
std::ios::sync_with_stdio(false);

就能提高速度啦!

  • 補:
    之前,大家在程式碼中碰到了這樣的東西:
<程式碼>//...

那麼,這個 //... 是什麼東東呢??

它叫做註釋,是寫程式碼的人為了讓他人理解程式碼寫的玩意.

// 後面的內容,編譯器都是不看的.

前面我們已經講到了輸入輸出,那麼如何運算呢?今天,我們將繼續學習基本運算.

3. 基本運算.

(1) 加減乘除.

加減乘除和數學運算一樣,例如:

c=a+b;//將a+b的值給c;
c=a*b;
c=a/b;
c=a-b;
  • 其中,被賦值的數放在等號的左邊

注:

  1. 當某數自身加減時,可用 <某數>+=<加上的數><某數>=<某數>+<加上的數> 來解決.

  2. 特別的,當自身加一時,可用 <某數>++ 的形式來解決.

(2) 判斷運算.

當我們想要判斷這個式子是否正確時,就需要用到判斷語句.
格式:

if(<判斷的式子>==<結果>)//判斷是否等於.
{
	<寫下你想做的事情>
}
if<判斷的式子>>=<結果>)//判斷是否大於等於.
{
	<寫下你想做的事情>
}
.....

總之,運算子有以下幾種:

>= > !(非,不是,也就是為0)
<= < ?
== !=(不等於) ......
  • 其中,若這個式子不成立,則他的值為0;反之,為1.

(3) 迴圈運算.

在我們程式設計的過程中,難免會碰到迴圈的情況,如迴圈算數等.

1) while

格式:

while(<判斷>)
{
	<寫上你要寫的內容>
}
  • 注:

1.<判斷>的內容為判斷的算式,前面講過.
2.判斷的算式既可以是一個式子(例如: a+b==1 ),也可以是一個數字,其中除了 0 的值為0以外,其他全是1.

2) for(重點)

格式:

for(<起始點>;<終點>;<自加>)
{
    <寫上你要寫的內容>
}

例如:

for(int i=1;i<=100;i++)
//句子的意思是:
//定義一個 i ,從 1 開始,一直加到 100 ,每次自加 1 ;
{
    sum++;
}

所以,for語句相當於:

int i=<起始點>;
while(i<=<界限>)
{
    <寫上你要寫的內容>
    i++;//<自加>
}

4. 陣列(重點)

1) 定義及用法.

(一) 一維陣列

格式:

int a[100];
// 定義陣列a,大小為100;
int b[200];
char c[1000];
long long d[2618];
等等.

用法
(1). 迴圈輸入
例:迴圈輸入一組資料,輸出他們的和.
程式碼:

#inclde<bits/stdc++.h>
using namespace std;
int a[101];
int n;
long long sum=0;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        sum+=a[i];
    }
    cout<<sum;
    return 0;
}

(2). 迴圈輸入+排序
例:輸入一組資料,輸出它的從小到大的排序
程式碼:
*具體演算法後面會講解.

#inclde<bits/stdc++.h>
using namespace std;
int a[101];
int n;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    sort(a+1,a+1+n);
    for(int i=1;i<=n;i++)
        cout<<a[i];
    return 0;
}

(二) 二維陣列

格式:

int a[10][14514];
// 定義a二維陣列,大小為10*14514.
char k[14514][666];
long long kkk[1526][5];
等等.

用法:
儲存圖,二維資料等等,不舉例.

  • 補:上節課,我們講了一維陣列和二維陣列,但是,有沒有三維陣列和其他陣列嗎?
    答案是有.
    格式:
    <資料型別> + 空格 + <資料名稱>[第一維][第二維][第三維]...[第 n 維];
    表示方法為:
    <資料名稱> + [][][]...[];

5. 函式(超重點)

格式:

<資料型別> + 空格 + 函式名稱(任意名稱) + `(` + <多個變數> + `)`
{
    
}

在學習的時候,我們看到,主程式的開頭是:

int main()
{
    return 0;
}

6. 結構體

有時,我們會碰到一個物體的幾種資訊,例如一個學生的語文,數學,英語成績.這時,我們就要用到結構體來儲存資訊.
格式:

struct <結構體名稱>
{
    <結構體成員列表>
};
// 其中,“;"的前面可以加上你要定義的變數,如a[10];

也可以這樣定義變數:<結構體名稱> + 空格 + 變數名稱;
例:
輸入一組學生的成績:語文,數學,英語,輸出其總成績.
程式碼:

#include<bits/stdc++.h>
using namespace std;
int n;
struct chengji
{
    int chi,ma,en;
    int total;
}a[101];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].chi>>a[i].ma>>a[i].en;
        total=a[i].chi+a[i].ma+a[i].en;
    }
    for(int i=1;i<=n;i++)
        cout<<a[i].total<<' ';
    return 0;
}

7. 其他一些東西

C++的基本教程,基本上已經學完,但是,有一些細節還需要講一下.

(1) 井號鍵.

眼下,井號鍵後面跟兩種:include 和 define;
#define格式:
#define <被替代的程式碼> <替換的程式碼>

  • 注意,後面不加分號.

(2) 函式.

函式儘量寫在組函式的前面,並且函式可以互相呼叫.

相關文章