アルゴリズムの基本構造
アルゴリズムとは
Section titled “アルゴリズムとは”コンピュータに仕事をさせるには、「どのような手順で処理を進めるか」を正確に指示する必要があります。この処理の手順を明確に定めたものをアルゴリズムと呼びます。
たとえば、「カップラーメンをつくる」という日常的な作業にもアルゴリズムがあります。
- やかんに水を入れる
- お湯を沸かす
- カップのふたを開ける
- お湯を注ぐ
- 3分待つ
- ふたを開けて食べる
このように、目的を達成するまでの手順を1つずつ順番に並べたものがアルゴリズムです。コンピュータのプログラムも、突き詰めればアルゴリズムを記述したものにほかなりません。
アルゴリズムの3つの基本構造
Section titled “アルゴリズムの3つの基本構造”どんなに複雑なプログラムであっても、アルゴリズムは次の3つの基本構造の組み合わせで表現できます。
| 基本構造 | 意味 | キーワード |
|---|---|---|
| 順次(シーケンス) | 処理を上から順番に1つずつ実行する | 直線的な流れ |
| 選択(条件分岐) | 条件によって実行する処理を切り替える | もし〜なら |
| 繰返し(ループ) | 条件を満たす間、同じ処理を何度も実行する | 〜の間繰り返す |
この3つの構造は構造化プログラミングの基礎であり、ITパスポート試験でもたびたび問われる重要な概念です。それぞれを詳しく見ていきましょう。
順次(シーケンス)
Section titled “順次(シーケンス)”順次は、最もシンプルな構造です。書かれた処理を上から下へ1つずつ順番に実行していきます。途中で分かれ道もなく、繰り返しもありません。
たとえば、「商品の合計金額を計算する」処理を考えてみましょう。
- 商品の単価を読み込む
- 購入数量を読み込む
- 合計金額 = 単価 × 数量 を計算する
- 合計金額を表示する
この処理は、1 → 2 → 3 → 4 と一直線に進みます。どの手順もスキップせず、分岐もなく、1回ずつ実行されます。これが順次構造です。
選択(条件分岐)
Section titled “選択(条件分岐)”選択は、ある条件を判定して、結果に応じて異なる処理を実行する構造です。日常生活でも「もし雨なら傘を持つ、そうでなければ持たない」というように、条件によって行動を変えることがあります。プログラムでもまったく同じ考え方を使います。
先ほどの買い物の例を発展させてみましょう。「合計金額が1万円以上なら10%割引にする」という条件を加えます。
- 合計金額を計算する
- もし合計金額が1万円以上なら → 合計金額を10%割引にする
- そうでなければ → 割引しない(そのまま)
- 合計金額を表示する
このように、条件が「はい(真)」か「いいえ(偽)」かによって処理の流れが2つに分かれるのが選択構造の特徴です。
条件分岐は2つに分かれるものだけでなく、3つ以上の選択肢から1つを選ぶ「多分岐」もあります。たとえば「会員ランクがゴールドなら20%引き、シルバーなら10%引き、一般なら割引なし」のような処理です。
試験で出るポイント
繰返し(ループ)
Section titled “繰返し(ループ)”繰返しは、ある条件を満たしている間、同じ処理を何度も実行する構造です。大量のデータを処理するときや、同じ計算を何度も行うときに使います。
具体例として、「1から7までの整数のうち、3の倍数だけを合計する」処理を考えてみましょう。
- 合計を0にする。カウンタ(数を数える変数)を1にする
- カウンタが7以下の間、以下を繰り返す
- もしカウンタが3の倍数なら、合計にカウンタの値を加える
- カウンタを1増やす
- 合計を表示する
この処理では、カウンタが1, 2, 3, 4, 5, 6, 7 と変化しながら繰返しが実行されます。3の倍数は3と6なので、合計は 3 + 6 = 9 になります。カウンタが8になると「7以下」の条件を満たさなくなり、繰返しが終了します。
繰返し構造では、ループを終了する条件が正しく設定されていないと、処理が永遠に終わらない「無限ループ」になってしまいます。カウンタを増やし忘れたり、終了条件を間違えたりすると無限ループの原因になるため、注意が必要です。
試験で出るポイント
3つの基本構造の組み合わせ
Section titled “3つの基本構造の組み合わせ”実際のプログラムでは、順次・選択・繰返しの3つの構造が組み合わさって動いています。先ほどの「3の倍数を合計する」例でも、繰返しの中に選択(条件分岐)が入っていました。このように、基本構造を入れ子(ネスト)にすることで、複雑な処理を実現できます。
どんなに大きなプログラムでも、分解していくとこの3つの基本構造にたどり着きます。まずはこの3つをしっかり理解することが、アルゴリズムを読み解くための第一歩です。
| 基本構造 | 日常の例 | プログラムでの場面 |
|---|---|---|
| 順次 | レシピの手順を上から順にこなす | データの読み込み → 計算 → 表示 |
| 選択 | 信号が赤なら止まる、青なら進む | 入力値のチェック、エラー処理 |
| 繰返し | 100回腕立て伏せをする | 大量データの集計、検索 |
試験で出るポイント