###### tags: `MDCPP講義` # 程式初探 語法班 第一堂課 --- ## 什麼是程式呢? ---- 用來指揮電腦的一堆的指令 <!-- 我們給了電腦,像是圖上的指令,而這個指令是電腦可以讀懂的,讀懂這些指令之後,就會給予相對的反饋。--> <!-- 喔對,順帶一提,圖上的程式碼,其實電腦不能直接看懂,還要經過一連串的轉換,變成0101,也就是機器碼 --> ![](https://i.imgur.com/0vLvonf.png) ---- |![](https://i.imgur.com/TIdn9o6.png =20%x)|![](https://i.imgur.com/KHJfvPs.png =10%x)|![](https://i.imgur.com/7zGzcA1.png =20%x)|![](https://i.imgur.com/upRHSiV.png =10%x)|![](https://i.imgur.com/mV5gSVB.png =30%x) <!-- 有點像是有一份食譜,把份食譜丟給廚師,廚師就會遵照上面的指令,做出一道道的菜 --> ---- 套到電腦上 程式 -> 電腦 -> 電腦行為 --- ## 程式有幾種? ---- ![image](https://media.licdn.com/dms/image/v2/D4D12AQExd0s7g9AxpQ/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1703166341281?e=2147483647&v=beta&t=6FY186NBgvVVlmCtZ5O3pa6DhK-seHvfeKHaYQXwVsg) ---- 我們要學哪一種? ---- # C++ ![image](https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/ISO_C%2B%2B_Logo.svg/640px-ISO_C%2B%2B_Logo.svg.png =30%x) ---- 為甚麼要選C++? ---- 高中的程式競賽、大學資工系 都是以C++作為主要的程式語言 ---- C++比起其他容易入門的語言 像是python之類的 更加的完整,可以學得更紮實 ---- ```cpp= #include<iostream> int main(){ cout<<"Hello World"; } ``` ```python= print("Hello world") ``` --- ## 要在哪裡寫程式? ---- 我們如果要打報告的話會用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/) --- 程式怎麼寫? ---- ### 基本架構 ---- ```cpp= #include<iostream> // 標頭檔 包了很多方便的功能 using namespace std; // 命名空間 int main(){ // 主函數 return 0; // 函數 ( 程式 ) 執行完畢 } ``` * 將程式碼放到`{}`中 * 程式會由上往下執行,執行到`return 0;`結束 * 可以用TAB鍵將程式碼往右推 ---- ```cpp= #include<iostream> // 標頭檔 包了很多方便的功能 using namespace std; // 命名空間 int main(){ // 主函數 return 0; // 函數 ( 程式 ) 執行完畢 } ``` 標頭檔: 別人已經寫好的程式,引入標頭檔,就可以直接使用 為什麼這樣做? 不需要重複造輪子! ---- ```cpp= #include<iostream> // 標頭檔 包了很多方便的功能 using namespace std; // 命名空間 int main(){ // 主函數 return 0; // 函數 ( 程式 ) 執行完畢 } ``` 命名空間? 區分不同廠商的輪子! ---- ```cpp= #include<iostream> // 標頭檔 包了很多方便的功能 using namespace std; // 命名空間 int main(){ // 主函數 return 0; // 函數 ( 程式 ) 執行完畢 } ``` 函數? ---- ![image](https://www.investopedia.com/thmb/3ppMTilxRFK_PiWrPXvBnsdR-a8=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/blackbox2-10a65df4364d4bf19fce709227f6822b.png) 數學上: 對於輸入做運算,輸出結果 f(x) = x + 3 f(2) = 5 ---- 程式上? 程式運算的地方! ---- ```cpp= #include<iostream> // 標頭檔 包了很多方便的功能 using namespace std; // 命名空間 int main(){ // 主函數 return 0; // 函數 ( 程式 ) 執行完畢 } ``` 主函數? 程式主要運行的地方! 在裡面寫東西,他就會跑動! return? 輸出! ---- ### 輸出 ---- ```cpp= #include<iostream> using namespace std; int main(){ cout << "你要輸出的文字"; cout << "輸出這句後會換行" << endl; cout << "這個也會換行喔~" << '\n'; return 0; } ``` * `cout`念作"c out",代表輸出,out: 輸出設備 * 後面接`<<`方向不要錯了,代表流向 * 接著打上輸出的文字,記得用`""`包起來 (google 字串) * 最後面要加`;`,代表該行程式碼的結束 * `endl`意思是"end line",加了這個會換行 * 也可以用`'\n'`換行 ---- ```cpp= #include<iostream> using namespace std; int main(){ cout << "4+5= " << 4 + 5 << endl; cout << 3 * 7 << endl; cout << 7 - 2 << endl; cout << 6 / 4 << endl; return 0; } ``` ---- ### 變數與輸入 ---- ![](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) $-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 ---- ### 餘數 `%`代表取餘數 ```cpp= #include<iostream> using namespace std; int main(){ int a = 7%4; cout << a << endl; return 0; } ``` * 會輸出3,因為7除以4的餘數是3
{"title":"程式初探","breaks":true,"image":"https://besthqwallpapers.com/Uploads/27-1-2019/78554/thumb2-megumin-artwork-protagonist-konosuba-series-manga.jpg","slideOptions":"{\"theme\":\"moon\"}","description":"語法班 第一堂課","contributors":"[{\"id\":\"f547d745-63f3-4bad-986b-1751eeec19d1\",\"add\":2970,\"del\":929,\"latestUpdatedAt\":1751698747048},{\"id\":\"3e463e3b-7198-401a-b406-fedf48ce08ae\",\"add\":3,\"del\":3},{\"id\":\"6a375517-4167-4b7c-a983-1e595a29262c\",\"add\":160,\"del\":23},{\"id\":\"3de10d07-ffd5-4c6f-8eb3-56f675abf068\",\"add\":3575,\"del\":277}]"}
    976 views
   owned this note