跳至內容
D1 算法設計

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