# C++基礎語法 ## 9/8 社課 ---- 由於上禮拜有點混亂 感到非常抱歉 今天會先簡單複習上禮拜教的內容 --- ## 在哪裡寫程式? ~~哪裡都可以~~<!-- .element: class="fragment" data-fragment-index="1" --> ---- 整合開發環境 (Integrated Development Environment) - 編輯 - 除錯 - 編譯 - 執行 簡單來說就是幫你做好除了寫程式以外的事情 ---- ### 常見 IDE - [**CodeBlocks**](https://sourceforge.net/projects/codeblocks/ "Code::Blocks") - [**Dev-C++**](https://sourceforge.net/projects/orwelldevcpp/ "Dev-C++") - [**VSCode**](https://code.visualstudio.com/Download "VSCode") ---- ### CodeBlocks ![](https://hackmd.io/_uploads/BkRymDJR3.png) ---- 建立新檔案 ![](https://hackmd.io/_uploads/SysUXvkCn.png) 也可以直接按 Ctrl + Shift + N ---- 選 C++ 或按 Ctrl + S 存檔時 將副檔名 .c 改成 .cpp ---- 寫完程式碼後 按 F9 可以進行編譯並執行 --- ## 基本框架 ```cpp= int main(){ // 你要執行的程式 } ``` --- ## 資料型態與變數 ---- **常見資料型態** - int 整數 - long long 長整數 - char 字元 - float 浮點數 - double 倍精度浮點數 - string 字串 - bool 布林值 ---- ### 變數宣告 ```cpp= int a=1; long long b=10000000000; char c='c'; double d=3.14; string e="hello"; bool f=true; ``` ---- 在程式碼中 單個等號的作用是賦值 意即將等號右方的資料複製一份丟給左方 ---- ```cpp= int a=0; a=1; a=2; ``` --- ### 變數運算 ---- - \+ 加 - \- 減 - \* 乘 - / 除 - % 模除(取餘數) - a%b = a-a/b*b ---- 整數運算時無條件捨去小數 ```cpp= int a=1.2; // a=1 int b=5/2; // b=2 ``` ---- 整數和浮點數運算會得到浮點數 ```cpp= double a=1+1.2; // a=2.2 double b=5/2.0; // b=2.5 ``` ---- 賦值運算 ```cpp= int a=0; a=a+1; // a+=1; a=a-1; // a-=1; a=a*2; // a*=2; a=a/2; // a/=2; a=a%2; // a%=2; ``` ---- ```cpp= a++; // a+=1; a--; // a-=1; ``` ---- 字元運算即轉換為 ASCII 碼後的運算 ```cpp= char c='a'; c+=3; // c='d' ``` --- ## 輸入輸出 ---- 輸入 ```cpp= cin >> input_1 >> input_2 ...; ``` ---- 輸出 ```cpp= cout << output_1 << output_2 ...; ``` 注意兩個輸出之間不會有換行或空格 ```cpp= cout << 1 << 2; ``` ```cpp 12 ``` 換行可用 '\n' 、 "\n" 或 endl ---- 輸出小數點後 k 位數 ```cpp= cout << fixed << setprecision(k) << output_1 ...; ``` 不足的位數會補 0,超過的位數四捨五入 ```cpp= double a=1, b=3.1415926; cout << fixed << setprecision(3) << a << '\n' << b; ``` ```cpp 1.000 3.142 ``` 需引入<iomanip\> --- ## 選擇敘述(if/else) ---- ### 關係運算 - a<b 小於 - a<=b 小於等於 - a\>b 大於 - a\>=b 大於等於 - a==b 等於 - a!=b 不等於 ---- ### 邏輯運算 - a&&b 且 - a||b 或 - !a 非,取相反值 若 x 不為布林值 則 x!=0 時為 true x==0 時為 false ---- 關係運算優先於邏輯運算 ---- ```cpp= if(條件){ //... } ``` 當條件(即小括號內)為 true 則會執行大括號中的內容 ---- ```cpp= if(條件1){ //... } else if(條件2){ //... } //... else{ //... } ``` ---- - else 的觸發條件為前面的都不為真 - 只會執行由上往下第一個為真的條件 ---- ```cpp= if(score==100){ cout << "滿分!" << '\n'; } else if(score>=60){ cout << "及格:)" << '\n'; } else{ cout << "不及格:(" << '\n'; } ``` ---- ### switch/case if/else 的替代 ---- ```cpp= switch(變數或運算式){ case 符合的答案: //... break; case 符合的答案: //... break; default: //... break; } ``` 如果沒有 break 會將符合答案的 case 以下所有都跑一遍 ---- ```cpp= switch(boolin){ case 0: cout << "false" << '\n'; break; default: cout << "true" << '\n'; } ``` --- 寫寫練習題吧
{"contributors":"[{\"id\":\"1a0296c8-ce58-4742-acda-22c02ae81a74\",\"add\":3337,\"del\":349}]","title":"09/08 C++社課"}
    211 views