``

前頁 次頁

    内部絵定義  ☆

    　内部絵定義(PICTURE〜END PICTURE構文)は，内部手続きの一つで，機能的には副プログラムとほとんど同じもの。
      内部絵定義は，プログラム単位の内部に書かれる絵定義で，PICTURE行で始まり，END PICTURE行で終わる。

    例3 内部絵定義
    100 OPTION ANGLE DEGREES
    110 SET WINDOW -4,4,-4,4
    120 DRAW polygon(6)
    130 DRAW polygon(7) WITH ROTATE(-90/7)*SCALE(1.5)*SHIFT(2,2)
    140 PICTURE polygon(n)
    150    FOR i=0 TO n
    160       PLOT LINES:COS(i*360/n),SIN(i*360/n);
    170    NEXT i
    180 END PICTURE
    190 END
    解説
      100行から190行まで，すなわちプログラム全体が主プログラム。
      140行から180行までの部分が内部絵定義。

    内部絵定義の特徴
      内部絵定義の内部で利用している引数以外の変数は，プログラム単位中の同名の変数と共有される。
     たとえば，次のプログラムでは，120行から140行で用いられる変数iと絵定義polygonでのiとは区別されない。
     そのため，130行でpolygonを呼び出したときにiの値が書き換えられてしまい，for〜nextループが正しく動作しない。
    例4
    100 OPTION ANGLE DEGREES
    110 SET WINDOW -4,4,-4,4
    120 FOR i=-4 to 4
    130    DRAW polygon(7) WITH SHIFT(i,i)
    140 NEXT i
    150 PICTURE polygon(n)
    170     FOR i=0 TO n
    180        PLOT LINES:COS(i*360/n),SIN(i*360/n);
    190     NEXT i
    200 END PICTURE
    210 END