【第6章】誤操作を防ぐ工夫
図6-1.台形
図6-1.台形

 さて、前章で学んだストリングやPRINT命令の様々な使い方を活用して、台形の面積を求めるプログラムを作ってみましょう。ここではオペレータの誤操作をできるだけ防ぐ工夫についてもお話します。
 台形の面積は、上底をa、下底をb、高さをhとしたとき、
                    (a+b)×h÷2
で求められました。プログラムは次のようになりますね。

                INPUT A
                INPUT B
                INPUT H
                S=(A+B)*H/2
                PRINT S
                END

図6_2.実行結果
図6-2.実行結果
 

[できる限り誤操作対策をしよう]

 このプログラムを実行すると図6-2のようになります。プログラム中にINPUT命令が3回でてきますから、実行すると図のような入力ボックスが3回現れます。INPUT命令が多いと、それだけ現れる入力ボックスも多くなり、オペレータがそのプログラムを作った当人なら別として、そうではないときは「今ここで何のデータを入力するのか」がわかりにくくなります。また、実行画面も何が何だかわからなくなってきます。それは誤操作を招きやすくなるということでもあります。筆者の経験で言うと、コンピュータから個人情報などが漏洩するトラブル、システム全体をダウンさせたなどの原因の半分以上は誤操作によるものです。そして「操作がわかりにくい」「画面が見づらい」は誤操作を招く最大要因です。
 このプログラムを次のように改造して実行しましょう。

                  PRINT "台形の面積を求める"
                  INPUT "上底=";A
                  INPUT "下底=";B
                  INPUT "高さ=";H
                  S=(A+B)*H/2
                  PRINT
                  PRINT "面積=";S
                  END

 1行目ではこのプログラムが何のプログラムかを画面に表示しています。これを表示することにより、今ここで実行してよいプログラムかどうかオペレータに確認させるようにします。ここの実習ではそんな危険なプログラムは扱いませんが、実際のシステムでは、今ここで実行してはいけないプログラムを誤実行(誤操作の最も酷いもの)してシステムダウンを引き起こした、などというケースもあるからです。LINEなどのSNSでは送信相手の名前が画面上に表示されるようになっていますが、あれも誤操作・誤実行防止のためです。「今から帰る、愛してるよ、chu」と奥様に送るのを間違えて学生のグループに送信してしまったら?・・・明日からどのツラ下げて出勤するんだ!ということになります。
 プログラムの始めに「何のプログラムか」を表示させるようにする、これも習慣づけておきましょう。
 2行目のINPUT命令が実行されると、キーボードからの入力待ちになりますが、このとき入力ボックスと実行画面の両方に INPUT の後ろのストリングがそのまま表示されていることを確認してください(図6-3)。

図6-3.上底を入れるところ
図6-3.上底を入れるところ

 上底の値(この例は10)と入れてOKをクリックするとプログラムは先に進み、次は3行目のINPUT命令で下底の入力待ちになります(図6-4)。
図6-3.上底を入れるところ
図6-4.下底を入れるところ

 下底の値(この例は15)と入れてOKをクリックするとプログラムはさらに先に進み、次は4行目のINPUT命令で高さの入力待ちになります(図6-5)。

図6-5.高さを入れるところ
図6-5.高さを入れるところ

 高さの値(この例は4)を入れてOKをクリックするとプログラムは5行目に進み、ここまでで入れた上底、下底、高さをもとに台形の面積を計算します。
 そして最後に7行目で計算結果をディスプレイに表示します(図6-6)
図6-6.計算結果が表示された
図6-6.計算結果が表示された

 このようにキーボードからの入力待ちのところで、何のデータを入れるのかを表示することで、操作がわかりやすくなり、誤操作防止になります

[INPUT命令の便利な使い方]

Tiny BASICのINPUT命令は、次のような書き方ができます。

INPUT ストリング , 変数名
INPUT ストリング ; 変数名

 ストリングと変数名の区切りには , と ; が使えます。 , の場合はストリングが表示されるだけですが(図6-7)、 ; にするとストリングの後ろに?マークが付加されます(図6-8)。

図6_7.INPUT ストリング , 変数の場合
図6-7.INPUT ストリング , 変数の場合

図6_8.INPUT ストリング ; 変数の場合
図6-8.INPUT ストリング ; 変数の場合


[入力→処理→出力]

 コンピュータに何らかのデータを入れることを入力といい、コンピュータで処理した結果をディスプレイに表示したりプリンタで印字することを出力といいます。今後は当カテゴリーでもこの言い方をすることにします。

図6_9.コンピュータのプログラムの基本は入力→処理→出力
図6-9.コンピュータのプログラムの基本は入力→処理→出力


 そしてコンピュータのプログラムは、銀行のシステムのような巨大なものから、ゲームのようなホビープログラム、ここでのサンプルに出てくる小規模なものまですべて、入力→処理→出力という流れが基本になります。この章のサンプルプログラムなら、INPUT命令で上底、下底、高さを読み込む所が入力、台形の面積を計算する所が処理、計算した結果をPRINT命令で表示する所が出力です。

【Tiny BASICの文法(3)】プログラム中の空行

 プログラム中に空行(なにも書かれていない行)を入れることができます。空行は何行入れてもかまいません。たとえば
                  PRINT "台形の面積を求める"

                  INPUT "上底=";A
                  INPUT "下底=";B
                  INPUT "高さ=";H

                  S=(A+B)*H/2

                  PRINT
                  PRINT "面積=";S

                  END

のようにすると、一連の処理のかたまりがわかりやすくなります。プログラム中に空行を置いても、実行画面上で空行ができるわけではありません。実行画面上で行を空けたいときは
        PRINT
を使う必要があります。

【昔はよかったなぁ】

 この章でやったプログラムを昔のBASICでやると図6-10のようになります。

図6-10.台形の面積を求めるプログラムを昔のBASICで書くと
図6-10.台形の面積を求めるプログラムを昔のBASICで書くと

 昔のBASICではINPUT命令での入力待ちでも入力窓が出ません。プログラム作成・編集・実行すべて同一画面です。どちらがいいかは好みによります。
 昔のBASICではプログラム中に空行は入れられません。

【この章のまとめ】

 操作がわかりにくい、画面が見づらい、は誤操作を招く最大要因である。

 プログラム中には、誤操作・誤実行防止の対策を施しておくことがのぞましい。

 INPUT命令は INPUT ストリング,(または ; )変数、という使い方ができる

 コンピュータに何かのデータを入れることを入力、処理した結果を表示(印字)することを出力という

 コンピュータによるデータ処理の基本は入力→処理→出力という流れである

【演習3】直方体の底面積と体積を求めるプログラムを作りなさい。底面のたてとよこ、立体の高さはキーボードから入力するものとします。ただし画面の見やすさを工夫し、誤操作・誤実行対策を施すこと

コメント一覧
コメント投稿

名前

URL

メッセージ

- CafeLog -