---
# System prepended metadata

title: 第一堂社課

---

# 政附資訊二十屆
## 第一堂社課

---

## Hello World

----

## C++的架構
```cpp=
#include<iostream>
using namespace std;

int main(){
    //你的主程式寫在這裡
}
```
```#include<iostream>``` :c++輸入/輸出的資料庫
(輸入輸出串流標頭檔)
```using namespace std;```:讓你不用打一堆字(std::cout->cout)(但如果你想寫也不是不行)
```int main()```: 主程式開始的地方

----

## Hello, World!
```cpp=
#include<iostream>
using namespace std;

int main(){
    cout <<"Hello, World!"<<endl;
}
```
output:

```
Hello, World!
```
```cout``` : 輸出
```"Hello, World!"``` : 
在寫程式的時候，任何文字一定要用雙引號包起來
```endl ```: 換行，也可以用```"\n"```

---

## Q1.跟社長打招呼
今天是政附資訊第一天，學員們都很高興可以認識新的朋友，尤其是我們的誠毅哥哥(社長)。
請寫出一段程式可以和小誠意Say Hello!

輸出: 
```
Hello President of ZFCSC!
Hello Little ChengYi!
```

----

## 答案

```cpp=
#include<iostream>
using namespace std;
int main(){
    cout<<"Hello President of ZFCSC!\nHello Little ChengYi!\n";
}

```

---

## 資料型別

----

在學習輸入之前，我們要先學會變數
| 名稱 | 儲存值 | 例子 |
| -------- | -------- | -------- |
| int | 整數 | 1 |
| float | 浮點數(小數) | 1.1 |
| bool | 布林值(1或0) | true |
| char | 字母 | a |
| string | 字串 | XiaoChengYi |

----

大部分變數都有他的最高存取值
int最多只能存到2147483647
可以透過以下方法增大存儲上限：
| 名稱 | 儲存值 | 例子 |
| -------- | -------- | -------- |
| long long int | 長整數 | 2315236424243 |
| double | 雙精度浮點數(小數) | 1234.15323 |

long long int 的上限是 9,223,372,036,854,775,807
double 是更精準的小數點，建議要存小數就直接用double不要用float

----

```cpp=
#include<iostream>
using namespace std;
int main(){
    int a;
    a=2008;
    int b=1007;
    int c=111111,d=a+b;
    double e= 3.1415926;
    cout <<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<endl;
}
```
output:
```
2008 1007 111111 3015 3.14159
```
```<<```：連續輸出資料時，用```<<```連接
```=```：用於"賦值"
將該運算子右邊的值賦予給左邊的變數

---

## 算術運算子

----

接下來我們簡單介紹幾個運算中常用到的運算子：
| 運算子 | 用途 | 範例 |
|:------:| :----: | :----: |
| + | 將左值加上右值 | ```a=3+2``` |
| - | 將左值減去右值 | ```a=3-2``` |
| * | 將左值乘上右值 | ```a=3*2``` |
| / | 將左值除以右值 | ```a=3/2``` |
| % | 取左值除以右值的餘數 | ```a=3%2``` |

----

## 注意！！！
(一)
算數運算子的運作方式與我們數學的四則運算一樣
"先乘除後加減"
用括號括起來的部分也會先運算
(二)
而當寫到"```a=a+2```"或"```a=a*2```"這樣子的寫法時
都可以簡化成"```a+=2```"或"```a*=2```"

----

## 注意！！！
(三)
寫程式時要記得寫```a+=2```，要避免只寫```a+2```
電腦只會算出```a+2```是多少，但不會存進```a```裡 
(四)
```
int a=3,b=2;
cout<<a/b<<'\n'<<(float)a/b<<endl;
```
output:
```
1
1.5
```

---

## 輸入

----

現在我們可以學輸入啦！
```cpp=
#include<iostream>
using namespace std;
int main(){
    int a,b;//宣告整數變數 a 和 b
    cin>>a>>b;
    cout<<"a/b= "<<(float)a/b<<endl;
    return 0;
}
```
input:
```
3 2
```
output
```
a/b= 1.5
```

---

## Q2.平均數
輸入整數a,b,c,d 計算這4個數字的平均，請輸出小數
```
範例輸入1:
1 2 3 4
範例輸出1:
2.5
```
```
範例輸入2:
3 4 6 8
範例輸出2:
5.25
```

----

## 答案

```cpp=
#include<iostream>
using namespace std;
int main(){
    int a,b,c,d;
    cin>>a>>b>>c>>d;
    cout<<(a+b+c+d)/4.<<endl;
    return 0;
}
```

---

## Q3.歲數
誠毅的年齡是小誠意的年齡的2倍+3, 而凱凱的年齡的十位數和誠毅相同，個位數和小誠意相同(保證凱凱、誠毅、小誠意的年齡都是2位數)，現在給你小誠意的年齡, 試著找出凱凱幾歲
```
範例輸入1:
8
範例輸出1:
18
```
```
範例輸入2:
12
範例輸出2:
22
```

----

答案：
```cpp=
#include<iostream>
using namespace std;
int main(){
    int kaikai, chengyi, xiaochengyi;
    cin>>xiaochengyi;
    chengyi=xiaochengyi*2+3;
    kaikai=(chengyi-chengyi%10)+xiaochengyi%10;
    cout<<kaikai<<endl;
    return 0;
}
```

---

## 推薦zerojudge題目：
a001哈囉
a002簡易加法