# 政附資訊二十屆
## 第一堂社課
---
## 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簡易加法