--- GA: G-RZYLL0RZGV --- ###### tags: `大一程設` `東華大學` `基本程式概念` `資管經驗分享` 認識程式,了解程式的長相 === [TOC] ## 前言 剛升上大一,有些人可能寫過程式,但也有人沒寫過,因此我們全部都從頭來,已經會的人可以跳過沒有關係,沒有學過的人就從頭好好學吧! ## 基本程式長相 ### include <工具> ![](https://i.imgur.com/yMRtdb3.png) 在一份程式文件裡面,我們會想要透過程式碼來執行我們想要的動作,但電腦並不聰明,我們必須要跟他說你要怎麼執行,而在撰寫程式碼的過程中,我們可能會用到很多工具,電腦也不知道你要用什麼工具,所以必須由你來告訴他。 這就是前兩行在做的事情,一份程式文件所需的工具,我們通常會放在程式文件的最上面,當程式一執行起來,他才會知道「噢!我需要這個跟那個,我去把它拿出來!」 在 C++ 裡面有很多各式各樣的工具,像是有用來做輸出的,也就是你們第一行看到的 `iostream`,全名是 `input stream/ output stream(輸入流/輸出流)`,也有負責做數學運算的,稱為 `cmath`,也有負責演算法的 `algorithm`,也有負責資料結構的 `stack`、`queue`,一時之間難以言盡,能用的工具真的太多了。 **那你們會說 #include 是甚麼?** 這是 C++ 的固定語法,沒有為什麼,就是要這樣寫,因為當初開發出 C++ 的人就是規定要這樣寫,如果你需要什麼工具,就要用 `#include <cmath>` 類似這樣的語法寫出來,而被**放在<>裡面的東西,就是我們的工具,而這個工具有一個統稱,我們稱為函式庫,在英文被稱作 Library**。 ### main - 程式的進入點 今天不管你用哪個程式語言,像是 Java、Python、C、C++,都一定很常看到 main,系統只要看到 main,就知道「噢!你程式的進入點在這裡呀!」,當你執行你的程式,電腦就會從這邊開始進行一行一行的判讀。 **就像上圖的第五行** ``` cpp= int main(int argc, char **argv){ int a = 5,b = 10; //這是兩個整數變數稱為 a 與 b cout << "hello world" << endl; //cout 在 C++ 裡面表示輸出內容 cout << a + b; //印出 a + b,所以是 15 return 0; /* 在 main 裡面 return 0 是告訴程式說,當執行到這一行的時候程式終止, 所以會放在main的最後一行 */ } ``` ### 簡單的認識函式 (function) 的長相 main 他在程式語言裡面通常會被稱為 **main function**,也就是主函式,剛剛說過他是程式的進入點,而他的長相是這樣的 `variable_type function_name(arguments){` ` //function content` `}` 想必英文的不好理解吧,我們換成中文看看 `回傳變數型態 函式名稱(要傳遞的參數們){` ` //函式的內容` `}` 而這個寫法是固定的,沒有任何理由,在大多數的程式語言中,function 的長相幾乎都類似,而函式能夠區分不一樣的程式功能,在我們需要的時候去設計一個函式來讓我們使用。 按照上面的通式,我們可以知道 main 是一個函式名稱,int 是這個 function 的回傳型態(**我們之後馬上會交到 return,現在不懂不要著急**)。 至於放在參數裡面的 int argc, char **argv,可以先不管他沒關係,他是比較後面會學到的知識。 ### cout/cin * cout * 用來輸出文字 * cout << "我是帥哥,你是美女"; * 程式執行的時候就會叫出終端機把這句話 show 出來 * cin * 用來輸入文字 * cin >> a; * cout << a; * 用 cin 把想輸入的內容放到字串變數 a 之中,再透過 cout 把變數 a 印出來 ## 結論 講到這裡有一個小結論,**程式語言是被一個固定的寫法給綁住的,我們只是把我們想要做的事情透過這個語言闡述出來**,而隨著我們想做的事情越大,要用到的工具 **(函式庫)** 就越多,要撰寫的邏輯就越難。 所以寫程式是一個滾雪球的過程,一定要耐住性子把工具弄懂,之後就能把玩工具寫出好玩的程式了! 現在聽起來很難對吧!沒關係,之後馬上就會上到了,現在有個概念就好。