889
你是否常常會有困惑,為什麼我看到一個程式問題時,老師都說那個憑「直覺」,就鍵盤打一打…默默的把題目寫完,好,當我看著老師的程式和問題,我都理解了,但蓋上程式,重新自己要寫的時後,腦袋就一片空白,不知道怎麼開始?
但問老師怎麼把問題或需求轉成程式時,老師只會回一句:「多寫幾次,有經驗,就會了」,有時還會被責罵,一定就是你不夠認真寫程式,所以才不會寫,這麼簡單的東西,不是應該看了就知道怎麼寫嗎?(完了…我應該不會被炎上吧?)
那該如何將問題轉成程式碼呢?其實會需要拆解「問題」知道問題的需求,才能進一步的開始寫。
舉一個小學生都會的數學問題,要改寫成程式碼。
題目:請寫出「輸入兩個變數,給我他的總和」。
不管拿到哪一種題目時,都可想幾個問題:
- 程式輸入有什麼?
- 程式輸出有什麼?
- 輸入到輸出間,到底經歷過了什麼過程
陰影,才可以得到輸出?
以這個範例可以這樣子回答:
- 輸入有兩個變數
- 輸出有一個具小數或整數的數字
- 將這兩個輸入的數字相加起來,就可以得到輸出
好,我相信這個邏輯應該不難吧?那緊接著就可以把這個回答,寫成一個流程圖。
有流程圖後抱歉字很醜…,就可以開始撰寫程式碼啦,當這個時候有哪個步驟不會寫時,就是用那個步驟的關鍵字去找google,就更容易找到你看得懂的答案,以及透過拆解步驟的方式,你可以更清楚知道自己在做什麼?
例如:我不知道怎麼寫python的輸入變數,那可以google「python 輸入變數 教學」的關鍵字。
var1 = float(input("請輸入變數1")) # 輸入變數1
var2 = float(input("請輸入變數2")) # 輸入變數2
result = var1 + var2 # 將兩個變數相加
print(result) # 輸出結果
以上就是我自己統整我如何拆解「問題與需求」,最終將它變成程式碼的過程。
下一章,將會進階一點的題目【猜數字1A2B】遊戲,要如何去從題目,轉換成程式流程,並且寫成正確的程式碼!
延伸閱讀:如何把想法轉成程式碼? | TimCodingBlog (hsuchihting.github.io)