デジタルリマスター 2024年3月14日

フローチャートまつり(デジタルリマスター)

テレビ、パソコン、携帯電話に電子レンジ。ありとあらゆる電化製品にはコンピュータが入っている。自動車だってコンピュータ制御だ。コンピュータが入っている機械は必ずと言っていいほど、「プログラム」に従って動いている。

「プログラム」とは、コンピュータがどう動くか書いてある「指示書」みたいなものだ。人間が指示書やマニュアルに従って行動するのと同じように、コンピューターは「プログラム」に従って動いている。

今回は、そんな「プログラム」の世界をわかりやすく紹介してみたいと思います。もし興味を持ったらプログラムを作ってみるといいですよ。きっとすごく楽しいから。

2011年1月に掲載された記事を、AIにより画像を拡大して加筆修正のうえ再掲載しました。

あばよ涙、よろしく勇気、こんにちは松本です。

1976年千葉県鴨川市(内浦)生まれ。システムエンジニアなどやってましたが、2010年にライター兼アプリ作家として自由業化。iPhoneアプリはDIY GPS、速攻乗換案内、立体録音部、Here.info、雨かしら?などを開発しました。著書は「チェーン店B級グルメ メニュー別ガチンコ食べ比べ」「30日間マクドナルド生活」の2冊。買ってくだされ。(動画インタビュー)

前の記事:バーミヤンのアジフライセットが神がかっている件

> 個人サイト keiziweb DIY GPS 速攻乗換案内

基本は流れ図

プログラムと言っても、まず基本になるのは流れ図、格好良く言うとフローチャートだ。プログラム言語はこの世に何種類もあるけど、基本的にプログラムというのは流れ図を元に作られる。言ってみれば、プログラムの世界の共通語みたいなもんだ。

まずは、というか今回は主にこのフローチャートについて考えていきたい。

フローチャートは、役割が決まった図形を描いて、その中に何をするかを書き、それらを矢印でつなげることでプログラムの流れを表現する。

日常でも、「起きる→歯を磨く→朝ご飯を食べる→便意があったらトイレに行く→無ければ着替えて家を出る」なんて具合に行動の流れを決めるだろう。

それをちゃんと書いたのがフローチャートで、だいたい左とか下の画像みたいな図形で構成される。

sample01-topaz-low resolution-640w.jpg
まずはスタート。ここからすべてが始まる。
sample02-topaz-low resolution-640w.jpg
菱形の図形は判断。条件に従って処理が分岐する。
sample03-topaz-low resolution-640w.jpg
四角い枠にはなにをするか、そこで行う行動を書く。
sample04-topaz-low resolution-640w.jpg
両側に線が入った長方形は、なにか複雑な行動を一言で言いたいときに使う。定義済み処理とか言ったりする。別に書いてあるフローチャートを呼び出すとか、細かく書くのが面倒くさくなっちゃった時とかに使う。
sample05-topaz-low resolution-640w.jpg
スタートがあれば終わりがある。これが終わりの図形です。
いったん広告です

カップ麺を作る流れをフローチャートにしてみました

では、これら5つの図形を組み合わせてカップ麺を作るまでをフローチャートにしてみましょう。

それが下の図。僕が高校生くらいの頃はテンプレートを使って手書きしてたんですが、今はパソコンで綺麗に作れるからいいですな。

cupmen.jpg
本当に細かく書けばもっとゴチャゴチャと書けるけど、大ざっぱに書くとこんな具合です。
いったん広告です

熱湯があるか、なければ沸かすところから

まずは熱湯があるかどうかを判断して、無ければヤカンで沸かす。沸騰を待つ部分で定義済み処理の図形を使ってみた。

普通はお湯が沸くまで待つ間にカップ麺の包装を取ったり蓋を半開きにしたり準備をする。が、コンピュータは特別な事をしなければひとつずつしか仕事を片付けられないので、お湯が沸くまでなにも出来ない(Windowsやマックが同時に色々出来るのは特別な事を裏でやってるからですが説明が難しいので割愛)。

また、沸騰を待つ部分で1秒待ってからお湯の様子を見ているのは、ひっきりなしにお湯の確認をすると疲れちゃうからで、コンピュータで言えば無駄に確認をすると処理が遅くなったりバッテリーを無駄に使ったりする。適当に休みながら待った方が効率がいいのです。

お湯が沸いたらいよいよカップ麺を作る段階に入る。

IMG_0202-topaz-standard v2-640w.jpeg
ヤカンに水を入れる。
IMG_0206.jpg
沸騰まで待つ。沸騰したらガスの火を消す。なにかをして後始末が必要な場合はちゃんと後始末しないとバグの原因になる。
IMG_0207-topaz-low resolution-640w.jpeg
沸いた!ワイタンギ!
いったん広告です

お湯を入れてカップ麺を作る

次にカップ麺にお湯を入れる。包装を取り、蓋を半分剥がす。ここで「半分剥がす」ではなく「蓋を剥がす」と書いてしまうと、プログラムはその通りに蓋を全部取ってしまう。予定と違った結果になる、つまりバグである。

IMG_0204-topaz-standard v2-640w.jpeg
包装を取り去ります。

次の、「内側の線までお湯を入れる」も単に「お湯を入れる」と書いてしまうと、ヤカンのお湯を全部カップに注いでしまって大変な事になる。「カップオーバーフロー」という大変に危険なバグだ。だいたい世のセキュリティホールと呼ばれる問題は、このカップオーバーフローに似た原因で起こっている。

IMG_0210-topaz-standard v2-640w.jpeg
お湯を内側の線まで注ぐ。

お湯を入れたら、1秒待つ処理を180回行う。つまり、180秒待つ、いうなれば3分待つという事だ。

IMG_0213.jpg
3分待ったら出来上がり。

3分待ち終わったら完成、これで処理は終了となるので人間である僕がカップ麺を食べる。

普段何気なくやってることでも、人間はきちんと判断と処理をしているから上手い具合にカップ麺が出来るわけだ。それをフローチャートにしてみるとなかなか面倒な事をしている事に気付く。

IMG_0217-topaz-standard v2-640w.jpeg
寒い夜はカップ麺が美味しいですね。

プログラム、フローチャートを作るというのはそういう当たり前の事を改めて記述する楽しさや意外な発見が面白い。

フローチャートについてなんとなく判っていただけただろうか。次のページでは、猫の行動をフローチャートにしてみたいと思います。

IMG_5122-topaz-standard v2-640w.jpeg
次のページではなつめさんをフローチャートにします。

⏩ 次ページに続きます

▽デイリーポータルZトップへ つぎへ>

banner.jpg

 

デイリーポータルZのTwitterをフォローすると、あなたのタイムラインに「役には立たないけどなんかいい情報」がとどきます!

→→→  ←←←

 

デイリーポータルZは、Amazonアソシエイト・プログラムに参加しています。

デイリーポータルZを

 

バックナンバー

バックナンバー

▲デイリーポータルZトップへ バックナンバーいちらんへ