第12章 如何編寫程式代碼
當我們學會如何閱讀代碼,如何調試程式後,就要更進一步了——學習如何編寫程式。如果說之前是扶着旁物蹒跚學步,那麼現在才真正地邁出第一步。本章主要介紹如何把實際問題用一個程式來解決,也讓大家對程式設計有一個簡單的認識。
本章的知識點有:
- 程式設計基本步驟
- 程式設計的3類主要問題
- 字元串查找的算法
- 棧及其操作
- 函數調用機制
- 遞歸函數
12.1 程式設計的基本步驟
現實生活中遇到的問題,往往是不能直接用程式代碼描述的問題。例如,統計銷售量和利潤,尋找出行的公交線路,将中文翻譯成英語等。是以先要把實際問題轉化成一個計算機能夠解決的問題,而大多數問題一般分為3類。
(1)算:計算利潤,計算一進制二次方程的根,計算一個數列的和等。
(2)找:找最大的一個數,找最短的一條路徑,找一個字元串的位置等。
(3)實作功能:實作撤銷、重做的功能,實作模拟某種操作的功能等。有時候“實作功能”問題可以拆解為若幹個“算”和“找”的問題。
正确分析了實際問題,并将其轉化為上述3種計算機能夠解決的問題之後,便要開始設計解決問題的方案了。設計解決問題的方案需要考慮算法和資料結構兩方面。在第1章講到過,算法是解決一類問題的過程和方法。而資料結構,目前可以簡單地了解為資料的存儲形式,如是變量、數組還是連結清單等。
設計完之後,還要将一整套複雜的方案拆解為一個個簡單的小子產品。拆解的程度根據代碼的可讀性和可寫性來決定。如果某個子產品過