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

このページのTOPへ戻る