前頁  メニュー  次頁


def文  ☆☆☆

  DEF文を利用すると,複雑な数式で表される関数がf(x),g(x,y)などと書けるようになる。
例  
10 DEF f(x)=x^2+3*x+2
20 FOR x=-4 TO 4
30     PRINT x,f(x)
40 NEXT x
50 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文で定義された関数を定義し直すことはできない。