程式由一連串對電腦的「命令」構成,執行時電腦會完全遵從這些命令進行計算。
要寫程式就必須用電腦看得懂的方式來下命令,也就是「機器語言」。但機器語言的指令是由一連串的
因此人類發展出「高階語言」,將命令包裝得比較接近人類語言,同時保證高階語言能夠被轉換為電腦看得懂的指令。使用高階語言寫出來的命令,就叫「程式碼(code)」。
一般我們講程式語言通常泛指高階語言,但其實機器語言、組合語言等「低階語言」(也就是人類比較看不懂的)也算一種程式語言。
但電腦是看不懂高階語言的,要執行必須先翻譯成電腦看得懂的機器語言,這動作叫作「編譯(compile)」。
綜合以上,寫程式最基本要有
可以想像成你需要詠唱咒語和精靈們溝通以施展魔法,可是人類連發音都有困難,所以發明一種人類可以發音、又可以被翻譯成魔法語言讓精靈們理解的語言。compiler 就是負責這一層類似翻譯的工作,翻譯給精靈理解後,就可以成功施展魔法啦。
不幸的是,儘管只要湊齊 editor
和 compiler
就能開始寫程式,但 windows 沒有堪用的內建 editor,word 則是絕對不行;和 compiler 溝通的學習門檻又高。怎麼辦呢?
這時就需要整合開發環境(IDE
)啦。
所謂工欲善其事,必先利其器。準備適當的工具,事半功倍。
IDE 將寫程式必要的 editor 和 compiler 整合在一起,還提供許多寫程式時便利的功能。
只要找到合適的 IDE,就不怕 Windows 沒有好用的 editor,也不怕跟 compiler 有溝通障礙了!
常見的 IDE 有好幾家,包括 Dev-CPP、Code::Blocks 等。這裡介紹徹底捨棄泛用性、特別針對競程特化的《CP Editor》。
特化的關係導致它難以用來開發一般的軟體,不過用在競程方向會比一般的泛用 IDE 更便利。
從官網下載時 asset 部份記得選帶 setup
、gcc
和 LLVM
的選項,如下圖:
初次開啟時,會自動跳出設定頁面。
如果不小心關掉,或者不是初次開啟,可從 Options
→ preferences
開啟設定頁面,或者按 CTRL+P
。
Appearance
→ General
可以設定 UI 的語言和配色。配色推薦黑底的 Dark Fusion
和 Dracula
,也是作者自己的設定。可以按自己喜好調整。
一般推黑底主要是寫程式時,通常需要長時間注視程式碼。螢幕的原理上黑色是不發光,白色是最亮光,而程式碼文字和背景的比例會是背景居多,因此黑底對眼睛的負擔較低。
另外也存在強者多用黑底,所以用黑底看起來比較強的說法
Opacity
則是透明度,設定半透明時可以看到 CP Editor 視窗後面的東西,可視喜好調整。
Appearance
→ Font
則可以調整各種字體和大小。視喜好調整即可,不過強烈建議一律使用等寬(Monospaced)類型的字體,讓每個字的寬度一致,較利於排版和比對。
執行起來大概長這樣子:
在 File
→ New File
建立新的檔案後,畫面大致就長得像上面那樣,概分為左、右上和右下三塊。這時就可以開始寫程式了。
寫完之後,按底下的 Compile and Run
,就會執行和右下的資料筆數相同的次數,每次跑一筆資料,並顯示結果,例題如下:
上圖準備了兩筆的資料,因此程式被執行了
中間不同色的按鈕 AC
則是比對結果,依結果不同而變更。大致如下:
按下去則會顯示與標準答案的差異比對。
其它 IDE 多半是執行後必須人工一個字一個字輸入資料,就算可以複製貼上,在測試多筆資料時也免不了必須執行多次。尤其程式越複雜時越難一次寫到對,以上動作就必須反覆多次。
CP Editor 可以預先建立想測試的資料,自動執行多次一筆一筆去測試比對,這樣的做法雖缺乏和程式的互動性,但測試時更有效率、減低煩躁感、且比肉眼比對來得正確。
建議學過一些基本語法再來看,會比較理解這些功能可以幹嘛、方便在哪。
可參考 官網文件 或者 外傳:關於 CP Editor 更多便利功能。
APCS 或其它考試、競賽(學科能力競賽、資奧選訓營等)不支援 CP Editor 怎辦?
練習上 CP Editor 肯定比較方便。可以等實力到一定水準後,再來做準備。最基本的概念與流程是共通的,要轉其它 IDE 不難。
用慣 CP Editor 其它 IDE 在測試上可能會感到較不方便就是了。
無法正常執行寫好的程式碼?
如果確定程式碼沒錯,有可能是沒有安裝自帶 GCC 和 LLVM 的版本,可以嘗試重新安裝。下載時記得在 Asset 檢查是否有找對版本。
想用其它 IDE 可以嗎?
無所謂,請自便。
競程:初章
, 競程