## 資料型態(Data type) ## 變數 & 賦值 <br><br/> ### 映佑 --- Q:「變數」??? Q:「資料型態」??? ![](https://i.imgur.com/JQ68301.png =10%x)![](https://i.imgur.com/JQ68301.png =10%x)![](https://i.imgur.com/JQ68301.png =10%x) ![](https://i.imgur.com/iyhjclE.png =10%x) ![](https://i.imgur.com/iyhjclE.png =10%x) ![](https://i.imgur.com/iyhjclE.png =10%x) ---- 想像資料是「燈管」 (自己設/輸入) 變數就是一個一個不同的「箱子」 (空間) 區別箱子 -> 「標籤」 (名稱) --- ### 變數名稱:標籤 - 不可以是保留字 - 開頭不可以是數字 - 不可以有空格 -> 可以用_代替 - 不可以有特殊字元(%@!) *大小寫視為不同名稱 ---- ![](https://i.imgur.com/TNKDaDL.png =60%x) ---- ### try try see 1.哪些是對的? ```cpp= I2TRC2 113KGHS WHO AM I HOW_ARE_YOU namespace ``` :::spoiler ans? 1 4 ::: --- ![](https://i.imgur.com/iAcWv9W.png =15%x) ![](https://i.imgur.com/iAcWv9W.png =10%x)  ![](https://i.imgur.com/sGooE8Z.png =10%x) ![](https://i.imgur.com/vXye2XZ.png =8%x) ### 要規定箱子的規格 ---- 程式的領域.... ### 不同的資料需要不同空間大小來儲存 --- <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:** 目前電腦中用得最廣泛 ---- ![](https://i.imgur.com/4OkTZsx.png) ---- - 控制字元: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}]"}
    348 views