###### tags: `MDCPP講義` # 程式初探 語法班 第一堂課 --- ## 什麼是程式呢? ---- ![](https://i.imgur.com/Lb3Qn7P.png) [連結](https://www.csie.ntu.edu.tw/~b98902112/cpp_and_algo/what_is_program/README.html) 簡單來說: 我們輸入資料 程式將資料讀入並做一些處理 最後再輸出資料 這裡程式就是我們處理資料的方法 --- ## 為什麼要學C++? ---- + 基本好上手 + 執行速度快 + 大學會教 --- ## 要在哪裡寫程式? ---- 我們如果要打報告的話會用word 要做簡報的話會用powerpoint 那寫程式呢? ---- ### IDE 整合開發環境 ![](https://res.cloudinary.com/practicaldev/image/fetch/s--oJL80gV0--/c_imagga_scale,f_auto,fl_progressive,h_900,q_auto,w_1600/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dvoiivqqp9tii26y5raq.png) ---- ### Dev-c++ ![](https://i.imgur.com/uyk6R2S.png) [下載連結](https://sourceforge.net/projects/orwelldevcpp/) ---- ### Code::Blocks ![](https://i.imgur.com/gHewG5q.png) [下載連結](https://sourceforge.net/projects/codeblocks/files/Binaries/20.03/Windows/codeblocks-20.03-setup.exe/download) ---- 講師推薦使用CodeBlocks 因為這個IDE是APCS御用 ~~用Dev c++根本毒瘤~~ --- ## 基本架構 ---- ```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> ``` `#include`就是包括、包含的意思 `<iostream>`就像是一個工具箱(標頭檔) 我們如果想要找到適當的工具(函數) 就得從適合的工具箱裡面拿 ---- ```cpp= using namespace std; ``` 同一個單字在不同語言有不同意思 所以使用這個方法告訴電腦我們會統一使用std這個**命名空間** ---- 如果你不想打using namespace std; 那你就要明確寫出它來自哪種語言(命名空間) 正常版 ```cpp= #include<iostream> using namespace std; int main(){ cout<<"hello world"; } ``` 懶得打版 ```cpp= #include<iostream> int main(){ std::cout<<"hello world"; } ``` ---- 主函式main ```cpp= int main(){ } ``` 每個c++程式一定要塞main主函式 它代表主要程式的開始 範圍從左大括號"{"到右大括號"}" ---- 上面這些不用特別背 多打幾次就記起來了 --- ## 輸出 ---- ```cpp= #include<iostream> using namespace std; int main(){ cout << "你要輸出的文字"; cout << "你也" << "可以" << "這樣"; return 0; } ``` ---- * `cout`念作"c out",代表輸出 * 後面接`<<`方向不要錯了 * 接著打上輸出的文字,記得用`""`包起來 * 最後面要加`;`,代表該行程式碼的結束 * `endl`意思是"end line",加了這個會換行 * 也可以用`'\n'`換行 ---- 練習題-HELLO ZA WARUDO! ![](https://pics.me.me/print-hello-world-print-hello-za-warudo-any-programmers-in-here-66648194.png) http://mdcpp.mingdao.edu.tw/problem/A001 ---- 解答 ```cpp= #include<iostream> using namespace std; int main(){ cout<<"Hello ZA WARUDO"; } ``` ---- ### 換行 ---- 在引號裡加上\n 或是用endl 就可以換行了 ```c= cout<<"hello"<<"\n"<<"world"; ``` ```c= cout<<"hello"<<endl<<"world"; ``` 輸出:hello world ---- 來寫一個可以換行的程式吧 例題:http://mdcpp.mingdao.edu.tw/problem/A002 ---- 解答 ```c= #include<iostream> using namespace std; int main(){ cout<<"I LOVE PROGRAMMING!\n"; cout<<"MDCPP good good good!\n"; cout<<"BENBEBOBO IS FAT"; } ``` ---- 這樣寫也可以 ```c= #include<iostream> using namespace std; int main(){ cout<<"I LOVE PROGRAMMING!"<<endl; cout<<"MDCPP good good good!"<<"\n"; cout<<"BENBEBOBO IS FAT"; } ``` --- ## 變數與輸入 ---- ![](https://i.imgur.com/w6r1hX2.png) [圖片連結](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) 例:1, -3, 0, 48763 * `double` 浮點數 例:0.1, -0.22, 4.0 * `char` 字元(character) 存一個字 例:'a', 'R', '&', '0' * `string` 字串 存一行字 例:"StarburstStream" * `bool` 布林(boolean) 存是非 例:true(1), false(0) ---- ### 命名規則 * 不能以數字開頭 <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 ---- ### 餘數 `%`代表取餘數 ```cpp= #include<iostream> using namespace std; int main(){ int a = 7%4; cout << a << endl; return 0; } ``` * 會輸出3,因為7除以4的餘數是3
{"metaMigratedAt":"2023-06-17T09:34:07.216Z","metaMigratedFrom":"YAML","title":"111MDCPP 程式初探","breaks":true,"image":"https://besthqwallpapers.com/Uploads/27-1-2019/78554/thumb2-megumin-artwork-protagonist-konosuba-series-manga.jpg","slideOptions":"{\"theme\":\"dark\"}","contributors":"[{\"id\":\"0c697af1-f256-4426-a578-e9d350d81eda\",\"add\":9,\"del\":0}]"}
    742 views
   Owned this note