複習:流程圖的表達符號
二、流程圖表示的三大結構: (循序、判斷、重複)
(三)重複結構:
依據迴圈的測試條件是否成立,決定是否要繼續重複執行某一段程式敘述區。此種結構稱為「重複結構」
1.先做、後測試條件(do...while...)
2.先測試條件、再做(while...)
後測試條件
前測試條件
◎範例問題 - 列印10次問題 (列印 「我愛你」 10遍)
◎思考:
1.設定一個 計數 變數(count)為0。
2.列印 「我愛你」,並 遞增1,即 count = count + 1。
3.檢查count否小於10。如果這是true(成立),那麼再次列印「我愛你」並增加變量計數。如果條件如果false(不成立),那麼停止列印。
◎演算法:
步驟一: 初始化 計數count = 0(PROCESS)
步驟二: 列印「我愛你」(I / O)
步驟三: 計數 count = count+1 (PROCESS)
步驟四: 判斷 count>=10 (DECISION)
如果否,則跳回步驟二。
如果是,則執行步驟五。
步驟五: 程式結束。
◎練習一: Elsa走方形
重複執行4次-> 向前、右轉90度
◎演算法 :
步驟1:設定 count = 0 (count是次數)。
步驟2:執行 向前走一步、右轉90度。
步驟3:計數 count = count+1 。
(做完「向前、右轉」就 +1 次)
步驟4:判斷 NUM=4 ? 。
如果否,則跳回步驟2。
如果是,則執行步驟5。
步驟5:程式結束。
◎練習二: 阿志釣魚維生,但有永續海洋的概念
阿志去釣魚,直到釣20隻後就去市場賣魚。如果魚兒小於10公分,就放回大海;否則就帶去賣錢。
◎演算法 :
步驟1:初始化 設定
num = 0 (隻數)、len = 0 (魚長度)
步驟2:執行 len = random(隨機)
步驟3:判斷 len>=10 ? 。
如果否,則 輸出 「放生」,執行回步驟2。
如果是,則 執行步驟4。
步驟4:執行 num= num + 1
步驟5:判斷 num>=20 ?
如果否,則 執行回步驟2。
如果是,則 執行步驟6。
步驟6:執行 去市場賣魚
步驟7:程式結束
◎練習三: 傳統販賣機問題
投幣後,立即販賣飲料。(假設飲料25元)
1.如果 投錢足夠,掉出飲料。不夠則退幣,不販賣。
2.如果 錢幣剛剛好,就直接賣出飲料。若是投的錢大於飲料的錢,就退幣,再掉出飲料。
◎演算法 :
步驟1:初始化 設定
Money = 0 (投錢)、Back=0 (退錢)
步驟2:輸入 投入金額??元
步驟3:設定 Money= 投入金額 。
步驟4:判斷 Money>=25 ? 。
如果否,則 輸出 「不夠錢」,執行步驟7。
如果是,則 執行步驟5。
步驟5:判斷 Money=25 ?
如果否,則 執行步驟6。
如果是,則 執行步驟7。
步驟6:執行 退錢Back = Money - 25
步驟7:執行 掉出飲料
步驟8:程式結束。