アレアレ

お役立ち情報、お悩み解決情報を発信!

基礎編

アルゴリズムを作るときに「条件判定」が役立つ具体例

このサイトの プログラミング教育 のコーナーでは、これからプログラミングを学び始める子供を持つ親御さんに向けて、プログラミングについてわかりやすく解説しています。全くプログラミング経験のない方は、基礎編の記事から、基礎編を読んだ方は実践編の記事をご覧ください。

アルゴリズムを作るときに「条件判定」が役立つ具体例

前回の、アルゴリズムを作るときに「繰り返し」の便利さがわかる具体例の記事では、Code.orgにある子供向けのアルゴリズム学習の練習問題を例に、アルゴリズムを作る際に「繰り返し」を使う便利さの具体例をご紹介しました。

今回は、同じ例題を利用し、アルゴリズムを作る際に「条件判定」がどのように役立つのかの具体例をご紹介します。

人に何かを頼むとき「条件判定」をよく使う

これまでの記事でお伝えした通り、プログラミングとは、なんらかの目的を達成するための手順のリスト(つまり、アルゴリズム)をコンピューターに実行させる指示を定義することです。

つまり、コンピューターに「この仕事を、この手順通りにやってね」とお願いするときの、お願いの仕方を定義するのがプログラミングです。

さて、自分ができない仕事を人でもコンピューターでも、代わりやってもらうようにお願いするとき、頼む相手になんらかの判断をしてもらいたいことは良くあります。

例えば、以前、「プログラミングとは何か、なぜプログラミングするのか?」がよくわかるたとえ話の記事では、友人に洋菓子店まで、ケーキを買うお使いを頼む時のメモをご紹介しました。

そのメモの中で「もし洋菓子店が休みだった場合、別の店でドーナツを買って来て欲しい」と言う指示をしていました。この「もし」のところで友人に店が休みかどうかを判断してもらっていますよね。

他、例えば、普段自宅で、植木鉢で植物を育てているとしましょう。ある時、あなたが、1週間程度、旅行することになり、近くに住む親戚に、植木のお世話をお願いするとします。

その親戚に水のやり方を伝える際に、「基本的には、どの植物でも、これくらい水をあげてもらえれば大丈夫。だけど、この植物だけは、たくさん水をあげすぎないでね。そうすると逆に枯れちゃうから。」のようにお願いしたいケースは、想像できますよね。ここでも「この植物だけ」のように、例外的に扱う植物を親戚に判断してもらっています。

このように人に何かのやり方の手順を伝える、つまりアルゴリズムを作るときは、「もしこうだったら」や「この場合は」のように、条件で場合分けをしたくなることが良くあります。つまり、それをプログラミングしてコンピューターにお願いする時も、同じように場合分けをしたくなるわけですね。

それを実現するのが、「条件判定」です。

「条件判定」が使えると、より汎用的なアルゴリズムが作れる

以上の説明から、アルゴリズムを作るときに、「条件判定」が必要となることは理解できたはずです。一方で、それをプログラミングとして表現するときに、具体的にどう役立つかのイメージは、まだわかないはずです。

そこで、前回の記事でも使った、赤い鳥を豚のところまで動かすアルゴリズムを例に、「条件判定」が役立つ具体例をご紹介します。

code.orgの繰り返しを学習するための練習問題
code.orgの繰り返しを学習するための練習問題

※Code.org: コース1、ステージ13、パズル4より引用

前回の記事の復習となりますが、鳥を豚のところまで動かすにあたり、一番簡単に思いつくのは、次のアルゴリズムです。

簡単に思いつくアルゴリズム

下に1歩進め
下に1歩進め
下に1歩進め
右に1歩進め
右に1歩進め
右に1歩進め
右に1歩進め

そして、「繰り返し」を使うと、次のようにもっとシンプルにこのアルゴリズムを定義できる、とお伝えしたのが前回までです。

繰り返しを使ったアルゴリズム

「下に1歩進め」を3回繰り返せ
「右に1歩進め」を4回繰り返せ

さて、ここから本題となりますが、次のものが、「条件判定」を使ったアルゴリズムの定義です。

条件判定を使ったアルゴリズム

「下に1歩進め」をTNTブロックの前まで繰り返せ
「右に1歩進め」を豚にぶつかるまで繰り返せ

TNTブロックの前まで」や「豚にぶつかるまで」のところが、条件判定です。

このようにアルゴリズムを変更すると、何が嬉しいのかというと、このアルゴリズムがより汎用的になったことです。どのように汎用的になったかというと、下に進む歩数と、右に進む歩数を指定しなくても良くなった点が、汎用的になっています。

例えば、このアルゴリズムは、下に500歩、右に3000歩先に、豚がいる場合でも使えますよね。一方、前回までのアルゴリズムは、豚までの歩数が変わった瞬間に使えなくなります。「下に3、右に4」と具体的に歩数を指定しているからです。

このように「条件判定」が使えると、アルゴリズムをより汎用的なものを作れるようになる便利さがあります。

次に読む記事: 子供にプログラミングを教えたい親御さんへのプログラミング教育基礎編まとめ

Return Top