``

前頁 メニュー 次頁

    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文で定義された関数を定義し直すことはできない。`