質問箱 No.60: 簡単な図形を描きたい

      ◆ 質問箱 No.60 質問者:  牧野 董  1997年08月 187号 P.20
          ◆ 質問箱 目次へ
No.60-1    簡単な図形を描きたい 回答者
  藤原 良允
1997年09月
188号 P.24
   ◆ No.60(1997年 08月号)の回答-01
   質問者がサンプルとして、「#」の記号で菱型の図形を描き、問題を出していますので、同じ「#」の記号を使用して回答を考えました。以下のオートです。

 1<PIC>
 2   O;PICTURE;2*29;HOME;IR;S;4;29; LETV1="#";
 3   LETX3=1;;
 4   FOR X1=H TO 18;
 5    FOR X2=1 TO X3; 
 6    LET[X1,X2]=V1;
 7    NEXT;
 8    LETX3=X3+2;IF X3=31 THEN GOTO 次1;  
 9   NEXT;
10$次1: LETX3=27;
11   FOR X1=19 TO T;
12    FORX2=1 TO X3;
13    LET[X1,X2]=V1;
14    NEXT;
15    LETX3=X3-2;IF X3<1 THEN GOTO 次2;
16   NEXT;
17$次2: NF;J;T;ATR;1;F;P;C;HOME;W;2;1;SAMPLE;HOME;
18   STOP;
  • [考え方と手順の説明]
    1. 「#」の記号は、最小1個、最大29個で、増加・減少は2個刻みですから、先ず、29行・29列(1列は2桁)の表を作成する。
    2. この表のH行から18行までは、「#」の記号を、1個、3個、5個と順次漸増して29個まで書き込む。「FOR〜NEXTを使う」。
    3. 19行からT行までは、27個、25個、23個と順次漸減して1個まで書きこむ。「FOR〜NEXTを使う」。
    4. 「NF;J」で、この29列を1列にジョイントする。
    5. 「ATR」で、この表の文字列を、中央[C]に位置せしめる。
    6. 項目行に「SAMPLE」と書き込んで完成です。
 ■ 試しに1個から9個までのプログラムに改変し実行したのを上に図1として掲げて置きます。

戻る