【Java入門】フローチャートとは?アルゴリズムとは?-2つの関係性は?

プログラミング

皆さんこんにちは、TaroTechです。

今回は「アルゴリズムとフローチャートの関係性」について図を用いながら解説していきます。

プログラミングをする際に意外と重要なのが処理の順序になってきます。同じ処理でも記述する順番によって処理の効率が変わってきたりします。

この記事では、処理を論理立てて効率よく行っていくために大切な考えであるアルゴリズムと、処理の流れを図で可視化したフローチャートについて説明していきます。

1.アルゴリズムとは

アルゴリズムとはコンピュータに実行させたい処理の効率的な順番のことを表します。

アルゴリズムといえば、NHK教育で長年放送されている「ピタゴラスイッチ」の「アルゴリズム体操・行進」がおなじみではないでしょうか?

この行進は複数人が様々な体の動作をバラバラにかつ連続的に行いながらも、ひっかかりや衝突のようなエラーがなく一連の動作として完結しているよくできた行進なのです。

コンピュータでもこのように複数の動作がエラー無く正しいロジックによってつながることで一連の処理として行われているのです。

このようにプログラミングをする際は処理の順序というのが重要になってくるのです。

2.フローチャートとは

フローチャート(流れ図)とはアルゴリズムを図に表し、処理の流れを分かりやすい形で可視化したものになります。

フローチャートにはいくつか書き方のルールや規格がありますが、ここでは一般的なフローチャートのルールについて説明していきます。

フローチャートに使う図形の種類

【書き方】

フローチャートではそれぞれの部品を直線と矢印で結んで記述していきます。
また、処理の内容については部品の中に直接記述します。

フローチャートの例

フローチャートを書く時に意外と忘れがちなのが端子です。端子は一連の処理の開始と終了を表すので、まずフローチャートを書く際は開始と終了を先に記述してから間の処理を埋めるようにしましょう。

また、条件分岐については分岐先がそれぞれ条件の「Yes」か「No」の分岐先なのかがわかるように言葉を記述することも忘れないようにしましょう。

それでは、もう少し日常生活での処理を考えてみましょう。
今回はカレーライスの調理を例にとってフローチャートを書いてみたいと思います。

調理の手順

1.カレーに必要な食材を購入する。
2.じゃがいもは皮をむき、芽を取り除いておく。その他の野菜も皮をむいておく。
3.肉と野菜を一口大に切る。
4.フライパンに油をひいて中火で肉を炒める。
5.野菜を加え、玉ねぎが透き通るくらい炒める。
6.水を加えて15~20分煮込む。
7.カレールーを加えて溶かしながらさらに10分煮込む。

この手順をフローチャートに書き起こしてみると、、、

カレーライスの調理フローチャート

この例ではループを使用していますが、ループの開始と終了の両方にループの名前を記述してあげます。

こうすることでループが複数存在する場合やループの中にループが入る「入れ子」のような複雑な場合に分かりやすい記述になります。

ループの入れ子

また、ループの部品の中には必ず終了条件を記述しましょう。
終了条件になったらループを抜けて後続の処理へと続いていきます。

3.処理の順序について

フローチャートを用いた一連の処理の記述方法については理解できたかと思います。
ここでは意外と気にしていない処理の順番について説明します。

例えば、
水曜日に20歳以上はポップコーンが無料、20歳未満はチケット代が30%OFFになる映画館」についてフローチャートを考えてみましょう。

フローチャート1
曜日判定→年齢判定

フローチャート1(曜日判定→年齢判定)

1の場合最初に曜日の判定をすることで全体としては分岐が2か所で済んでいます。

フローチャート2
年齢判定→曜日判定

フローチャート2(年齢判定→曜日判定)

2の場合最初に年齢の判定をしてしまうと、Yes・Noに関わらず後続で曜日の判定を行うため全体では3か所分岐が発生してしまいます。

1も2もやっている処理の内容自体は同じであるものの、処理の効率性やフローチャートの分かりやすさを考えたら、1の方が処理の順序としては良い記述といえます。

このことからもわかるように処理の順序は意外と大事なので、プログラミングをする際は処理の順序にも気を配ることで、分かりやすくて効率の良いコードになるでしょう。

コメント

タイトルとURLをコピーしました