コンテンツにスキップ

アルゴリズムの基本構造

コンピュータに仕事をさせるには、「どのような手順で処理を進めるか」を正確に指示する必要があります。この処理の手順を明確に定めたものアルゴリズムと呼びます。

たとえば、「カップラーメンをつくる」という日常的な作業にもアルゴリズムがあります。

  1. やかんに水を入れる
  2. お湯を沸かす
  3. カップのふたを開ける
  4. お湯を注ぐ
  5. 3分待つ
  6. ふたを開けて食べる

このように、目的を達成するまでの手順を1つずつ順番に並べたものがアルゴリズムです。コンピュータのプログラムも、突き詰めればアルゴリズムを記述したものにほかなりません。

どんなに複雑なプログラムであっても、アルゴリズムは次の3つの基本構造の組み合わせで表現できます。

基本構造意味キーワード
順次(シーケンス)処理を上から順番に1つずつ実行する直線的な流れ
選択(条件分岐)条件によって実行する処理を切り替えるもし〜なら
繰返し(ループ)条件を満たす間、同じ処理を何度も実行する〜の間繰り返す

この3つの構造は構造化プログラミングの基礎であり、ITパスポート試験でもたびたび問われる重要な概念です。それぞれを詳しく見ていきましょう。

順次は、最もシンプルな構造です。書かれた処理を上から下へ1つずつ順番に実行していきます。途中で分かれ道もなく、繰り返しもありません。

たとえば、「商品の合計金額を計算する」処理を考えてみましょう。

  1. 商品の単価を読み込む
  2. 購入数量を読み込む
  3. 合計金額 = 単価 × 数量 を計算する
  4. 合計金額を表示する

この処理は、1 → 2 → 3 → 4 と一直線に進みます。どの手順もスキップせず、分岐もなく、1回ずつ実行されます。これが順次構造です。

選択は、ある条件を判定して、結果に応じて異なる処理を実行する構造です。日常生活でも「もし雨なら傘を持つ、そうでなければ持たない」というように、条件によって行動を変えることがあります。プログラムでもまったく同じ考え方を使います。

先ほどの買い物の例を発展させてみましょう。「合計金額が1万円以上なら10%割引にする」という条件を加えます。

  1. 合計金額を計算する
  2. もし合計金額が1万円以上なら → 合計金額を10%割引にする
  3. そうでなければ → 割引しない(そのまま)
  4. 合計金額を表示する

このように、条件が「はい(真)」か「いいえ(偽)」かによって処理の流れが2つに分かれるのが選択構造の特徴です。

条件分岐は2つに分かれるものだけでなく、3つ以上の選択肢から1つを選ぶ「多分岐」もあります。たとえば「会員ランクがゴールドなら20%引き、シルバーなら10%引き、一般なら割引なし」のような処理です。

試験で出るポイント

流れ図の問題では、ひし形の判断記号で「はい」と「いいえ」のどちらに進むかを正確に追うことが大切です。条件式の意味(≧ は「以上」、> は「より大きい」など)を取り違えないよう注意しましょう。

繰返しは、ある条件を満たしている間、同じ処理を何度も実行する構造です。大量のデータを処理するときや、同じ計算を何度も行うときに使います。

具体例として、「1から7までの整数のうち、3の倍数だけを合計する」処理を考えてみましょう。

  1. 合計を0にする。カウンタ(数を数える変数)を1にする
  2. カウンタが7以下の間、以下を繰り返す
    • もしカウンタが3の倍数なら、合計にカウンタの値を加える
    • カウンタを1増やす
  3. 合計を表示する

この処理では、カウンタが1, 2, 3, 4, 5, 6, 7 と変化しながら繰返しが実行されます。3の倍数は3と6なので、合計は 3 + 6 = 9 になります。カウンタが8になると「7以下」の条件を満たさなくなり、繰返しが終了します。

繰返し構造では、ループを終了する条件が正しく設定されていないと、処理が永遠に終わらない「無限ループ」になってしまいます。カウンタを増やし忘れたり、終了条件を間違えたりすると無限ループの原因になるため、注意が必要です。

試験で出るポイント

繰返し構造の問題では、ループの中で変数がどのように変化するかを**1回ずつ手で追う(トレースする)**ことが求められます。焦らず、表を書いて各回のカウンタや合計の値を記録すると確実に正解できます。

実際のプログラムでは、順次・選択・繰返しの3つの構造が組み合わさって動いています。先ほどの「3の倍数を合計する」例でも、繰返しの中に選択(条件分岐)が入っていました。このように、基本構造を入れ子(ネスト)にすることで、複雑な処理を実現できます。

どんなに大きなプログラムでも、分解していくとこの3つの基本構造にたどり着きます。まずはこの3つをしっかり理解することが、アルゴリズムを読み解くための第一歩です。

基本構造日常の例プログラムでの場面
順次レシピの手順を上から順にこなすデータの読み込み → 計算 → 表示
選択信号が赤なら止まる、青なら進む入力値のチェック、エラー処理
繰返し100回腕立て伏せをする大量データの集計、検索

試験で出るポイント

「アルゴリズムの基本構造を3つ挙げよ」という問いには、順次・選択・繰返しと答えます。流れ図の読み取り問題では、ひし形が選択、矢印が戻る箇所が繰返しに対応していることを意識しましょう。

アプリで問題を解こう!