def文 ☆☆☆

DEF文を利用すると,複雑な数式で表される関数がf(x),g(x,y)などと書けるようになる。

10 DEF f(x,y)=x^2+3*y^2
20 FOR x=-4 TO 4
30    FOR y=-4 TO 4
40        PRINT x,y,f(x,y)
50    NEXT y
60 NEXT x
70 END


○ 仮引数
DEF文で関数名に続く括弧のなかに書く変数のことを仮引数という。DEF文の仮引数と同名の変数がプログラム中にあっても,それらは数値の記憶場所としては別物となる。

10 DEF f(x)=x^3
20 LET x=4
30 PRINT f(2)
40 PRINT x
50 END
を実行すると,40行で4が出力される。
(10行のxと,20行,40行に現われるxとは別物)

○ 変数の共有
DEF文では仮引数以外の変数はDEF行を含むプログラム単位に共通。

10 DEF f(x)=a*x^2+b*x*c
20 INPUT a,b,c
30 PRINT f(1),f(2)
40 END
30行でf(1),f(2)を計算するとき,20行で入力したa,b,cの値が用いられる。

○ 引数を持たない関数の定義
引数を持たない関数を定義することもできる。

10 DEF spot=INT(6*RND+1)
20 FOR i=1 TO 100
30 PRINT spot
40 NEXT i
50 END
空の引数部を持つ関数を定義することはできない。たとえば,10行を
10 DEF spot()=INT(6*RND+1)
のように変えることはできない。

<Note> 十進モードのとき,Def文の実行結果は16桁を超える精度を持つ。(let文のように15桁に丸めるようなことをしない。)


<Note> N88-BASICなどのインタプリタ型のBASICと異なり,プログラムの実行中にDEF文で定義された関数を定義し直すことはできない。