見出し画像

フローチャート ってあったよね

昔はプログラミングの勉強といえば、フローチャートの描き方を教わっていたような覚えがあります。フローチャートというのは、プログラムすべき手順を図に整理したもので、開始記号から終了記号までの間に処理を描きながら矢印で結んでいくものです。

フローチャート

それぞれの記号にはいろいろな意味があって、もう殆ど忘れてしまったのですが、専用の定規とかもありましたね。あれ、まだ現役だ。

ウチダ テンプレート フローチャート・ロジック定規 No.1 1-843-1711

もう死語なのかと思っていたのですが、プログラムを書くというよりも業務フローを書くための手段として生き残っているようで、パワポのテンプレートなんかがいろいろあるようです。考えてみればパワポの「図」ではまだ使われていますものね。もっとも、いくつかの記号はもう意味不明ですけど。

プログラミングにフローチャートを使う時に力不足なのは、いわゆる「制御構造」を記述できないことで、処理の分岐が IF に相当するものしか表現できないことです。もちろん DO や FOR も IF で表現して描くことも出来るのですが、繰り返しの範囲が見えにくいことが問題です。その昔、構造化プログラミングが話題になった時代に、フローチャートが槍玉に挙げられ、構造を表現するために、これからは NSチャート(Nassi–Shneiderman diagram)だと言われたこともあったのですが、少しばかり描きにくいこともあり、結局、普及しませんでしたね。

Nassi–Shneiderman diagram

比較的シンプルな処理を図で描くにはフローチャートは悪くないです。今流で言えば Scratch のような使い方がわかりやすいと思います。

Scratch

ただし、プログラムが複雑化し、プログラムやデータが構造化していくに従い、それらをうまく表現できなくなりました。Scratch でもイベントがきっかけとなる書き方が基本です。例外的な動作を上手に描くのも難しいですし、並行処理となるともうお手上げです。今ではフローチャートよりも状態遷移図のほうがよく使います。

状態遷移図

いずれにせよ、プログラムのコードは文字で表現しているので、それらの構造や関係を示すには何らかの図がわかりやすいのは間違いありません。そうそう CharGPT にもフローチャートを描かせようと試みたのですが、「申し訳ありませんが、私はフローチャートの描画機能を持っていません。」と断られてしまいました。

#フローチャート #NSチャート #状態遷移図 #WEBプログラミング #テンプレート

この記事が気に入ったらサポートをしてみませんか?