質問箱 No.44: プログラムを短くしたい。

      ◇ 回答箱 No.44-1    元山 よし子 1997年01月 180号 P.19
          ◇ 回答箱 No.44-2    早瀬 壮一   1997年01月 180号 P.20
              ◇ 回答箱 No.44-3    入川 精二   1997年01月 180号 P.21
                  ◇ 回答箱 No.44-4    高橋 周助   1997年02月 181号 P.28
                      ◇ 質問箱 目次へ
No.44    プログラムを短くしたい。 質問者
  罍 昭夫
1996年12月
179号 P.38
 下記のプログラムのV"の条件が変わるごとに$区分1〜5にGOTOして、さらにGOTOで$区分表示に飛びます。

 プログラムを短くしたいのですが、良い方法を教えて下さい。
 1<TEST>
 2$質問: LET Z1=1;
 3       DISP [01,21],SP80;CLEAR V24;
 4       DISP [01,22],SP80;
 5       DISP [01,22],"NOで訂正[1-12] [RETURN]=次の修正 [ESC]=前の質問";
 6
 7       INPUT [65,22],V24,COLOR(Y),U(XX/AS);
 8       IF ERR(0)=55 THEN RETURN;
 9       IF V24="" THEN GOTO $次の修正;
 10      IF 1<=VAL(V24) AND VAL(V24)<=12 THEN GOTO $%V24;
 11      IF VAL(V24)<1 0R VAL(V24)>12 THEN GOTO $もう一度;
 12$もう一度:BELL;GOTO $質問;DISP [01,22],SP80;
 13
 14
 15$3: LET V2=[4,@ク];
 16    INPUT [53,03],V2,U(%(StrING$(78,01))/AS/RY/P//CY);
 17    IF V2="" THEN GOTO $3;
 18    IF V2="1" THEN GOTO $区分1;
 19    IF V2="2" THEN GOTI $区分2;
 20    IF V2="3" THEN GOTI $区分3;
 21    IF V2="4" THEN GOTI $区分4;
 22    IF V2="5" THEN GOTI $区分5;
 23    IF VAL(V2)<1 OR VAL(V2)>5 THEN GOTO $3;
 24
 25$区分1:LET V2="1";LET V3="新規";GOTO $区分表示;
 26$区分2:LET V2="2";LET V3="継続";GOTO $区分表示;
 27$区分3:LET V2="3";LET V3="脱退";GOTO $区分表示;
 28$区分4:LET V2="4";LET V3="途中";GOTO $区分表示;
 29$区分5:LET V2="5";LET V3="年頭";GOTO $区分表示;
 30
 31$区分表示:DISP [55,03],COLOR(Y),V3,U(%(StrING$(60,04)));DISP COLOR(W);
 32          LET [4,@ク]=V2;LET [4,@区分]=V3;
 33          IF Z1=1 THEN GOTO $質問 ELSE GOTO $4;

このページのTOPへ戻る