アルゴリズム:問題を解く「手順」
アルゴリズムは、問題を解くためのはっきりした手順。料理のレシピのようなものです。基本は 順次・分岐・繰り返し の3つで、これを図にしたものがフローチャートです。
このページで学べること
- アルゴリズムとは何かがわかる
- 順次・分岐・繰り返しの3つの基本構造がわかる
- フローチャートの読み方がわかる
前提知識
3つの基本構造
| 構造 | 意味 | 例 |
|---|---|---|
| 順次 | 上から順に実行 | 顔を洗う → 着替える → 朝食 |
| 分岐(条件) | 条件で処理を分ける | 雨なら傘を持つ/そうでなければ持たない |
| 繰り返し(反復) | 同じ処理を何度も | 1から5まで順に足していく |
始め・終わりは角丸、処理は長方形、条件(分岐)はひし形で表し、矢印で流れをつなぎます。ひし形からは「はい/いいえ」の2方向に分かれます。
図でイメージする(分岐のフローチャート)
例題(くわしい手順)
「1 から 5 までの合計を求める」手順を、順にたどってみます。
- 準備:合計を入れる箱を 0 にする(初期化)。
- 繰り返し:1,2,3,4,5 を順に、箱の値にたしていく。
- 箱の値は 0→1→3→6→10→15。合計は 15。
アルゴリズムは「順次・分岐・繰り返し」で表せます。これは繰り返しでたし込む例です。
アルゴリズムの3つの基本
| 構造 | 意味 | 例 |
|---|---|---|
| 順次 | 上から順に実行する | 手順を1つずつ |
| 分岐 | 条件で処理を分ける | 80点以上なら合格と表示 |
| 繰り返し | 同じ処理をくり返す | 5回たし込む |
どんなに複雑なプログラムも、この3つの組み合わせで表せます。フローチャートで整理できます。
よくある間違い
アルゴリズムはだれがやっても同じ結果になる必要があります。「いい感じに」ではなく、はっきりした手順にします。
条件(ひし形)からは「はい」と「いいえ」の両方の流れが必要です。片方だけだと処理が止まります。
「いつ終わるか」を決めないと無限に繰り返し(無限ループ)になります。終了条件を必ず入れます。
練習問題
まず自分で考えてから解説を開きましょう。
「雨なら傘を持ち、そうでなければ持たない」は、3つの基本構造のどれですか。
解答・解説を見る
答え:分岐(条件)
「雨か?」という条件で処理が2つに分かれています。フローチャートではひし形で表します。
同じ処理を決まった回数くり返す構造を何といいますか。
解答・解説を見る
答え:繰り返し(反復)
「10回くり返す」「終わりまでくり返す」のように、同じ処理を何度も行う構造です。
「合計に1、2、3、4、5を順に足す」を繰り返しで実行すると、合計はいくつになりますか。
解答・解説を見る
答え:15
合計を0から始め、1→3→6→10→15 と足していきます。
「合計に次の数を足す」処理を、数がなくなるまで繰り返す——これが反復の考え方です。
同じ手順で「2, 4, 6 の合計」を求めると、いくつになりますか。
解答・解説を見る
答え:12
箱を0にして順にたす:0→2→6→12。
合計を求める手順は「0から始めて順にたす」の繰り返しです。同じ手順が、数がちがっても使えるのがアルゴリズムの利点です。
よくある質問
Q. アルゴリズムとは何ですか?
問題を解いたり目的を達成したりするための、はっきりした手順のことです。料理のレシピのように、順番に実行すれば同じ結果が得られます。
Q. アルゴリズムの基本構造は?
順次(上から順に実行)、分岐(条件で処理を分ける)、繰り返し(同じ処理を反復)の3つです。これらを組み合わせて複雑な処理を作ります。
Q. フローチャートはなぜ使うのですか?
手順を図にすると、順序と分かれ道が一目で分かり、書く前に間違いを見つけられます。記号は「開始・終了」「処理(長方形)」「条件(ひし形)」の3つを覚えれば読めます。
Q. プログラミングの前にアルゴリズムを学ぶ意味は?
言語が変わっても手順の考え方は変わらないからです。「順次・分岐・繰り返し」の3つが分かっていれば、どの言語でも同じ流れで書けます。
次に学ぶ内容
高校「情報I」〜ITパスポート相当の範囲を参照し、オリジナルに作成(実在試験問題の転載はありません)。正確性は編集・監修フローで確認しています(仕様書 第11章)。