D1 算法設計
偽代碼及流程圖
1. 開始/結束算法
偽代碼:
不適用
流程圖:
flowchart TD
Start([開始])
End([結束])
2. 處理/賦值
偽代碼:
- A ← 21
- B ← A
- B ← B + 1
流程圖:
flowchart TD
Step1[A ← 21] --> Step2[B ← A]
Step2 --> Step3[B ← B + 1]
3. 輸入/輸出
偽代碼:
輸入 A, B
流程圖:
flowchart TD
IO[/輸入 A, B/]
4. 決策
偽代碼:
如果 A = B 則
…
否則
…
流程圖:
flowchart TD
Decision{A = B}
Decision -- 是 --> Yes[...]
Decision -- 否 --> No[...]
5. 模組
偽代碼:
調用 ProcedureABC
流程圖:
flowchart TD
Module[[調用 ProcedureABC]]
基本控制結構
在電腦算法中有三類基本的控制結構 (control structure),當中包括序列 (sequence)、選擇 (selection) 及迭代 (iteration)。
graph TD
subgraph 迭代圖示
D1(( )) --> D2(( ))
D2 --> D3(( ))
D3 --> D1
end
subgraph 選擇圖示
C1(( )) --> C2{ }
C2 --> C3(( ))
C2 --> C4(( ))
C2 --> C5(( ))
end
subgraph 序列圖示
B1(( )) --> B2(( )) --> B3(( ))
end
A. 序列 (Sequence)
序列控制結構讓程式根據編寫次序來順序執行語句。例如 BMI 計算器算法就是使用了序列控制結構。
序列結構通用流程圖
graph TD
Start([開始]) --> S1[語句 1]
S1 --> S2[語句 2]
S2 --> Sn[...]
Sn --> Sn2[語句 n]
Sn2 --> End([結束])
對分選擇 (Binary Selection)
對分選擇利用布爾算式作為判斷條件 (condition),其邏輯結果將決定程式應執行哪些語句。
1. 「如果…則」 (if…then) 條件語句
當條件的判斷結果為「真」,即條件成立,「則」部分便會執行;相反,當條件的判斷結果為「假」,即條件不成立,「則」部分便會被忽略,此條件語句結束。
偽代碼:
如果 {條件 (布爾算式)} 則
{ 「則」部分 } 通用流程圖:
graph TD
Cond{條件<br/>布爾算式} -- 是 --> Then["則" 部分]
Cond -- 否 --> Exit(( ))
Then --> Exit
2. 「如果…則…否則」 (if…then…else) 條件語句
同樣地,當條件的判斷結果為「真」,即條件成立,「則」部分便會執行;相反,當條件的判斷結果為「假」,「則」部分同樣會被忽略,但會執行「否則」部分,然後此條件語句結束。
偽代碼:
如果 {條件 (布爾算式)} 則
{ 「則」部分 }
否則
{ 「否則」部分 } 通用流程圖:
graph TD
Cond{條件<br/>布爾算式} -- 否 --> Else["否則" 部分]
Cond -- 是 --> Then["則" 部分]
Else --> Exit(( ))
Then --> Exit
多向選擇 (Multi-way Selection)
當需要在多於兩項的選擇中做決定時,可於對分選擇內增加選擇分支,構成多向選擇控制結構。
嵌套條件語句 (Nested Condition Structure)
將一個結構放入另一個結構內稱為嵌套結構 (nested structure)。條件語句也可以嵌套在另一個條件語句的分支中。
例子 1:在「則」分支內嵌套
流程圖 1 邏輯:
graph TD
C1{條件 1} -- 是 --> C2{條件 2}
C1 -- 否 --> Else1["否則" 部分 1]
C2 -- 是 --> Then2["則" 部分 2]
C2 -- 否 --> Else2["否則" 部分 2]
Then2 --> Exit(( ))
Else2 --> Exit
Else1 --> Exit
例子 2:在「否則」分支內嵌套
流程圖 2 邏輯:
graph TD
C1{條件 1} -- 是 --> Then3["則" 部分 3]
C1 -- 否 --> C2{條件 2}
C2 -- 是 --> Then2["則" 部分 2]
C2 -- 否 --> Other[...]
Then3 --> Exit(( ))
Then2 --> Exit
Other --> Exit
循環
1. for 循環
偽代碼:
設 {變量} 由 {起始值} 至 {最終值}
{循環體} 流程圖:
graph TD
Start(( )) --> Init[i ← 起始值]
Init --> Cond{i <= 最終值}
Cond -- 是 --> Body[循環體]
Body --> Increment[i ← i + 1]
Increment --> Cond
Cond -- 否 --> End(( ))
2. while 循環
偽代碼:
當 {條件}
{循環體} 流程圖:
graph TD
Start(( )) --> Cond{條件}
Cond -- 是 --> Body[循環體]
Body --> Cond
Cond -- 否 --> End(( ))
3. 「執行…當」循環 (do…while)
偽代碼:
執行
{循環體}
當 {條件} 流程圖:
graph TD
Start(( )) --> Body[循環體]
Body --> Cond{條件}
Cond -- 是 --> Body
Cond -- 否 --> End(( ))
4. 「重複…直至」循環 (repeat…until)
偽代碼:
重複
{循環體}
直至 {條件} 流程圖:
graph TD
Start(( )) --> Body[循環體]
Body --> Cond{條件}
Cond -- 否 --> Body
Cond -- 是 --> End(( ))
Last updated on