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

      ◆ 質問箱 No.60 質問者:  牧野 董   1997年08月 187号 P.20
          ◆ 質問箱 目次へ
No.60-2    簡単な図形を描きたい 回答者
  北村 政雄
1997年09月
188号 P.25
   ◆ No.60(1997年 08月号)の回答-02
   質問の図形は、端から中心まで15個の#を菱形に描く図形ですが、下のプログラムは多少描く時間はかかりますが、2個から39個まで自由な大きさの菱形を描くことができます。プログラムの中心はLET文とCPCです。V1に" #"を格納し、X1からX6までのX変数で、描く起点や行、列の位置を指定します。

変数      V1: " #"を格納する。
          X1: 起点から中心までの" #"の個数。
          X2: 起点の行番号。
          X3: " #"を書きこむ列番号。
          X4: Copy元の列番号。
          X5: 起点行番号の1つ上の行番号。
          X6: 起点行番号の1つ下の行番号。
<プログラム>
   1 <ZU>
   2   ACCEPT"中心まで何個の#を描きますか? ",X1;
   3   IF X1=99 THEN STOP;IF X1=1 THEN GOTO $MSG;
   4   IF X1>39 THEN GOTO $MSG;
   5   G;ZUKEI/1; LET V1=" #";LET X2=X1+3;LET X4=1;LET [X2,1]=V1;
   6  FOR X3=2 TO X1;
   7   CPC/C;%X4;%X3;%X4;%X3;ESC;LET X5=X2-X4;LET X6=X2+X4;
   8   LET [X5,X3]=V1;LET [X6,X3]=V1;LET X4=X4+1;
   9  NEXT; NF;J;A;STOP
  10 $MSG: BELL;MESSAGE "範囲オーバー#入力した個数は実行できません!";
  11  STOP
戻る