
あなたはプログラムを書くとき、フローチャートを作図しますか?
フローチャートは、どんなプログラムを作ろうか?を、図にして記号化したものです。
初心者のうちから設計図がないまま、いきなりプログラムを書こうとしていませんか?
たとえば、設計図がない状態で家を建てる会社は存在しません。
なぜなら、工事をはじめて試行錯誤しながら建てると、いろいろな問題が生じるからです。
- 重要な機能を見落とす
- 想像では建てられても、実際には無理がある場合がある
- 終了期日に間に合わない
プログラムも同様に事前に処理の流れを検討しておくことが重要になります。
その役割を果たすのがフローチャートになります。
というように思っていませんか?
人によっては、
プログラムを組める人は、フローチャートを描かなくても処理の手順を言葉で整理してプログラムを書きはじめる人もいます。
プログラムを書ける人と書けない人の差はどこにあるのでしょうか?
答えは、頭の中に処理の手順が思い浮かんでいるので、わざわざフローチャートを描かなくてもプログラムが組めるのです。
この状態になるためには処理の流れを訓練しなければなりません。
本記事では、まずはじめにフローチャートの役割について確認しておきます。
その次に、処理の流れを訓練するために、フローチャートの書き方を学んでいきましょう。
そして最後に、実例を交えてフローチャートを描いていきます。
この記事を読めば、
フローチャートは、プログラムの下地である基本構造で構成されていることが理解できるようになります。
目次
フローチャートの3つの役割
フローチャート(流れ図)でプログラムの全体像を知る
フローチャートがあると、プログラム全体の流れが理解できます。
図形記号を使うので処理の手順を直感的に理解しやすくなります。
フローチャートは自分のアイデアを形にするはじめの一歩
あなたは、なんのためにフローチャートを描こうとしているのでしょうか?
ですよね。そのためには、
処理の手順をコンピューターに伝えるために必要な条件を見つける
コンピューターに処理の手順を伝えるためには、
-
- どんな変数を用意して
-
- どんな処理を
-
- どんな順番で
を論理的に伝える必要があります。
これを図として整理したものがフローチャートになります。
プロブラミングで一番重要なことはフローチャートを描くことではなく、処理の手順を考え出せることです。
すなわち、プログラミングはアルゴリズムを組むことができるかということに集約することができます。
アルゴリズムの基礎については、下記の記事で詳しく解説!
フローチャートの役割は、処理の手順を整理するために描けることが望ましいと言えます。
フローチャートは3つの図形だけで書ける
フローチャートは流れ図とも呼ばれ、JIS(日本産業標準調査会)により規格化されています。
JIS規格の詳細は、JIS検索画面に規格番号を入力しweb上で閲覧可能になっています。
規格番号JIS X0121
規格名称 情報処理用流れ図
フローチャートを描くための3つのポイント
プログラムを組むための手順を考える場合、プログラムの流れが理解できればよいのです。
そう考えると、以下3つのポイントに意識を向けれてフローチャートを作ればよい。
- 難しい処理は分解して考える
- シンプルに考える
- 使うルールは最低限
基本は3つの図形と記号をつなぐ線
基本は3つの図形のみを使用する。
端子、処理、判断の図形と記号をつなぐ線でフローチャートを考えていきます。
線は処理の流れを示します。
基本の流れは、上から下へ、左から右へになります。それ以外の場合に矢印を設けます。
この3つの記号を使えば、プログラムにおける基本構造の形が描けます。
プログラムの下地となる基本構造を3つ覚えよう!
①順次構造
プログラムが書かれている順番に処理される
②選択構造
条件を満たす場合とそうでない場合に分ける
③反復構造
反復構造を抜けるための条件式が必ず必要になる。
そうでなければ、無限ループになってしまいます。(無限ループになるとプログラムを止めることができません。)
フローチャートでよく見かける間違え
フローチャートでよく見かける間違えを見ていきます。
- 入力線は判断や処理の上から
- 処理で流れが分岐することはない
- 処理は入力と出力が必要
真似したい!フローチャートの優れた実例まとめ
データを交換するフローチャート
ここでは、フローチャートを使って変数データの交換を考えます。
上の図のように、コップに入っている液体で変数データの交換を考えてみます。
コップの液体をこぼさずに、コップをどのようにして交換しますか?
コップに入っている液体をこぼさずに交換するためには、空のコップCを用意します。
手順1.コップAの液体を、空のコップCへ移す
手順2.コップBの液体を、コップAに移す
手順3.コップCの液体を、コップBに移す
空のコップを1つ用意して変数データを1つずつ順番に移動して、変数データを交換することができました。
変数データを交換する処理は、順次構造で処理することができると理解できます。
合計値を計算するフローチャート
A + B + C + D + E = sum(合計)
(それぞれのアルファベットは、数字とします。)
上記の式で、アルファベットの足し合わせる要素(数)が100や1000と増えた場合に、簡単に合計を算出するにはどうしたらよいでしょうか?
アルファベットを配列の入れ物として、合計値を求めるアルゴリズムを考えフローチャートにしてみます。
④は、②で配列として表現したものをフローチャートで表現しています。
配列に関する詳しい解説はこちらの記事!
さらに、完成形を見ていきましょう。
④、⑤、⑥の工程では、上述した順次、反復、選択といったプログラムの下地となる3つ基本構造で成り立っていることがわかります。
まとめ
以上、フローチャートの役割と書き方、実例を見てきました。
以下にまとめておきます。
- フローチャートには、プログラムで行う処理の手順を整理する役割がある
- 使う図形を限定し、プログラムの下地となる3つの基本構造を覚える
- フローチャートの実例では、合計値のアルゴリズムが基本構造で成立していることを確認