初級接觸程式設計的同學,程式設計的目的是要幫助我們來解決問題,所以實際上,我們可以將程式設計看作是人們實際的工作流程轉化成程式語言,藉由電腦的高速運算得出人們所要的結果。
所以關鍵在於最前面的「工作流程」大家能不能夠從「題目」中拆解出來。如果可以的話,那麼問題就比較好解決了。
以交換數字為例子,a數字要和b數字交換,流程是什麼?我的拆解如下。
1.設定a數字和b數字
2.交換a數字和b數字。
寫到這裡,可能會碰到問題。步驟2的交換數字的動作,以目前所學到的部份並沒有交換的功能,所以必須得透過其他方式來達成這個動作,就是老師上課講過的,利用第三者變數來當作暫存功能,等於是跳板的意思,再逐次替換a和b的內容。所以步驟得改寫成:
1.設定a數字和b數字和暫存變數
2.把a變數丟給暫存變數
3.變b變數丟給a變數
4.把暫存變數丟給b變數。
這樣交換的步驟就出來了。之後按這個步驟化解成程式語法,如果轉化成語法的部份還有困難,那就是程式語法定義不清楚,這時候就需要再研讀語法的定義。
所以就我個人的經驗,要學好程式設計,至少在流程的規劃上要清楚,電腦其實很笨,就是要你告訴它一個步驟一個步驟的做。所以在學語法的同時,記得要練習將步驟用簡單的文字敘述表達出來,最好是寫下來。然後再看看能不能把文字轉化成語法,如果不行,看看步驟還能不能再拆解,又或者是不是語法哪裡還不熟悉。
記得,學好語法的同時,千萬不要忘了步驟才是更關鍵的問題,而這個部份卻是最難教的,得靠大家去討論、測試實作才能累積出經驗來。大家加油吧。