# 20191114 基礎班
> 簡報最後更新時間:11/17 12:19
---
## 本日課綱
* GitHub 作業繳交方式
* 作業檢討:成績判斷改成 0.0 ~ 10.0
* float 練習:Fahrenheit
---
## Fahrenheit 華氏溫度

----
### 回顧
```cpp=11
#include <iostream>
using namespace std;
int main() {
float pi = 3.1415926535;
cout << pi;
}
```
----
### 題目要求
輸入攝氏溫度,顯示華氏溫度的轉換結果
`F = ((C * 9) / 5) + 32`
----
### 測試資料
| 測資 1 | 測資 2 |
| ------ | ------- |
| C:0<br>F:32.0 | C:100<br>F:212.0 |
---
## 接下來是課後新增的內容
---
## 台灣資訊培訓相關資源彙整
https://github.com/goodjack/awesome-cs-training
---
## float 作業參考解答
```cpp=1
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 5; i++) {
float score;
cout << "成績?";
cin >> score;
if (score == 10.0) {
cout << "滿分";
} else if (score > 6.0) {
cout << "及格";
} else {
cout << "不及格";
}
}
}
```
---
## Do-While
至少會做一次的 While 迴圈
```cpp
int score;
do {
cout << "請輸入本次考試成績:";
cin >> score;
} while (score < 60);
cout << "你已通過本次考試,不用再考了";
```
---
## 雙重迴圈
以時鐘為例
```cpp
for (int min = 0; min < 60; min++) {
for (int sec = 0; sec < 60; sec++) {
cout << "min = " << min;
cout << "\n sec = " << sec;
cout << "\n";
}
}
```
---
## AND、OR、NOT
----
### AND
```cpp
// 60 <= score < 100
if (score >= 60 && score < 100) {
cout << "及格,但可惜沒滿分";
}
```
----
### OR
```cpp
// 超過一百分或低於零分
if (score > 100 || score < 0) {
cout << "你怎麼可能拿這個分數";
}
```
----
### NOT
```cpp
// 沒有不及格
if (!(score < 60)) {
cout << "及格";
}
```
----
### AND、OR、NOT
假設宣告 `x = 5`、`y = 4`
| 符號 | 運算子 | 中文翻譯 | 結果為 true 的範例 |
|:----:|:------:|:--------:|:------------------ |
| `&&` | AND | 而且 | `x < 10 && y > 3` |
| `||` | OR | 或者 | `x < 2 || y > 3` |
| `!` | NOT | 非 | `!(x == y)` |
----
### 優化程式
兩者結果一樣,但是可讀性與效能不同
```cpp
if (x % 2 == 0 && x % 3 == 0)
```
```cpp
if (x % 6 == 0)
```
---
## 本週作業
----
### 作業 0:攝氏溫度轉華氏溫度
課堂中練習的作業。
----
### 作業 1:直角三角形
四個方向的三角形 `◣ ◤ ◢ ◥`
* 請先做第 2 題,這題目前還是當加分作業
* 之後我們會有類似的題目可以用這題改寫,先寫下次就省時間
----
### 作業 2:錢包問題
最少有多少個銅板+紙鈔可以湊到給定金額?
* 幣值:`1000`, `500`, `100`, `50`, `10`, `5`, `1`, `0.5`, `0.1`
* 金額有可能大於四位數
* 金額有可能有小數
* 做不出來上面的話至少要做:`1000`, `100`, `10`, `1`
注意:含有小數點的金額可能會有誤,你需要先將金額轉換成整數處理。
----
### 錢包問題作業注意事項
* 請 ==使用 Do-While== 確認使用者輸入正確金額
* 請注意浮點數的不準確性,你應該要將使用者輸入的金額都轉換成以「角」(0.1 元)為單位,意即 ==把 `float` 轉為 `int`== ,以避免相加的錯誤。
* 當然,不要只是將使用者的輸入從 `float` 轉換為 `int`!一角等於多少元?
---
## 作業繳交連結
0. 攝氏溫度轉華氏溫度
https://classroom.github.com/a/Ua3h9iZa
1. 直角三角形
暫時不用繳交
2. 錢包問題
https://classroom.github.com/a/nKSe8RDw
注意:含有小數點的金額可能會有誤,你需要先將金額轉換成整數處理。
---
## 作業上傳方式
----
### 1. 選擇姓名
當你第一次領取作業時,
會需要將你的姓名與你的 GitHub 帳號綁定。

----
### 2. 接受作業

----
### 3. 完成建立 repo
點選網址進到本次作業專屬 Repository

----
### 4. Creating a new file
選擇藍色區塊的「Creating a new file」

----
### 5. 輸入檔名
請記得包含副檔名,如 C++ 的 `.cpp`

----
### 6. 下方貼上你的程式碼
記得按 Preview 頁籤確認內容

----
### 7. 撰寫更新資訊後提交
撰寫 Commit message 和 description 後,按「Commit new file」

----
### 8. 成功
確認程式碼出現於 repo 列表中。
若需要上傳其他檔案,
可以再按右上方的「Create new file」。

---
## 簡報更新記錄
* 作業繳交連結
* Do-While
* OR 範例修正
* NOT
* AND、OR、NOT 統整表格
* 錢包問題作業注意事項
* 作業上傳方式
> 簡報最後更新時間:11/17 12:19
{"metaMigratedAt":"2023-06-15T01:28:46.389Z","metaMigratedFrom":"Content","title":"20191114 基礎班","breaks":true,"contributors":"[{\"id\":\"39811bc9-1305-4534-84c5-a4c97d2ac539\",\"add\":4296,\"del\":2477}]"}