基礎程式-C++
Text
Index
首先,在你的C++環境下輸入下面這一段程式碼
#include<iostream>
using namespace std;
int main()
{
cout << "Hello World!";
}此時,程式應該會輸出Hello World!的字樣
其中 #include <iostream> 代表所引用的檔案
(iostream是c++的標準函式庫)
using namespace std; 則代表使用的命名空間,像是cout就是在std這個命名空間裡
int main() 主函式,丟了之後程式會執行的函式
cout是c++的輸出指令,加上<<後會輸出後面的東西
程式舉例如下:
cout << "Hi"; // Hi
cout << 12345; // 12345
cout << "Hello World!\n";//輸出Hello World!並換行
題目練習:
變數
在程式中,我們需要告訴電腦東西的類別才能進行對應的運算,以下是一些常見的變數:
int
long long
char
string
double
bool
整數,佔4byte,範圍為 -2^31~2^31-1
整數,佔8byte ,範圍為 -2^63~2^63-1
字元,會是'a'的形式
字串,會是"string"的形式(Hello World的輸出就是這個!)
可以用來儲存非整數的數值
布林值,判斷true or false
變數
在程式中,我們會使用=來為變數賦值,通常格式如下:
變數型態 變數名稱 = 變數的值
int number = 10;
long long largeNumber = 20;
char ch = 'a';
string str = "hi";
double num = 1.3;
bool is = true;
陣列
如果有時候我們想要存多個值,一種作法是使用多個變數,像是
int a, b, c, d, e;
而在程式中,我們有另外一個方法來儲存:陣列
語法為 變數型別 變數名稱[長度]
例如: int arr[5];
在電腦的世界中,是從0開始,上面的陣列裡面會有
arr[0], arr[1], arr[2], arr[3], arr[4]這五個元素
而陣列是可以有多個維度的,像是arr[2][2]
就會有arr[0][0], arr[0][1], arr[1][0], arr[1][1]
四個元素
輸入/輸出
設定好變數以後,可以使用
cin >> a >> b;
來輸入你想要輸入的值
題目要輸出的時候,使用
cout << a << b;
就可以進行輸出
Hint: 要記得箭頭的方向!
自定義型態類別-struct
struct name
{
//自定義的內容(data member)
int age;
string school;
}; // 要記得最後分號
name lin; // 資料型別為name 的lin運算
int a = 3 + 5; # 8 加法
a += 1; # 9
a = a - 7; # 2 減法
a -= 1; # 1
a = a * 2; # 2 乘法
a *= 4; # 8
a = a / 2; # 4 除法
a /= 4; # 1
a = 17 % 5; # 2 取餘數
a %= 2; # 0
運算-判斷
>= > <= < == != 比較大小
|| 或 or
&& 和 and
^ xor
if-else
if(條件式1)
{
條件式1成立執行這個;
}
else if(條件式2)
{
條件式1成立,條件式2不成立執行這個;
}
else
{
條件式均不成立執行這個;
}運算題目
if-else題目
迴圈-for
有時候,我們會重複做一件事很多次,此時就可以用迴圈來重複多次的運作。
像是for 迴圈,下面是一個迴圈的舉例:
for (int i = 0; i <= n; i++)
{
cout << i << endl; //迴圈執行的內容
}
先看第一行程式碼:for (int i = 0; i <= n; i++)
int i = 0; 執行到迴圈時,第一件要做的事
i <= n; 迴圈持續進行的條件
i++ 迴圈跑到最後的時候,要執行的動作
迴圈-while
int i = 0;
while(i <= n) // 括號內放迴圈繼續進行的條件
{
cout << i << endl;
i++;
}
題目練習
函式
在hello world中,我們的程式被main包住,又稱為主函式
這裡要來介紹其他函式
先看下列程式
int f(int x)
{
return x * 3 + 1;
}
int main()
{
cout << f(3);
}函式回傳型態 函式名稱(參數)
{ // 你要的內容
return 你要回傳的內容;
}
函式
常用到的函式有以下內容:
min(a, b) / max(a, b)
abs(a)
swap(a, b)
sqrt(a)
pow(a, b)
sort(arr, arr + n)
而函式型別多了一個void
是可以不用回傳東西的函式
遞迴
先看費式數列
第n項為第n - 1項和第n-2項之和
可以以下列函數的形式來表示
f(n) = f(n - 1) + f(n - 2)
其中f是一個函數
遞迴的精妙處在於
你先假設這個狀態是好的,再由這個狀態繼續推導式子
遞迴
一些題目 (未依照難度排序)
題單紀錄
可以在這裡記錄自己的解題紀錄喔!
Minimal
By yujuan
Minimal
- 134