要對計算機發出指令,就要通過程序算法,對想要得到的結果,設定每一步的操作步驟來實現。換句話說,如果具備程序化的技巧,就可能積極地調動計算機的力量。那麽,應該怎樣進行程序化呢?
我們以常見的自動售賣機為例,說明一下程序算法是什麽,以及如何擬定程序算法。
首先,按照我們平時使用自動售賣機的基本流程,嚐試設定大致的步驟。“付款、點擊按鈕、取得商品”,可以表示為下圖。
以上是基本的流程,但這是使用者的操作步驟。自動售賣機的程序算法,需要以自動售賣機的角度來設定。下圖是從自動售賣機的角度設定的程序,(1)和(2)應該填入什麽呢?菱形框表示條件判斷。條件判斷的內容為“是”的,就沿著“是”的箭頭走,條件判斷的內容為“否”的,就沿著“否”的箭頭走。
(1)是開始之後最初的動作。如果沒有收款,自動售賣機不會開始運作,所以可以推測是“是否已收款”。
(2)是連接“亮燈”和“提供商品”的條件。提供商品的觸發條件是“是否已被點擊按鈕”。
這樣,就從自動售賣機的角度擬定出了程序算法。從人的操作步驟到自動售賣機的程序算法,可以發現人的行動對於自動售賣機來說成了條件。
以上已經擬出大致的流程,實際的程序算法會更為複雜一些。
接下來我們進一步細化。請思考一下,下圖的(3)可以填入什麽?
(3)是判斷“是否已收款”的下一步,所以是“已收到了款項”的狀態。另外,再下一步是“亮燈”,所以要考慮連接“付款”和“亮燈”的條件。“付款”和“亮燈”之間,有什麽是必須確認的呢?或者說,“付款之後沒有亮燈的情況”在什麽時候會發生呢?
判斷亮燈的條件是,“收款是否足額”。