「フローチャート」という言葉を聞かれたことがあるでしょうか?もしあなたが、プログラミングを学んでプログラマーやエンジニアとして活躍したいのであれば、フローチャートを効率的に活用して、プログラミングの基礎を学ばれることをおすすめします。今回の記事では、フローチャートとは一体どんなものなのか?フローチャートはどうやって書けばいいのか?というようなことを、初心者プログラマーにもわかりやすく解説していきます。この記事を読んで、フローチャートをマスターしましょう!
フローチャートとは一体何?
フローチャートとはプログラムを作る際に、全体の流れを一目で見られるように、図形などを活用して分かりやすくまとめた図です。処理の始まりから処理の終わりまでを、上から下に向かって記述し、今から作ろうとしているプログラムを簡単に把握することが出来ます。特にプログラミング経験の浅い初心者プログラマーには重要なものです。
どうしてフローチャートを書いた方がいいのか?
どうしてフローチャートを書いた方がいいのでしょうか?理由は以下の3つです。
- プログラムの構造が整理できるから
- プログラミングが早く出来るようになるから
- プログラミングを間違えないようになるから
このように、フローチャートがあるだけで、プログラマーには多くのメリットがあります。一つずつの項目について、さらに深く解説していきましょう。
①プログラムの構造が整理できるから
1つ目の理由は「プログラムの構造を理解できる」ということです。プログラムは書き方によって、処理速度が大きく変わることがあります。熟練のプログラマーであれば、どんな書き方が最適なのかを一目で判断できます。一方で経験の浅いプログラマーは、フローチャートに書き出してプログラム全体の設計を見直せた方が、理想の構造に近づきやすくなるのです。構造の整理が行われることで、作業もスムーズに進むでしょう。
②プログラミングが早く出来るようになるから
2つ目の理由は「プログラミングが早く出来るようになるから」です。初心者プログラマーがフローチャート無しでプログラミングを行おうとすると、全体の構造が把握できていない事により、様々な設計トラブルに見舞われます。
想定外のトラブルが起こった際には、プログラミングの根幹から見直す必要も出てくるため、無駄な時間がかかってしまいます。そういった無駄な時間を極力減らすために、事前にフローチャートを書いて構造を把握しておくことが重要です。フローチャートを書くだけで、プログラミングは早く出来るようになります。
③プログラミングを間違えないようになるから
3つ目の理由は「プログラミングを間違えないようになるから」です。プログラミングというのは、設計ミスやバグとの戦いです。プログラミングを行う上で、エラーやバグはかなりの確率で発生してしまうものなのです。
そのバグをより少なくしてくれ、出来るだけバグが起こらないようにしてくれるのが、フローチャートなのです。複雑なプログラムも、事前にフローチャートに書き出しておくことで、どの部分が複雑な処理で、どんなところが問題なのか?を頭の中にイメージすることが可能になります。一度設計したプログラムの内容に、不備があるのであれば、フローチャートを書くことで、事前にそれが分かるようになるのです。
フローチャートの基本記号を解説!
フローチャートを書く際には、幾つかの基本記号があります。業界の共通認識とされているため、事前に学んでおくことがおすすめです。ここでご紹介しておきます。
開始と終了
1つ目は「開始と終了」です。開始と終了は「端子」と呼ばれる記号です。横長の楕円形の中に「開始」や「終了」と記述すると、その意味を表します。読んで字の通り、プログラムの開始や終了を表す記号として活用されます。全てのフローチャートは「開始」から始まって「終了」で終わるのです。
処理
2つ目は「処理」です。処理は「コンピューターに処理をさせる処理内容を記載する記号」です。横長の長方形を記述し、その中に処理する具体的な内容を書きます。
条件分岐
3つ目は「条件分岐」です。条件分岐とは「ある一定の条件でプログラムの流れを変える記号」で、プログラミングのフローチャートにおいては、かなり重要な記号になります。ひし形の記号を書き、中にどんな条件でプログラミングの流れを変えるのか?を記述します。
定義済み処理
4つ目は「定義済み処理」です。定義済み処理は、関数などのように他のフローチャートで定義されている事柄を、1つの処理として埋め込める記号です。定義済み処理を適切に使う事で、プログラムをスッキリさせることが出来ます。別名で「サブルーチン」とも呼ばれ、複雑になりがちなプログラムを分かりやすく記述できます。
記号の形は横長の長方形で、さらに2本の縦線を書き足した記号となっています。記号の真ん中に「定義済み処理名」を記述します。
ループ開始
5つ目は「ループ開始」です。こちらは「ある一定の条件の際に繰り返し処理をさせるため」の記号で、後述する「ループの終了」と組み合わせて使われます。扇形の記号になっていて、ループ名とループの条件を記述して活用されます。
ループの終了
6つ目は「ループの終了」です。これは前述のループ開始の記号と組み合わせで使われる記号です。一定条件で、ループ開始とループ終了の間の処理を繰り返し、条件が満たされなくなると、次の処理へプログラムが流れていきます。ループ開始を使った際には、必ずループ終了の記号がないとバグになってしまうので注意が必要です。扇形を下向きにした図形で表記され、真ん中にループ名が記述されます。
入出力
7つ目は「入出力」です。入出力は「外部のデータ参照を行ったり、外部へデータを書き込むとき、または外部ファイルの入出力を行う時」に使われる記号です。ひし形を横にした図形で表記され、真ん中に入出力する内容を記述します。
結合子
8つ目は「結合子」です。結合子は「同じフローチャート内の別の場所に移動する際」に使う記号です。プログラムが複雑化してくると、結合子をうまく活用して処理を分かりやすく改善するための記号になります。丸型の図形を書いて、その内側もしくは、外側に参照先名や移動先の数字名を書きます。
外部結合子
9つ目は「外部結合子」です。外部結合子は「今のフローチャートではない別のフローチャートを参照して処理する時」に使います。別のフローチャートに移動して、処理を済ませ戻ってくるイメージです。複雑なフローチャートも、外部結合子をうまく活用することで、シンプルなデザインに書き換えることが可能でしょう。図形の中に外部参照先名を記入して使われます。
フローチャートは型を基に覚えよう!
ここまで、フローチャートを作る理由や、どんな基本記号があるのかをご紹介してきました。ここからは、どうやってフローチャートの基本を学べばいいのか?というようなポイントをご紹介いたします。とはいえフローチャートには、いくつかの「決まった型」が存在するので、その基本的な型を理解して、作り始めるのが効率的です。先にどんな型があるのかを一覧にしておきます。
- 順次構造
- 分岐構造
- ループ構造
一つずつ詳しく解説していきましょう。
順次構造
最初に「順次構造」からです。順次構造は、開始から終了に向けて、ただ単純に1つの流れで進むプログラムになります。フローチャートの最も基礎的な構造で、上から下に向けて、処理内容を書き込みながら矢印で結んでいくだけで完成します。まずは順次構造を理解して次のステップに進みましょう。
分岐構造
次に「分岐構造」です。分岐構造は2通りの考え方があって、プログラミングで言う「switch・case文」と「if・else文」があります。いずれも条件分岐の際には、前述したひし形の「条件分岐記号」を活用します。
「switch・case文」では、ひし形の中に式や変数などを記述し、そのどの条件に合うのか?で進むルートが異なります。どれにも該当しなければ、dafaultの処理になる考え方です。
「if・else文」では、条件分岐記号が何度も記述される考え方です。全ての条件分岐記号に分岐条件を記載し、「YesかNO」で分岐を行っていく方法になります。こちらも、最終的にどの条件にも合致しなかった時の処理を記載しなければバグになるので注意が必要です。
ループ構造
最後に「ループ構造」です。ループ構造には、「条件分岐記号を使った表記」と「ループ記号を使った表記」があります。どちらも同じ処理が出来ますが、ループ記号を使ったチャートの方が、スッキリとした仕上がりになるでしょう。
ループ構造のやり方には「for文・while文」、「do while文」、「二重ループ」などがあります。「for文・while文」の場合には、条件分岐の後に「処理記号」が入る考え方で、「do while文」ぼ場合には、条件分岐の前に「処理記号」が入る方法です。
それらをさらに複雑に組み合わせて、二回のループを使った方法が「二重ループ」になります。複雑なプログラミングを組んでいくと、二重ループを使う機会もかなり多くなってくるでしょう。
フローチャートを実際に作るには?
では、実際にプログラミング初心者がフローチャートを作るには、どんな方法で作成すればいいのでしょうか?プログラミング初心者におすすめの方法を記載してみたので、ご紹介していきます。
人間に置き換えて考える
フローチャートの作り方、第1段階は「人間に置き換えて考えること」です。例えば商品を販売してその結果を売上管理帳に記録している場合は、以下の通りに人間が作業しています。
- 商品が販売される
- 売れた商品の個数と売上金額をノートに記述する
- 販売されるごとに記述を繰り返す
- 1日の終わりに今日の売上金額を集計する
- 集計結果を本部にメールする
このようにシンプルな流れで作業を行っていることになります。単純作業なので、コンピューターで管理したほうがいいのではないか?と考えるはずです。そのためプログラミングを駆使して、フローチャートの作成に移ります。
コンピューターにどう指示をするのかを考える
フローチャートの作り方、第2段階は「人間が行っていた作業をどうやってコンピューターに行わせるのかを考えること」です。前述の商品売上管理の流れでいくと、こんな感じになります。
- 商品が販売される
- 「売上ボタン」をクリックし、どんな商品が売れたのかをデータから読み込む
- 販売された商品をリストに1行追加して記録する
- 売り上げ一覧として最新のデータを保存し、コンピューターに記憶させる
- 商品が販売されるたびに同じ処理を繰り返す
- 営業終了時点で「1日分の売上データ抽出ボタン」を販売員が押す
- その日1日分の販売データのみ集計が集計される
- データの中から「商品名」「販売点数」「売上高」などがテキスト表示されるようにする
- 集計したデータをそのまま本部に自動送信する
このように人間が無意識的に行っている処理よりも、より具体的な記述でないと、コンピューターをうまく動かすことは出来ません。そのため「まずは人間が作業している事」を書きだし、その流れを「コンピューターにさせるには?」という考え方でフローチャートを書いていくことが最もおすすめの方法になります。こうすることで、どこが難解な処理なのかを事前に把握する事にも繋がるでしょう。
実際にフローチャートを書いてみる
第3段階としては「実際にフローチャートを書いてみること」をおすすめします。第2段階までで、処理内容はかなり具体化されたので、どんな指示をコンピューターに与えて動かすのか?が理解しやすくなっています。
自分で考えた処理の流れを、実際にフローチャートを使いながらアウトプットしてみると、どんな命令を出せば処理をスムーズに行えるのかを考える練習になるでしょう。実際にフローチャートを書くことが、最速でフローチャートをマスターする方法になります。
まとめ
というわけで、今回はプログラミングのフローチャートとは一体何?どうやってフローチャートを作ればいいのか?というようなことを、詳しくまとめてきました。実際にどんなシステムを構築したいのか?が決まれば、早速処理のイメージを紙に書き出し、フローチャートの作成に取り掛かってみましょう。フローチャートをうまく作ることが出来れば、実際のプログラミングもスムーズに行えるようになるはずです。