こんにちはそれでは始めます。一同礼!!
前回は為替換算を例にとって順次処理を説明しました。どんな感じでアルゴリズムを組んでいくか、ちょっとは掴んで頂けたのではないでしょうか。順次処理については単に順番通り処理するって事だけ頭に入っていればOKです。今回は分岐処理について説明します。「分岐」、読んで字の如く分かれている事で、分岐処理とはある条件に応じて処理の流れを制御する(フローコントロール)事をいいます。これだけではどんな時に使うのかピンとこないと思いますので、具体例を挙げながら説明していきます。
問題)イタリア土産にワインを買って帰る事にしましたが、本数が多いので一人当たりの予算を日本円で600円以下にしたいと思っています。買おうとしているワインが予算内かそうでないかを表示して下さい。ワインは4.7ユーロ、レートは1ユーロ128円とします。
ちょっと強引な問題で恐縮ですが、前回の続きでやって頂きたいのでこのようなしました。アルゴリズムの目的は購入対象のワインが予算以内であるか否かを判定することです。
アルゴリズムその1) ワインの価格を日本円に換算する 日本円の価格が予算金額以下であるか判定 予算以内であれば”予算内”と表示する そうでなければ”予算オーバー”と表示する。
Rate = 128 Price = 4.7 Budget = 600 Answer = Rate * Price if (Answer <= Budget) { (1) print "予算内" (2) } else { print "予算オーバー" (3) }
順次処理だけの場合は、結果は常に一つですが、分岐処理の場合は処理結果が複数になります(もっともこの例では価格を変えなければ結果は常に同じですが)。分岐処理は基本的に(1)条件を判定(2)条件判定の結果が真であるときの処理(3)条件判定の結果が偽であるときの処理の三つで構成されています。(3)を省略して条件が真のときだけ何かを行う処理も可です。
アルゴリズムその2) 予算の金額をユーロに換算する 換算した金額がワインの価格を超えているか判定 超えている場合は”予算オーバー”と表示する。 そうでない場合は”予算内”と表示する。
Rate = 128 Price = 4.7 Budget = 600 Answer = Budget / Rate if (Price < Answer) { (1) print "予算オーバー" (2) } else { print "予算内" (3) }
問題に対してそれを解決する答え(アルゴリズム)は一つではない事を示すために、異なるアルゴリズムを考えてみました。実はユーロ換算に割り算を使っている分、アルゴリズム2のほうが1に比べて精度が落ちます。これは割り切れない数値だと、小数点以下のある桁数以降の値は捨てられてしまう(結果が丸められてしまう)からです。ですからどちらがより正確かと言えばアルゴリズム1となりますね。
ここまでで分岐処理は理解出来たでしょうか。理解出来なかった人は例題を何回も読み直してください。「予算に128を入れて」、「価格に4.7を入れて」って調子で読んでいくといいと思います。今回の例題では条件は一つで、分岐も一つしかありませんが、実際には複数の条件に応じて、結果も複数になるような処理も出てきます。どのように書くのかは今は書きませんが、なんとなくは想像出来ると思います。基礎編が終わりましたら実例を挙げて説明していくつもりですので、慌てずに待っていてください。
私としてはまだ理解出来ないほどは難しい内容は取り上げていないつもりですが、いかがだったでしょうか。
それでは終わります。一同礼!!