# 資訊科技競賽培訓 Day 2 (語法)
---
讓我們來試試看寫程式吧
---
程式是甚麼?
----
用來指揮電腦的一堆的指令
<!-- 我們給了電腦,像是圖上的指令,而這個指令是電腦可以讀懂的,讀懂這些指令之後,就會給予相對的反饋。-->
<!-- 喔對,順帶一提,圖上的程式碼,其實電腦不能直接看懂,還要經過一連串的轉換,變成0101,也就是機器碼 -->

----
|||||
<!-- 有點像是有一份食譜,把份食譜丟給廚師,廚師就會遵照上面的指令,做出一道道的菜 -->
----
套到電腦上
程式 -> 電腦 -> 電腦行為
---
### C++
----
上次解釋過為甚麼要選他了
----
首先我們要先準備好寫C++的環境,畢竟隨便寫個英文字,電腦是讀不了的
---
### 環境安裝
----
要在哪裡寫程式?
----
我們如果要打報告的話會用word
要做簡報的話會用powerpoint
那寫程式呢?
----
### IDE 整合開發環境

----
### Dev-c++

[下載連結](https://sourceforge.net/projects/orwelldevcpp/)
<!-- 這裡演示給他們看 -->
---
正式開始寫吧!
----
### 基本架構
----
```cpp=
#include<iostream> // 標頭檔 包了很多方便的功能
using namespace std; // https://zh.wikipedia.org/wiki/%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4#cite_note-1
int main(){ // 主函數
return 0; // 函數 ( 程式 ) 執行完畢
}
```
* 將程式碼放到`{}`中
* 程式會由上往下執行,執行到`return 0;`結束
* 可以用TAB鍵將程式碼往右推
----
### 輸出
```cpp=
#include<iostream>
using namespace std;
int main(){
cout << "你要輸出的文字";
cout << "輸出這句後會換行" << endl;
cout << "這個也會換行喔~" << '\n';
return 0;
}
```
----
* `cout`念作"c out",代表輸出
* 後面接`<<`方向不要錯了(把東西往左丟到cout,讓他出去)
* 接著打上輸出的文字,記得用`""`包起來 (google 字串)
* 最後面要加`;`,代表該行程式碼的結束
* `endl`意思是"end line",加了這個會換行
* 也可以用`'\n'`換行(google 跳脫字元)
----
練習看看
----
### 變數與輸入
----

[圖片連結](https://www.xq.com.tw/xs%E8%AA%9E%E6%B3%95%E5%85%A5%E9%96%80-%E8%AE%8A%E6%95%B8/)
可以將變數想成裝資料的容器
裝進去的東西可以再變動
----
### 宣告變數
把容器弄出來然後幫他取名字
```cpp=
#include<iostream>
using namespace std;
int main(){
int a;
}
```
* `int`指的是整數,是一種變數型態
* `a`是這個變數的名字
----
### 變數型態
變數型態有很多種,這邊列舉一些常用的
* `int` 整數(integer) $-2^{32}+1$ ~ $2^{32}-1$ <br> 例:1, -3, 0, 48763
* `double` 浮點數 15位有效數字 <br> 例:0.1, -0.22, 4.0
* `char` 字元(character) 存一個字 <br> 例:'a', 'R', '&', '0'
* `string` 字串 存一行字 <br> 例:"StarburstStream"
* `bool` 布林(boolean 存是非 <br> 例:true, false
*
----
### 命名規則
* 不能以數字開頭 <br> 例:1a, 2p
* 不能跟保留字一樣 <br> 例:if, int... [保留字清單](https://iter01.com/542396.html)
* 建議:<br>變數拿來做什麼的就取什麼,<br>這樣自己比較好懂
----
### 輸入
```cpp=
#include<iostream>
using namespace std;
int main(){
int a;
cin >> a;
cout << a;
return 0;
}
```
* `cin`念作"c in",代表輸入
* 後面接`>>`方向不要錯了(把東西丟到右邊變數)
* 接著放接收輸入資料的變數`a`
* 最後將`a`這個變數裡面存的資料輸出
----
練習看看
----
### 變數賦值
```cpp=
#include<iostream>
using namespace std;
int main(){
int a = 5;
int b;
b = 48763;
return 0;
}
```
* 賦值的符號是`=`,左邊放接受資料的變數,右邊放賦予的值
* 可以在宣告變數的時候先給變數一個初始值
* 也可以宣告完後再賦值
----
### 更改變數值
```cpp=
#include<iostream>
using namespace std;
int main(){
int a = 5;
int b;
b = 48763;
a = 13;
b = a;
return 0;
}
```
* 變數被賦值後可以再做變更,就在賦值一次就好
* 賦予的值也可以是一個變數
----
練習看看
----
### 變數的運算
運算的規則跟數學一樣,括號`()`優先,然後先乘`*`除`/`後加`+`減`-`
```cpp=
#include<iostream>
using namespace std;
int main(){
int a = (6+7) * 4 + 23;
cout << a;
return 0;
}
```
----
### 除法
c++裡面`/`代表除以,而且是無條件捨去,<br>要得到小數的答案,就必須用`double`資料型態儲存
```cpp=
#include<iostream>
using namespace std;
int main(){
int a = 7/4;
cout << a << endl;
double b = 7.0/4.0;
cout << b << endl;
return 0;
}
```
* 第一行會輸出1,因為7除以4的商是1
* 第二行會輸出1.75,因為7除以4等於1.75
----
練習看看
----
{"metaMigratedAt":"2023-06-18T01:54:45.425Z","metaMigratedFrom":"Content","title":"資訊科技競賽培訓 Day 2 (語法)","breaks":true,"contributors":"[{\"id\":\"f547d745-63f3-4bad-986b-1751eeec19d1\",\"add\":4071,\"del\":433}]"}