前頁 メニュー 次頁
内部手続きと外部手続き ☆
内部関数定義,内部副プログラム,内部絵定義,handler区を内部手続き定義という。
また,外部関数定義,外部副プログラム,外部絵定義を外部手続き定義という。
さらに,主プログラムと外部手続き定義をプログラム単位という。
内部手続き定義は,プログラム単位の内部に書かれる手続き定義で,変数やoption base, option angleなどの宣言をプログラム単位と共有する。
プログラム単位は,独立した存在で,引数以外の変数や宣言を共有することはない。
例1 内部手続き
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は別物であるので,干渉せずに実行される。