無料体験

【高校情報Ⅰ】アルゴリズム(3つの制御構造、順次・反復・分岐)|共通テスト完全攻略勉強法_120

  • 前回は、浮動小数点数の説明をしました。 浮動小数点数とは、コンピュータで小数を表現するための形式のことです。 浮動小数点数の形式に変換することを「正規化」と呼び、32bitもしくは64bitで表現するとお話ししました。
    さて、前回までは「コンピュータのしくみ」を学んできましたが、今回からは「プログラミング」に入ります。 まずは、コンピュータに命令を出すうえで欠かせない「アルゴリズム」についてお話ししていきます。

①アルゴリズムとは

  • 本日から待ちにまったプログラミングに入ります。 本格的なプログラミングに入る前に、まずプログラミングの基礎知識をおさえていきましょう。 そもそもプログラミングとは何か?それは、「人間の命令でコンピュータ等に自動化させる作業」と言えるでしょう。 例えば、車の組み立てを行うロボットがあります。それらも「ネジを締める」や、「材料をくっつける」といった人間からの命令をプログラムして自動で行えるようにしています。 その際の命令で使われるのがプログラミングとなります。 ただし、コンピュータは事細かに命令を与えなければ動くことはできません。
    例えて言うと、このような動きをロボットにさせたい場合、「ボタンを押せ」といった単純な命令ではロボットはどうすれば良いかわかりません。 もっと具体的に、右手人指し指の第2関節部を80度上方向に回転し、第一関節部を30度下方向に回転するといった流れで命令をしなければなりません。 つまり、人間にとっては単純な命令でも、その命令を細分化して指示をしなければ、コンピュータは動くことができないというわけです。 この細分化した指示をまとめたもの、つまり「具体的で明確な処理手順」のことを、アルゴリズムと言います。

②アルゴリズムの例

  • では、実際にアルゴリズムを例を挙げて説明しましょう。 本格的なプログラミングのアルゴリズムの前に、ここでは「カレーを作る工程」を例にアルゴリズムを説明します。 アルゴリズムとは、簡単に言えば「作業手順」のことです。 カレーを作る作業手順と言えば・・・
    1.材料を洗う
    2.材料を切る
    3.材料を炒める
    4.水とルーを入れて煮込む
    といった流れになりますね。 これも一つのアルゴリズムですが、コンピュータに命令を出すときには先程お伝えしたように「事細かに」命令をする必要があります。
  • ん?どういうこと?
  • 例えば「材料を切る」という工程を考えたときに、材料といっても肉、人参、じゃがいも、玉ねぎなどいろいろありますし、切り方も様々ありますよね。 ここで「じゃがいもを切る」という作業手順を事細かにすると・・・
    1.皮がなくなるまで、皮を剥く
    2.もし芽があったら、芽を取り除く
    3.半分に切る
    4.1cmずつ、端まで切る
    といった流れになりますね、これもアルゴリズムのひとつです。 このように、アルゴリズムと言っても、全体的にざっくりしたアルゴリズムと、その各工程を細かくしたアルゴリズムがあると理解してください。

③3つの制御構造

  • さて、ここからはとても重要ですからしっかり聞いてくださいね。 先程の「じゃがいもを切る」というアルゴリズムの順番ですが、例えば4の作業と1の作業が逆になったらどうなりますか?
  • えー!先に切っちゃうと、皮が剥きづらいし、もしかしたら芽を取り除くのを忘れるかも。
  • そうですね。アルゴリズムを考える際には、この「順番」が非常に大事ということです。 そして、「皮がなくなるまで、皮を剥く」、「1cmずつ、端まで切る」といった、同じことを繰り返し行うことを「反復」と言います。 また、「もし芽があったら、芽を取り除く」という、ある条件により処理が分かれる作業のことを「選択」と言います。 実は、どんなに複雑なアルゴリズムでも、小さな処理に分割すると、「順次」、「選択」、「反復」のたった3つの基本構造で組み立てられます。 これを、アルゴリズムの3つの制御構造と言います。
  • どんなに複雑なレゴ作品でも3種類のブロックで作れてしまうようなもの?
  • 良い例えですね!まさにそのとおりです。 そしてプログラミングは、アルゴリズムをコード化すると考えると、順次、選択、反復の3つの制御構造を使って、いかに効率良く並べていくかがポイントとなります。 そのアルゴリズムを視覚的に分かりやすく図示したものが「フローチャート」です。 次回は、このフローチャートについて説明していきますね。

まとめ

  1. コンピュータに命令を出すときには「事細かに」命令をする必要がある。
  2. コンピュータに命令するための指示を細分化してまとめたものを、アルゴリズムと言う。
  3. どんなに複雑なアルゴリズムでも、小さな処理に分割すると「順次」、「選択」、「反復」のたった3つの制御構造で組み立てられる。