``

前頁 メニュー 次頁

    内部手続きと外部手続き  ☆

      内部関数定義，内部副プログラム，内部絵定義，handler区を内部手続き定義という。
      また，外部関数定義，外部副プログラム，外部絵定義を外部手続き定義という。
      さらに，主プログラムと外部手続き定義をプログラム単位という。

      内部手続き定義は，プログラム単位の内部に書かれる手続き定義で，変数やoption base, option angleなどの宣言をプログラム単位と共有する。
      プログラム単位は，独立した存在で，引数以外の変数や宣言を共有することはない。

    例１ 内部手続き
    100  FUNCTION fact(n)
    110    LET p=1
    120    FOR i=1 TO n
    130        LET p=i*p
    140    NEXT i
    150    LET fact=p
    160  END FUNCTION
    170  FOR i=1 TO 10
    180     PRINT fact(i)
    190  NEXT i
    200  END
      100行から160行までの関数定義はnの階乗を計算するものである。
      しかし，120行から140行のforループが実行されると，170行から180行のforループが用いているiの値も変わってしまうため，意図したようには動作しない。

    例2  外部手続き
    160 DECLARE EXTERNAL FUNCTION fact
    170 FOR i=1 TO 10
    180    PRINT fact(i)
    190 NEXT i
    200 END
    300 EXTERNAL FUNCTION fact(n)
    310 LET p=1
    320 FOR i=1 TO n
    330    LET p=i*p
    340 NEXT i
    350 LET fact=p
    360 END FUNCTION
      170行から190行までのforループで用いられる変数iと300行以降の関数定義部で用いられる変数iは別物であるので，干渉せずに実行される。