アルゴリズムは、問題を解決するための手順を明確に表したものです。
情報Ⅰでは、このアルゴリズムを正しく理解し、他者に伝えるための「表現方法」を学びます。
特に、制御構造や図による表現は、プログラミングや問題解決の基礎として重要です。
本記事では、アルゴリズムの基本から、代表的な表現方法までを体系的に整理します。
アルゴリズムとは何か
アルゴリズムの意味
アルゴリズムとは、問題を解決するための具体的で明確な手順のことです。
情報Ⅰでは、コンピュータに処理をさせるための手順として扱います。
つまり、「何をどの順番で行うか」を論理的に整理したものがアルゴリズムです。
アルゴリズムを表現する目的
アルゴリズムを表現する目的は、次の通りです。
- 処理の流れを明確にするため
- 他者と共有できるようにするため
- 誤りや抜けを発見しやすくするため
アルゴリズムは、考えるだけでなく「見える形」にすることが重要です。
制御構造とは何か
アルゴリズムは、基本的に3つの制御構造で構成されます。
これは、どのようなプログラムでも共通する基本的な考え方です。
順次構造
順次構造とは、処理を上から順番に実行していく構造です。
- 手順通りに処理が進む
- 分岐や繰り返しは含まれない
例として、次のような処理があります。
- 挨拶を表示する
- 今日の天気を表示する

分岐構造
分岐構造とは、条件によって処理が分かれる構造です。
- 条件が真か偽かで処理が変わる
- 「もし〜ならば」という形で表現される
例としては次の通りです。
- 点数が60点以上なら合格
- それ以外は不合格

反復構造
反復構造とは、同じ処理を繰り返す構造です。
- 条件を満たすまで繰り返す
- 一定回数繰り返す
例としては次の通りです。
- 挨拶を30回表示する

アルゴリズムを図で表す方法
アルゴリズムは、文章だけでなく図で表すことで理解しやすくなります。
ここでは代表的な3つの図を扱います。以下では、フローチャート、アクティビティ図、状態遷移図を挙げますが、アルゴリズムの表現方法は他にも存在します。
フローチャート

フローチャートは、処理の流れを図で表したものです。フローチャートは、上の表のような記号を用いて表します。
特徴は次の通りです。
- 処理の順序が矢印で示される
- 条件分岐や繰り返しを表現できる
- 記号(開始、処理、判断など)を使う
上のフローチャートの例は、電圧が3Vより高い場合には高電圧、電圧が3V以下の場合には低電圧と判定し、この判定結果を表示するアルゴリズムを表現したものです。
フローチャートは、アルゴリズムの基本的な表現方法として広く用いられます。
私が携わっている業務では、最も多く使用されているのがフローチャートです。
フローチャートの記号は、JISで定義されていますが、会社や業界ごとに微妙に形状が異なっていたりします。
アクティビティ図

アクティビティ図は、処理の流れや作業の手順を表す図です。アクティビティ図は、上の表のような記号を用いて表します。
特徴は次の通りです。
- フローチャートに似ている
- 並行処理(同時に進む処理)も表せる
- UMLという統一された表記法に基づく
上のアクティビティ図の例は、人によって入力されたID・パスワードが正しいかどうかを認証し、この認証結果を表示装置に表示することで、認証結果を人に認識させるアルゴリズムを表現したものです。
複雑な処理や業務の流れを表す際に有効です。
状態遷移図

状態遷移図は、状態の変化を中心に表す図です。状態遷移図は、上の表のような記号を用いて表します。
特徴は次の通りです。
- 「状態」と「変化」を表す
- 入力や条件によって状態が変わる
- システムの動作を表現するのに適している
上の状態遷移図の例は、信号機の色の変化のアルゴリズムを表現したものです。
状態遷移図は、信号機や自動販売機などの動作の表現に使われます。
フローチャートやアクティビティ図に比べると、覚える記号が少なくて楽です。
また、複雑な条件分岐などを表現しなくていい場合が多く、比較的簡易にアルゴリズムを表すことができます。
アルゴリズムの表現で注意したい点
条件の書き方を曖昧にしない
条件は必ず明確に書きます。
- 「高い」ではなく「60点以上」など具体的にする
処理の順序を明確にする
順序が曖昧だと、正しく動作しません。
- 実行される順番を意識する
図の目的に合った表現を選ぶ
すべてを同じ図で表す必要はありません。
- 内容に応じて適切な図を選ぶことが重要です
確認問題
【問題1】アルゴリズムとは何か、最も適切なものを選びなさい。
1. コンピュータの部品の名称
2. 問題を解決するための手順
3. データの保存方法
4. ネットワークの仕組み
【問題2】次のうち、制御構造に含まれないものはどれか。
1. 順次構造
2. 分岐構造
3. 反復構造
4. 並列構造
【問題3】次の処理はどの制御構造に当てはまるか答えなさい。
「テストの点数が60点以上なら合格、そうでなければ不合格と表示する」
答え:【問題1】2 【問題2】4 【問題3】分岐構造
まとめ
アルゴリズムは、問題解決の手順を明確にしたものです。
その基本は、順次構造、分岐構造、反復構造の3つです。
また、フローチャートやアクティビティ図、状態遷移図などを用いることで、処理の内容を分かりやすく表現できます。
目的に応じて適切な表現方法を選び、論理的に整理する力が重要です。
