こんにちはそれでは始めます。一同礼!!
前回ようやく分岐処理も登場して、残すところは繰り返し処理だけとなりました。この処理を理解すれば、プログラミングを学ぶにあたって基礎的な考え方が出来るようになります。まあ入門の入門が終了するってとこでしょうかね。あとはどれでもいいから一つ学んでみたい言語を選んで、実際にプログラムを作りながら習得すればいいのです。
繰り返し処理って何でしょうか。言葉からだいたい想像出来る思いますが、指定した回数や特定の条件を満たす(条件が真になる)まである処理を繰り返すことです。ではどんな時に繰り返し処理を使うのか、例によって具体例を挙げながら説明していきます。
問題)イタリア土産にワインを買って帰る事にしました、適当に選んで5,000円以内に納めたいと思います。ワインを選んでかごに入れるたびに残りの予算を日本円で表示し、予算を超えたときには買い物終了のメッセージを表示して下さい。レートは1ユーロ126円とします。
ちょっとくどいですが今回も前回の続きとして説明します。問題も繰り返しが大事なんです。アルゴリズムの目的は買い物総額が予算金額を超えるまで、買い物処理を繰り返す事です。
アルゴリズムその1)
買い物総額が予算を超えるまで以下の処理を繰り返す
−−−−−−以下繰り返し部分−−−−−−
ワインの価格を日本円に換算する
ワイン価格を買い物総額に加算する
買い物総額が予算を超えていないかを判定
超えていない場合はそうでなければ”残りは???円”と表示する
−−−−−−−−−−−−−−−−−−−−
”予算を超えました。最後にカゴに入れたワインを棚に戻してください”と表示する
Rate = 126
Budget = 5000
Price = 0
Total = 0
while (Total < Budget) { (1)
Price = INPUT_WINE_PRICE // --- Begin --- (2)
Answer = Rate * Price
Total = Total + Answer (3)
if (Total < Budget) {
Remaining = 5000 - Total
print "残りは" + Remaining + "円です" (4)
} // --- End ---
}
print ”予算を超えました。最後にカゴに入れたワインを棚に戻してください”
前回に比べてずいぶん複雑になりましたが、皆さんはどの部分が繰り返されているか分かったでしょうか。他の行に比べてインデントされている(入れ子になっていると言う)部分が繰り返し部分です。それではざっと説明します。(1)これが今回の肝である繰り返し処理の起点となるラインで、Totalの値がBudget(ここでは5000です)を超えるまで"Begin"から"End"までの間を繰り返します。(2)簡単にするために省略していますが、ここにワインの値段を入力する処理があると思ってください。(3)合計金額を計算しています。(4)ここでは「残りは3800円です」と言うように表示されます。
もしまったくプログラムの動きが理解出来ない場合は、まずそれぞれの項目(RateやBudget)にどんな値が入っているのか、それぞれの項目をメモしながら上から順番に指で追っていってみて下さい。何度も指で追っていけばどのように動いているかだんだんに分かってくると思います。まだまだ全体が短いので少し時間をかければなんとかなります(よね?)。
余談ではありますが、プログラムをざっと読んだだけで、ソースコードが頭に浮かんで、その動きが視覚的に(なんとなくですが)イメージ出来るようになればしめたものです。将棋の有段者は頭の中に仮想将棋盤があって、有段者同士だと将棋盤が無くても将棋が出来るそうですが、プログラマもまさにこれと同様の状態になる訳です。「ああ、ここがくるくる回ってるんだな」と食事をしながら考えてたりするので、プログラマは他にくらべると独り言の多い職種なのもなるほど納得ですね(もしかして私だけ?)。ですから会社や学校なんかで画面に向かって何やらぶつぶつ言っている人を見かけても、それは変な世界に入り込んでいるのではなく、単にプログラミングに没頭してるだけだと思って、そっとしておいて挙げてください。
さあてようやく基礎の基礎が出来ました。次回からはいよいよ実践編です。お楽しみに!!
それでは終わります。一同礼!!