第8回 筋道を立てよう − フローチャート − 「2.自販機でジュースが買える?」

8−2 自販機でジュースが買える?


さて、プログラムというのは「業務」や「ツール」「ゲーム」といった一連の動作をプログラム専門の言語で記述したものですね。
したがって、その難解なプログラムコードの向こう側には、それらの動作があるはずです。
とすれば、プログラム的な知識が浅くても、十分にその動作を観察すればそのような一連の動作をフローとしてまとめられるようになるでしょう。

ま、難しいことはさておき、ちょっと、フローを作る訓練をしてみましょうか。
例えば、自動販売機でジュースを買う、という動作についてそのフローを考えて見ましょう。

  「なんだ、簡単ジャン。お金を入れて、ボタンを押せば、ジュースが出てくるジャン。」

そうですね。フローはこんな具合になりますね。

    

しかし、実際は、これだけではないでしょう。ひょっとしたら「飲みたいジュースが売り切れ」という場合も想定できますね。
そうすると「売り切れだったらどうするか?」という条件に対してで、例えば、他の種類でも我慢できればそちらのジュースを、他を探すならその場を立ち去る、といった動作が加わることになります。
そんな条件を加えてフローにしたら、こんな感じでしょうか?

    

1つの条件判断が加わることで、ちょっと複雑になりましたね。
さらに自動販売機ですから「小銭」を持っているか否か、という点を考慮しましょう。
例えば、小銭を持っていなくても、つり銭が出れば買えますしが、もし「つり銭切れ」であれば、普通は買いませんね。
(お金を持っていない場合は論外ですが・・・)
その小銭の条件を組み込むと、こんなフローになります。

    

やれやれ、最初は簡単そうに思えた動作でしたが、このように様々な条件や状態を考えることで複雑なフローになりました。
また、さらには「多くの小銭を持っていた場合、どのような組み合わせでお金を入れるか?」とか「お金が詰まった場合」など、更に複雑な状態を考えることが出来ますので、このフローはまだまだ完全ではないでしょう。

このように、日常の単純な動作についてフローを考えることは、比較的、プログラムのフローを考える良い訓練になります。
なぜなら、今までの講座で説明してきた通り、BASICのコマンドの1つ1つはそれほど複雑な動作をしないからです。そのため、このように一連の動作を単純な動作単位に分解する訓練は無駄にはならないことでしょう。


前へ     目次へ     次へ

第8回 筋道を立てよう − フローチャート − 「2.自販機でジュースが買える?」