歡迎來到演算法與流程圖的世界!
你有沒有想過電腦究竟是如何準確地執行指令的呢?它並不像我們人類那樣「思考」;它只是遵循一套非常具體的指令。在本章中,我們將學習如何使用演算法 (Algorithms) 和流程圖 (Flowcharts) 來設計這些指令。無論你是要規劃一個簡單的計算還是一個複雜的控制系統,這些都是你必備的工具。如果一開始覺得像是學習一種新語言,請別擔心——只要你掌握了其中的邏輯,這就像照著食譜做菜一樣簡單!
4.1 演算法:循序漸進的計劃
演算法 (Algorithm) 簡而言之,就是為了解決問題或完成任務而編寫的一系列逐步指令。試想一下烤蛋糕的食譜:如果你跳過某個步驟或順序顛倒,蛋糕肯定會失敗!
演算法的核心概念
為了讓演算法變得「聰明」,我們會運用不同類型的邏輯:
1. 條件分支 (Conditional Branching):這是演算法進行選擇的地方。例子:如果是下雨天,就帶雨傘;否則,把它留在家裡。
2. 迴圈 (Looping/Iteration):重複執行相同的任務,直到達到目標為止。例子:持續攪拌湯汁,直到它沸騰。
3. 巢狀迴圈 (Nested Loops):這是在一個迴圈內部的另一個迴圈。
類比:想像一個時鐘。時針每轉動 1 圈(外層迴圈),分針就要轉動 60 次(內層迴圈)。
4. 程序與子程式 (Procedures and Subroutines):這些是執行特定任務的迷你演算法。你可以在需要時隨時「呼叫」它們,這樣就不必反覆重寫相同的步驟。例子:在購物應用程式中多次使用的「列印收據」程序。
編寫偽代碼 (Pseudocode)
偽代碼 (Pseudocode) 是一種編寫演算法的方法,它看起來有點像程式語言,但對人類來說卻非常易讀。以下是考試範圍內你必須掌握的「魔法字眼」:
輸入與輸出
INPUT 或 READ:接收數據(例如:來自鍵盤或感測器)。
WRITE 或 PRINT:輸出數據(例如:傳送到螢幕或印表機)。
數學運算與比較
我們使用算術運算子 (Arithmetic Operators) 進行計算:\( + \)、\( - \)、\( * \)(乘法)和 \( / \)(除法)。
我們使用比較運算子 (Comparison Operators) 來檢查條件:\( > \)(大於)、\( < \)(小於)和 \( = \)(等於)。
決策判斷
IF...ELSE...ENDIF:用於單一選擇。
CASE...ENDCASE:當你有許多選項(例如選單)時使用。這比編寫十個 "IF" 語句要整潔得多!
重複動作(迴圈)
FOR...NEXT:當你知道要重複執行多少次時使用。
例子:FOR counter = 1 TO 10... NEXT counter。
FOR...NEXT...STEP:類似,但你可以跳過數字。例子:STEP 2 會數出 1、3、5、7、9。
WHILE...ENDWHILE:在開始前先檢查條件。如果條件不符合,迴圈可能一次都不會執行!
REPEAT...UNTIL:先執行步驟,然後在最後檢查條件。這意味著迴圈至少會執行一次。
快速複習: 哪種迴圈會在最後檢查條件?沒錯——就是 REPEAT...UNTIL 迴圈!
4.2 流程圖:視覺化邏輯
流程圖 (Flowchart) 是一種使用不同圖形來顯示演算法步驟的圖表。它就像是你邏輯的導航圖。如果你在編寫程式時迷失了方向,流程圖能幫助你找到出路!
你必須知道的流程圖符號
每個圖形都有特定的用途。在考試中用錯圖形是很常見的錯誤,所以請記住這些規則:
1. 終止符 (Terminator - 橢圓形):標示處理過程的 開始 (START) 和 結束 (STOP)。
2. 輸入/輸出 (Input/Output - 平行四邊形):用於輸入數據(例如:READ Temperature)或顯示數據(例如:PRINT "Error")時。
3. 處理框 (Process Box - 長方形):用於計算或執行指令。例子:\( total = price * quantity \)。
4. 決策 (Decision - 菱形):用於回答 是/否 (Yes/No) 或 真/假 (True/False) 的問題。它總是有兩條分支路徑延伸出來。
5. 子程式 (Subroutine - 兩側有垂直線的長方形):代表預先定義好的流程或獨立程序。
6. 連接符 (Connector - 小圓圈):如果流程圖太長,無法放在同一頁時,用來連接不同部分。
7. 流向線 (Flowline - 箭頭):顯示流程的方向。一定要確保你的箭頭指向正確的方向!
要避免的常見錯誤
1. 懸空框:每個方框(STOP 除外)都必須有流向線連出去。
2. 沒有方向:使用普通直線而不是箭頭。電腦怎麼會知道下一步該去哪裡呢?
3. 決策難題:忘記在菱形出來的路徑上標記「Yes」和「No」。
4. 無限迴圈:建立了一個永遠不會結束的迴圈,因為條件永遠無法滿足。這會讓你的「大腦程式」崩潰!
你知道嗎? 第一個電腦「程式錯誤」(Bug) 其實是 1947 年卡在電腦裡的一隻飛蛾!今天,「除錯」(Debugging) 主要指的是找出演算法和流程圖中的邏輯錯誤。
總結與重點提示
演算法是邏輯計劃,而流程圖是這些計劃的視覺地圖。
- 使用偽代碼來編寫邏輯,利用 IF、WHILE 和 REPEAT 等關鍵字。
- 正確使用圖形:菱形用於決策,長方形用於數學運算,平行四邊形用於數據。
- 務必透過追蹤表 (Trace Table) 或順著流程圖的箭頭測試你的邏輯,確保能正確到達「STOP」框。
如果複雜的迴圈現在讓你覺得有點棘手,請別擔心。掌握本章的秘訣就是多加練習。試著為簡單的任務畫一張流程圖,例如泡一杯茶或設定鬧鐘,你很快就會成為這方面的專家!