## 資料型態(Data type)
## 變數 & 賦值
<br><br/>
### 映佑
---
Q:「變數」???
Q:「資料型態」???

  
----
想像資料是「燈管」 (自己設/輸入)
變數就是一個一個不同的「箱子」 (空間)
區別箱子 -> 「標籤」 (名稱)
---
### 變數名稱:標籤
- 不可以是保留字
- 開頭不可以是數字
- 不可以有空格 -> 可以用_代替
- 不可以有特殊字元(%@!)
*大小寫視為不同名稱
----

----
### try try see
1.哪些是對的?
```cpp=
I2TRC2
113KGHS
WHO AM I
HOW_ARE_YOU
namespace
```
:::spoiler ans?
1 4
:::
---
 
 
### 要規定箱子的規格
----
程式的領域....
### 不同的資料需要不同空間大小來儲存
---
<p align="left"> </p>
## 資料型態
>1. 數字 2. 文字 3. 真偽
---
## 數字:
- int -> 有範圍限制的整數
- long long -> 範圍比較大的整數
- float -> 小數點
- double -> 比較精準的小數點
----
### 整數 int
- -2^31^~2^31^-1 //溢位
- -2,147,483,648 ~ 2,147,483,647
- 一個int 有 4 個byte (位元組)
- 一個byte 有 8 個bit (位元) -> 01 二進制
----
### 命名(宣告)
> *要先宣告才能使用*
- int a; -> (將一個只能放整數int的盒子命名為a)
- int b,c,d; -> (同時命名->逗號相隔)
- int e=3; -> (直接賦值)
----
### 賦值
```cpp=
a=1;
b=c=2;
cin >> d >> e;
```
----
### 運算
- 加減乘除:a=a+1;
- 加減乘除:a+=1;
- 加一減一:a++; a- -;
:::warning
整數除法是**無條件捨去** 8/3=2.66... => 2
:::
----
### try try see
1.
```cpp=
int x=500;
x=x/100;
x--;
cout << x;
```
:::spoiler 輸出?
4
:::
----
### try try see
2.
```cpp=
int x=5,y=3;
x/=y;
x*=2;
cout << x;
```
:::spoiler 輸出=?
2
:::
----
## 題單:
1. [TOJ 521 - 買買買](https://toj.tfcis.org/oj/pro/521/)
2. [TOJ 527 - 九九取整表](https://toj.tfcis.org/oj/pro/527/)
3. [TOJ 523 - 酪梨之魔眼](https://toj.tfcis.org/oj/pro/523/)
---
## 文字:
- char(字元)
- string(字串)
----
### char 字元
#### 編碼
- 文字被「編碼」轉成「數字」在電腦中儲存
- **ASCII:** 目前電腦中用得最廣泛
----

----
- 控制字元:0~31 & 127
- 可顯示字元:32~126
<br><br/>
- 數字、大寫字母、小寫字母連續的
- a & A 差32 (大小寫字母視為不同)
----
### 字元
- 只代表一個字(字母)
- 'A'、'5'、'\n'
- ( ASCII 10:LINE FEED)
- 字元常數 '要用單引號'
----
### 宣告 & 賦值
```cpp=
char a;
a='A';
```
- 字元是用整數儲存
- 數值跟其ASCII碼相等
- 'A' == 65
----
### 字元 <--> 整數
###### ASCII碼 '0'->48
#### 轉整數
```cpp=
cout << (int)'0' << " " << 0;
```
:::spoiler 輸出?
48 0
:::
----
#### 轉字元
```cpp=
cout << (char)48 << " " << 48;
```
:::spoiler 輸出?
0 48
:::
----
### try try see
```cpp=
char a='A';
cout << (int)a << " " << (int)'a' << "\n";
```
:::spoiler 輸出?
65 97
:::
----
## 題單
1. 輸入一個字母,如果是大寫,請把它轉成小寫,反之亦然。
(可能會再把一些題目放到zj)
2. [TOJ 100 - English Alphabet](https://toj.tfcis.org/oj/pro/100/)
3. [TOJ 101 - English Alphabet Prime](https://toj.tfcis.org/oj/pro/101/)
---
### 真偽:
- 布林值 bool
- true(真/1) false(假/0)
- c++ 保留字
```cpp=
bool b;
true/false
```
----
一定要用bool嗎?
```cpp=
int flag=1;
```
整數的0 & 1也可以是偽 & 真
---
## 快樂的下課~
{"metaMigratedAt":"2023-06-16T22:14:50.743Z","metaMigratedFrom":"Content","title":"Untitled","breaks":true,"contributors":"[{\"id\":\"bd14fd49-dd6a-4999-86c3-e9ac29b197fe\",\"add\":3812,\"del\":852}]"}