アレアレ

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

基礎編

「コンピューターはこんなことが得意です」という具体例の補足

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

「コンピューターはこんなことが得意です」という具体例の補足

前回の、「こんなことをコンピューターにプログラミングでお願いして楽できる」と言う具体例の記事では、50人の名前と誕生日が書かれた名簿の検索を例に、「コンピューターは、たくさんある情報の中から、何かを探すことが得意だ」ということをご紹介しました。

今回は、その補足として、「コンピューターはこんなことが得意です」という具体例をいくつかご紹介します。

並べ替え

コンピューターは、たくさんある情報を並べ替えることが得意です。前回の記事では、名前と誕生日のリストを示しましたが、それは、名前の五十音順に並んだものでした。

それを試しに、コンピューターにプログラミングで指示することで、誕生日が早い順に並べ替えて見ると、次の通りです。

もり ひなた,1951/08/04
さいとう りゅうせい,1952/04/11
なかむら たいち,1952/12/18
(省略)
やまざき みさき,2014/05/01
やまぐち たいが,2015/01/07
やまもと ひろと,2015/09/15

このように、コンピューターを使うと、たくさんのデータを簡単に並べ替えることができます。実際のところ50件程度の名簿であれば、この作業も人間でもできなくはありません。

ただ、それでも時間がかなりかかる上に、どこか間違っている可能性もあります。また、名簿の人数が、100人、1000人、10000人と増えたとき。もはや人間の手で、この並べ替えをするのは、難しいですよね。コンピューターの場合は、この程度のデータ数ならば、一瞬で処理してしまいます。なので、プログラミングをすることで、その並べ替え方を指示し、この仕事をコンピューターに任せたいわけですね。

正確に計算する

コンピューターは、要するに計算機ですから、正確な計算も得意です。

例えば、上のリストの誕生日から、この記事を書いている2018年4月10日時点の年齢(何歳か)を計算させてみます。その結果は次の通りです。

もり ひなた,1951/08/04,66歳
さいとう りゅうせい,1952/04/11,65歳
なかむら たいち,1952/12/18,65歳
(省略)
やまざき みさき,2014/05/01,3歳
やまぐち たいが,2015/01/07,3歳
やまもと ひろと,2015/09/15,2歳

このようにコンピューターを使うと、このような年齢計算を一瞬で、かつ正確に計算できます。

この計算も、50件程度であれば、人間でもできなくはありません。ですが、この年齢計算は、日付が進むたびに変わるものです。例えば、2018年の12月になったら、この年齢ところの値は、1歳増えている人が多いですよね。

そのように日付が進むたびに、年齢計算をすることは可能ですが、人間がそれをすると苦痛でしかありません。同じような作業を何度も繰り返すことになるからです。それも毎日です。

コンピューターは文句も言わず、このような計算を行ってくれます。

集計する

コンピューターは集計するのも得意です。例えば、上の50人のリストが美容院の顧客名簿だったとして。店長のあなたが、「うちのお客さんの平均年齢って何歳なんだろう?」と知りたかったとします。

この記事を書いている現時点でのその答えは、「平均年齢: 33.9歳」となるのですが、このような集計もコンピューターは一瞬で行えます。

これを人間がする場合。上でした通り、まず誕生日からその日付時点での年齢を計算する必要があります。その上で、それらの数字を足し合わせて、人数で割って求めることになります。

人間がこの一連の計算処理をした場合、どこかで間違いが起こるだろうことは、容易に想像つきますよね?コンピューターは、素早く、正確に、それを集計してその結果を教えてくれます。

このように、「人間がやると面倒な計算処理を、プログラミングで指示を出すことで、コンピューターに任せたい」というのがプログラミングをする最大の目的となります。逆に、この目的を意識せず、プログラミングを学んでも、「打ち込んだプログラムがなんか動くのはわかった。けど、何が嬉しいの?」と言うことになりかねません。

すると、結局プログラミングを学んでも、実践的には使い物にならなくなります。「コンピューターに自分の面倒なこの作業をさせたいからプログラミングをするのだ」と言う目的意識を持つことが重要です。

次に読む記事: ロボットへのプログラミングとコンピューターへのプログラミングの違い

Return Top