プログラミング上達のカギ!アルゴリズムとは?簡単に基礎から学ぼう

プログラミングを学んでいると、「アルゴリズム」という言葉をよく耳にするようになります。

 

「アルゴリズム」と聞くと、”アルゴリズム体操”という教育番組は見たことあるという人もいると思います。

 

「アルゴリズム」をよく調べてみると、誰もが普段から使っていて身近なものだということが理解できます。

 

・アルゴリズムってそもそも何?
・プログラミングとアルゴリズムはどう関係があるの?

 

という素朴な疑問は常にあると思います。

人によっては、

 

アルゴリズムは問題解決の手順を書き示したものだよ

文法を学ぶのと同時にアルゴリズムも学ばないとプログラムは書けないよ
というするどい意見も聞こえてきます。

確かに、プログラミングに必要な文法は一通り学んでも、プログラムが書けるようにはなりません。

 

なぜなら、文法を学んでも文章の書き方までは学んでいないからです。

たとえば、英語で小説を書きたいとします。

 

英語の文法や構文は覚えたけれど、ストーリーの展開までは手順を学ばなければ書けない事と同じだからです。

 

プログラミングも同様に、「アルゴリズム」という問題解決の手段や手順を学ばなければなりません。

 

今回は、「アルゴリズム」とはなにかを知り、プログラミングとの関係を確認します。

 

その次に、プログラムを作る上で、いつ「アルゴリズム」が必要になるのかを見ておきます。

 

そして最後に、問題解決における「アルゴリズム」の手順は、3つの基本構造から成り立っていることを説明します。

 

この記事を読めば、

プログラミングにはプログラミング言語の文法を学ぶほかに、「アルゴリズム」を学ぶ必要性があることを理解することができます。

 

アルゴリズムとは?

あなたは、普段から

    • どうしたらできるだろうか?
    • どのようにしてやろうか?

というようなことを考えたりしますか?

 

その考え方やアイデアといった形のないものがアルゴリズムの正体なのです。

 

問題や課題解決のための手順

突然ですが、あなたはファストフードのハンバーガー店でアルバイトをはじめました。

ハンバーガーを作る仕事を任されたら、どのようにしてハンバーガーを作りますか?

 

お店ではハンバーガーをはじめて作る従業員向けに手順書もしくはビデオを見てもらいます。

そこではじめてハンバーガーの作り方を知ります。

 

ハンバーガーを作る手順書は誰が作っても同じハンバーガーができるように作り込まれています。

 

 

ハンバーガーを作る課題が与えられたときに、どうしたら美味しいハンバーガーが誰でも簡単に作れるか?

 

 

アイデアや考え方を手順として表現したものがアルゴリズムだよ

 

アルゴリズムとプログラミングの関係

アルゴリズムとは、人間のアイデアや考え方です。

人間のアイデアや考え方は形のないものです。

 

形のないものを手順としてまとめ、それをコンピューターに伝えて処理を行います。

 

コンピューターが理解できるプログラミング言語に置き換えられるように手順書をまとめたものがプログラムなのです。

 

プログラミング言語を使ってアルゴリズムをプログラムにしていくことをプログラミングというよ

コーティングともいうよ

コンピューターが実行できるように記述したものをプログラムと呼ぶよ

どの段階でアルゴリズムが必要になる?

アルゴリズムが必要になるのは設計段階

まず、上図からプログラムが作られるまでを把握しよう。

 

プログラムが必要になるのは、

問題になっている課題をプログラムで解決できないか

ということが、ニーズの発端です。

 

そのときに必要になるのが、機能や仕様などの要件をまとめることです。

要件をまとめることができたら、設計の段階に入ります。

 

要件を満たすための機能を、プログラムでどのように実現させれば良いかを考えます。

ここで必要となるのがアルゴリズムです。

 

アルゴリズムを考える
  • どうしたら実現できるだろうか?という手段を練ることになります。
  • 練った手段をどんな手順で処理していけばよいのか?

アルゴリズムは設計の段階で詳細に検討することになります。

 

プログラムの設計段階で、手段や処理の手順を考えるアルゴリズムが必要だよ

 

 

アルゴリズムのこと少しずつ理解できてきたかも!

 

 

そして、次に紹介するアルゴリズムの基本構造は、アルゴリズムで考えた手順を実現させるためのツールになるよ

 

 

アルゴリズムの基本構造は3つだけ!

ここからは、アルゴリズムで考えた手順を実現させるための基本構造(文法書では制御構文)を紹介します。

 

アルゴリズムの手順を小さく分解していくと3つの構造に落ち着きます。

 

この3つの構造を使ってプログラムを設計する方法論を構造化プログラミングと言います。

 

①順次構造

順次構造は、流れ作業のように流れてきた情報を順番に処理するだけです。

 

ハンバーガーを作る手順

①バンズ(パン)を用意

②焼きあがったパテ(お肉)をバンズの上にのせる

③バンズをパテの上にのせる

これでハンバーガーの完成です。

 

出来ている材料を上に重ねるだけでハンバーガーが出来上がります。

 

右から左に材料を移動させれば誰でも作ることができます

②選択構造

選択構造は、なにかしらの条件判断により処理を分岐させる場合に必要になります。

 

もしチキンバーガーの注文が入ればパテの代わりに、チキンをのせる工程へ分岐させます。

 

ハンバーガーであるか?
    • Yesならパテをのせる
    • Noならチキンをのせる

 

条件を満たす判断をおこない次の工程に進むという場合に使います。

 

 

③反復構造

反復構造は、条件を満たす限り繰り返しを行うというものです。

 

たとえば、パテの材料がなくなるまでハンバーガーを作り続ける条件を設定します。

条件が満たされていれば何個もハンバーガーを作り続けることができます。

 

繰り返しという規則性の存在に気付き、パターンを見抜く力が必要です。

 

パターンを見つけ出せれば、プログラムが短くなりコードの読みやすもアップするよ
アルゴリズムのことをもっと詳しく知りたくなった方は、こちらの記事もどうぞ!!

まとめ

アルゴリズムって何だろう?というところからはじまり、アルゴリズムの基礎を解説してきました。

以下3つにまとめておきます。

    • アルゴリズムとは、考え方やアイデアといった形のないものを問題解決の手順としてまとめたもの

 

    • アルゴリズムは、プログラムの設計段階で必要になる

 

    • アルゴリズムを考える上で必要なプログラミングの基本構造は3つのみ
アルゴリズムを学んで、「フローチャート」を学ぶとより理解が深まります。詳しくはこちらの記事参照
自分のアイデアや考え方を手順としてまとめていく上では学ぶ必要性があります。
おすすめの記事