SEのゲーミング部屋

ゲーム好きが高じてSEに

ショート講座 プログラムを作るうえで理解しよう その3 【関数】と【サブルーチン】

第3回目のショート講座です。

少しでもプログラムの事を理解してもらえればと思っての講座です。

講師の説明が下手で申し訳ないですが…

 

今回は前回は「変数」「定数」についてでしたが、今回は「関数」と

サブルーチン」についてお話しようと思います。

「関数」という言葉は数学で聞きなれた言葉だと思います。意味も同じです。

また、エクセルなどでも標準で関数があったりするのでIT用語の中でも馴染みのある

言葉だと思います。

一方「サブルーチン」はあまり聞きなれない言葉だと思います。

こちらは「サブ(Sub)」の「ルーチン(Routine)」という意味です。

プログラムはメインの処理(ルーチン)から小さく区切ったサブの処理(ルーチン)

を呼ぶような作りをします。この機能ごとに小さくまとめた処理をサブルーチンと

呼びます。

 

前回出てきた「変数」「定数」ただの入れ物だったのですが、「関数」や「サブルーチン」はその箱の中で処理を行います。

処理を行うといっても勝手に何かしてくれるわけではありません。自分でプログラミングしていきます。

(エクセルや他の言語でもあらかじめ用意されている関数もあります)

プログラムを習い始めるとこの「関数」と「サブルーチン」の違いや使い方に悩みます。私は今でもたまに悩みます。

 

この2つの決定的な違いは処理をした結果を返すかどうかです

経ったそれだけの違い?と思われがちですが、そこがどちらを使うかの決定打になります。

私はこの考えで使い分けています。

 

関数:複数回同じ処理を利用する

   処理結果によって後続の処理を制御する

 

サブルーチン:汎用性のない一度きりの処理

 

関数というのはある一定の処理に対して引数(パラメーター)を渡し、その引数に

よって処理された結果を返す目的で使用することが多いです。

エクセルの「SUM」関数などを思い浮かべてください。

 

あと例えば画面に情報を入力して「登録」を行う処理があるとした場合、

入力内容をチェックし、入力もれや間違いがあったらエラー箇所を指摘し、登録処理

を中断するという「入力チェック」などに関数を使用します。

サブルーチンでも関数のように使用できなくもないのですが、汎用性を考えると

使い勝手が悪いです。

 

例えば仕事を頼まれた作業を行った結果を上司に報告するAさんが「関数

Aさんと同じ仕事は出来るが上司に報告をしないBさんが「サブルーチン

 

上司の達がからしたらどちらが使いやすいですか?

プログラムのようにいくつもの作業が連携して行われていく場合、圧倒的に

使いやすいのが「関数」です。ただし、後続に何も作業がないような処理は

「サブルーチン」の方がいいです。

いちいちいらない情報を報告してくる人ってやや迷惑ですよねwww

 

このようにその処理が汎用的であるか、処理の結果によって後続の処理の制御

を行うかによって「関数」と「サブルーチン」の使い分けを行います。

 

ちなみにこの「関数」や「サブルーチン」は色々な処理を入れれますが、

小さい機能のかたまりにしておいた方がより汎用性があります。

それをある一定のパーツ化しておくと、パーツの組み合わせだけで処理が完成します。

パズルのように組み立てるだけでプログラムが作れてしまうので、一度作成した処理

で何年も楽出来たりします。

プログラムも文字打つのが結構大変なので、トヨタ式のように共通部品を作れるよう

な効率的な関数を作成して楽して稼ぎましょう。

 

 

本日も短い時間でしたがお付き合い頂いてありがとうございます。

今回も私の好きな曲を紹介してお別れです。

 

曲はエレファントカシマシで「俺たちの明日」

俺たちの明日

俺たちの明日

  • provided courtesy of iTunes

 

sekskjp.hatenablog.com

 

sekskjp.hatenablog.com

 

今回の講座代の代わりにクリックお願いします