<style>
/* 顏色Color */
.colorRed{color:#FF0000;}
.colorDarkRed{color:#842029;}
.colorGreen{color:#A9FF33;}
.colorUfoGreen{color:#00AA88;}
.colorGold{color:#FFBB01;}
.colorBlue{color:#6699CC;}
.colorSkyBlue{color:#9FFFFF;}
.colorPurple{color:#CC99CC;}
.colorDarkPurple{color:#A141E8;}
.colorCyan{color:#0A9396;}
.colorOrange{color:#FF6347;}
.colorAlertDangerText{color:#A94442;}
.colorAlertWarningText{color:#8A6D3B;}
.colorAlertInfoText{color:#31708F;}
.colorAlertSuccessText{color:#3C763D;}
.colorAlertDangerBg{color:#F2DEDE;}
.colorAlertWarningBg{color:#FCF8E3;}
.colorAlertInfoBg{color:#D9EDF7;}
.colorAlertSuccessBg{color:#DFF0D8;}
/* 警報Alerts */
.alertBox {text-align: left;}
.alertBoxTitle{font-size: 26px; font-weight: bold;}
.alertBoxBody{font-size: 18px;}
.alertBoxBodyBlock{color: #FFF; background-color: #191919; padding: 5px; border-radius: 5px;}
</style>
<!-- 簡報開始 -->
# <span class="colorRed">C++ </span><span class="colorUfoGreen">程式設計</span>
### <span class="colorRed">自主學習期</span><span class="colorUfoGreen">末簡報繳交</span>
##### <span class="colorRed">善有善報 星有星爆 </span><span class="colorUfoGreen">不是不爆 十秒未到</span>
<!-- .slide: data-background="https://images7.alphacoders.com/599/599379.jpg"-->
<iframe width="1" height="1" src="https://www.youtube.c om/embed/?autoplay=1&loop=1&playlist=GWY0dwzbKew" title="HIGHEST" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
---
## <span class="colorRed">作者:</span><span class="colorGold">20733</span><span class="colorSkyBlue">盧冠佑</span>
<!-- .slide: data-background="https://memeprod.ap-south-1.linodeobjects.com/user-maker-thumbnail/0a362b183b35c1cff67610e7894b9e61.gif"-->
---
## 目錄
-----
1. 認識APCS
2. struct
3. Vector
4. ASCII
<!-- .slide: data-background="https://i.pinimg.com/originals/37/e0/79/37e0798f5124b3ddb70b01c1619698e8.gif"-->
---
# <span class="colorGold">1. 認識APCS</span>
----
## <span class="colorGreen">[APCS:](https://apcs.csie.ntnu.edu.tw/)</span>
APCS是指「大學程式設計先修檢測」。與各大學合作命題,並確定檢定用題目經過信效度考驗,以確保檢定結果之公信力。
----
## [成績說明](https://apcs.csie.ntnu.edu.tw/index.php/info/grades/)
### [採計成績大學校系](https://apcs.csie.ntnu.edu.tw/index.php/apcs-introduction/gradeschool/)

---
# <span class="colorGold">2. struct</span>
----
結構(struct)是為了讓開發者可以定義自己的資料型別,程式碼可以更容易被撰寫、除錯、維護。
```cpp=
struct people {
string name;
int age;
double tall;
};
```
----
寫入tcssh中100人的數據
```cpp=
struct people {
string name;
int age;
double tall;
};
int main(){
people tcssh[100];
for(int i=0;i<100;i++){
cin>>tcssh[i].name;
cin>>tcssh[i].age;
cin>>tcssh[i].tall;
}
}
```
---
# <span class="colorGold">3. Vector</span>
----
### vector是會自己擴張容量大小的陣列。
### 所以我們可以隨便加入或移除元素。
```cpp=
vector<int> xxx;
//vector<型態> 名稱(size(可省略),初始值(可省略));
//因為陣列不能 int f[n];
//所以想用變數設陣列用
//vector<int> f(n);
```
----
### 元素可以輸出
| | 前面 | 後面 |
| --- | --- | --- |
| 元素 | front() | back() |
| 位置 | begin() | end() |
----
| 功能 | code |
| --- | --- |
| 清除全部 | <span class="colorBlue">xxx.clear();</span> |
| 加入末項 | <span class="colorBlue"> xxx.push_back(f);</span> |
| 插入第n項 | <span class="colorBlue">xxx.insert(xxx.begin()+ n-1, f);</span> |
| 清單大小 | <span class="colorBlue">xxx.size()</span> |
| 首項 | <span class="colorBlue">xxx.front()</span> |
| 末項 | <span class="colorBlue">xxx.back()</span> |
----
| 功能 | code |
| --- | --- |
| 刪除末項 | <span class="colorBlue"> xxx.pop_back();</span> |
| 刪除第n項 | <span class="colorBlue">xxx.erase(xxx.begin()+ n-1);</span> |
| 改寫第n項 | <span class="colorBlue">xxx.insert(xxx.begin()+ n-1, f);</span><span class="colorRed">xxx.erase(xxx.begin()+ n);</span> |
| 清單大小 | <span class="colorBlue">xxx.size()</span> |
----
```cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
// 格式 vector<資料型態> 變數名稱(size,初始值(可省略))
int g,f,n;
int j=1;
vector<int> xxx;
cout<<"0清除全部 1加入末項 2插入第n項 3清單大小 4首項 \n5末項 6刪除末項 7刪除第n項 8改寫第n項 9列印清單 \n";
while(cin>>g){
if(g==0){xxx.clear();
cout<<"處理完成"<<endl;}
if(g==1){cout<<"數 =";
cin>>f;
xxx.push_back(f);
cout<<"處理完成"<<endl;}
if(g==2){cout<<"項 =";
cin>>n;
cout<<"數 =";
cin>>f;
xxx.insert(xxx.begin()+ n-1, f);
cout<<"處理完成"<<endl;}
if(g==3){cout<<"清單大小= "<<xxx.size()<<endl;}
if(g==4){cout<<"首項= "<<xxx.front()<<endl;}
if(g==5){cout<<"末項= "<<xxx.back() <<endl;}
if(g==6){xxx.pop_back();
cout<<"處理完成"<<endl;}
if(g==7){cout<<"項 =";
cin>>n;
xxx.erase(xxx.begin()+ n-1);
cout<<"處理完成"<<endl;}
if(g==9){for(int i=0;i<xxx.size();i++){
cout<<xxx[i]<<" ";}
cout<<endl;}
if(g==8){cout<<"項 =";
cin>>n;
cout<<"數 =";
cin>>f;
xxx.insert(xxx.begin()+ n-1, f);
xxx.erase(xxx.begin()+ n);
cout<<"處理完成"<<endl;}
if(j>5){j=1;
cout<<"0清除全部 1加入末項 2插入第n項 3清單大小 4首項 "<<endl
<<"5末項 6刪除末項 7刪除第n項 8改寫第n項 9列印清單 "<<endl;}else{j++;}
if(g>9 or g<0){cout<<"error"<<endl;}
}
return 0;
}
```
---
# <span class="colorGold">4. ASCII</span>
----
在電腦中,所有的數據在儲存和運算時都要使用二進制數表示。而具體用哪些二進制數字表示哪個符號,這就是編碼。
<span class="colorGold">如果不同的電腦要想互相通訊而不造成混亂,那麼每台電腦就必須使用相同的編碼規則,於是就推出了ASCII編碼</span>
----
| 編碼 | 意義 |
| --- | --- |
| 48~57 | 0~9 |
| 65~90 | A~Z |
| 97~122 | a~z |
----
## <span class="colorGold">用途</span>
----
```cpp=
#include <bits/stdc++.h>
using namespace std;
int main(){
string a;
int n=0;
cin>>a;//假設a有數字和英文混合
for(int i=0;i<a.size();i++){
if((a[i]-'0')>=0 and (a[i]-'0')<=9){
n=n*10+(a[i]-'0');
}
}
cout<<n;
return 0;
}
```
---
# <span class="colorGold">報告完畢</span>
#### <span class="colorDarkPurple">I am atomic!!!</span>
<!-- .slide: data-background="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBFXyFDS9Bz5xYabp6UksU8PVKp5vegthQbP-OoJ9P928OtCuTAZU9vky6-xj7Uw9n-b273AC5ZTmPpiHr6axo016_pQsqIR3zZcZDUNauhQ2ZvK3tb4otLD8P6hum0yVc2eeYpMN3LGpFJ3LKfqnvlfKShV9sjW_44PrWedsRgt5Vf2_Xn9Rk/s1600/Kage%20no%20Jitsuryokusha%20ni%20Naritakute!%20S2%20-%20Episode%2012%20%5BEND%5D%20-%20Shadow%20I%20Am%20Atomic.gif"-->
{"title":"期末","contributors":"[{\"id\":\"c76bed1b-fb21-4b17-b55a-3c804f01e602\",\"add\":12585,\"del\":6314}]"}