コンテンツにスキップ

フローチャートの書き方

フローチャートとは

フローチャートとは、アルゴリズムの処理の流れを図で表現したものである。プログラムを書く前に処理の手順を視覚的に整理するために用いられる。フローチャートを描くことで、処理の全体像を把握しやすくなり、コードへの変換もスムーズになる。


基本記号

フローチャートでは、以下の記号を使い分ける。

端子(開始/終了)

角の丸い四角形で、処理の開始と終了を示す。

flowchart TD
    A([開始])
    B([終了])

Mermaid記法: ([開始]) / ([終了])

処理

四角形で、具体的な処理内容を示す。

flowchart TD
    A[処理内容]

Mermaid記法: [処理内容]

条件分岐

ひし形で、条件による分岐を示す。

flowchart TD
    A{条件?}

Mermaid記法: {条件?}

入出力

平行四辺形で、データの入力や出力を示す。

flowchart TD
    A[/入力/]
    B[\出力\]

Mermaid記法: [/入力/] または [\出力\]

矢印(フロー)

処理の流れを示す。矢印でノード同士を接続する。

Mermaid記法: -->


Mermaid記法の基本

Mermaid を使うと、Markdownの中にフローチャートを記述できる。以下のようにコードブロック内に書く。

```mermaid
flowchart TD
    A([開始]) --> B[処理]
    B --> C([終了])
```

これは次のように描画される。

flowchart TD
    A([開始]) --> B[処理]
    B --> C([終了])

フローの方向

  • TD(Top-Down): 上から下へ流れる
  • LR(Left-Right): 左から右へ流れる

通常のフローチャートでは TD を使う。

ノードの形状

記法 形状 用途
[テキスト] 四角形 処理
([テキスト]) 角丸四角形 端子(開始/終了)
{テキスト} ひし形 条件分岐
[/テキスト/] 平行四辺形 入出力

矢印の種類

  • --> : 通常の矢印
  • -->|ラベル| : ラベル付きの矢印(分岐条件などを記述)

3つの基本構造をフローチャートで表す

アルゴリズムの基本構造である「順次」「分岐」「反復」をフローチャートで表す方法を示す。

順次

処理を上から順番に実行する構造。

flowchart TD
    A([開始]) --> B[処理1]
    B --> C[処理2]
    C --> D[処理3]
    D --> E([終了])

分岐(if-else)

条件に応じて異なる処理を実行する構造。

flowchart TD
    A([開始]) --> B{条件?}
    B -->|Yes| C[処理A]
    B -->|No| D[処理B]
    C --> E([終了])
    D --> E

反復(ループ)

条件が満たされる間、処理を繰り返す構造。矢印が前のノードに戻っている点が特徴である。

flowchart TD
    A([開始]) --> B{条件?}
    B -->|Yes| C[処理]
    C --> B
    B -->|No| D([終了])

実例:合格判定

学生の点数リストを受け取り、60点以上なら「合格」、そうでなければ「不合格」と判定する処理をフローチャートで表す。

flowchart TD
    A([開始]) --> B[点数リストを用意]
    B --> C[リストから点数を1つ取り出す]
    C --> D{60点以上?}
    D -->|Yes| E[合格]
    D -->|No| F[不合格]
    E --> G{次はある?}
    F --> G
    G -->|Yes| C
    G -->|No| H([終了])

このフローチャートに対応するPythonコードは次のとおりである。

students = [75, 42, 88, 55, 90]
for student in students:
    if student >= 60:
        print("合格")
    else:
        print("不合格")

フローチャートとコードを見比べると、条件分岐が if-else に、矢印が戻るループ構造が for に対応していることがわかる。


フローチャートからコードへの変換のコツ

フローチャートを読んでコードに変換する際は、以下の対応関係を意識するとよい。

フローチャートの要素 Pythonの構文
ひし形(条件分岐) {} if-else
矢印が前に戻る構造(ループ) for または while
上から下への流れ コードも上から下に書く

変換の手順

  1. フローチャートを上から下に順番に読む
  2. ひし形を見つけたら if 文を書く
  3. 矢印が上に戻っている箇所を見つけたらループ(for / while)にする
  4. 四角形の処理をそのままコードの1行に対応させる

フローチャートを先に描く習慣をつけよう

複雑な処理を実装するときは、いきなりコードを書くのではなく、まずフローチャートで処理の流れを整理するとよい。全体の構造が明確になり、バグの少ないコードを書きやすくなる。