No.79-2 |
当番カレンダーを作成したい |
回答者 高橋 周助 |
1998年07月 198号 P.20 |
◆ No.79(1998年6月号)の回答-2
-
本誌『THE PIPS』で1995年に《読めるオートプログラム》特集が組まれました。同年5月号に、私も見解を発表しました。これは、総論的になってしまったので後日、具体例を取り上げたいと書きました。その後、回答欄に投稿したプログラムは、その具体例のつもりで書いています。その辺の意図を読み取っていただけるでしょうか?以下に、私が実行している事項のうち、数点を記してみます。
-
根本的には『構造化プログラミング』の主張に忠実であるべきと思っています。
今回のPRGの大枠は、『順次構造』しかありません。 ブロック別に分けて、A → B → C → D → Zという流れです。 Bブロック内も、 BA → BB → BC → BD → BE と単純です。Dブロック内に、FOR 〜 NEXT の『繰り返し構造』があります。
-
ブロックの区分けで一番重要なことは、『独立性』だと思います。
例えば、Aブロックの西暦年指定を、INPUT文にすればもっと使いやすくなります。その時、Aブロックをどのように変更しても、他のブロックへの影響を皆無にしておくべきです。そのためには、『機能』に着目してブロック分けするよう心掛けます。
-
ブロック内の構造を積極的に表現する手段として、『字下げ(Indent)』を利用します。PIPSでは、FOR 〜 NEXTで囲まれた範囲を、一律に何文字か下げます。私は2文字ときめています。今回のPRGでは1行に書いてしまったので該当しませんでした。
私は、やや拡大解釈して、『前行に従属している行は字下げする』と決めています。逆にいえば、書き出し位置が同じ行は、構造上の同格を主張しているのです。
-
ブロック間の構造上の『独立性』が得られたとしても、ブロック間を橋渡しするパラメータとして変数があります。私なりのローカルルールを設けてありますので、ご参考までに3点だけ記します。
-
添字が2桁の変数(X、Z、V各10〜40)は、ブロックを越えて使う。充分注意のこと。
-
添字が1桁の変数(X、Z、V各1〜9)は、その場限りの使い捨てとする。自由に使ってかまわない。
ただし、X変数は、FOR 〜 NEXTのコントール変数として次のとおり定める。 X1: 頁 コントール X2: 行 " X3: 列 " X4: 文字 " まれに、印刷改ページコントール変数が必要になって、X1〜X4あたりが乱れることもある。
-
異なる種類の変数で、密接な関係にある変数同士は、同じ添字を使う。
(例) V10 と Z10 Z10=VAL(V10)
|
|
|
|