「ユーザー関数の定義」の編集履歴(バックアップ)一覧はこちら
「ユーザー関数の定義」(2009/12/14 (月) 22:52:21) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
> ユーザー関数の定義は、キーワード ''def[ine]'' 又は ''def[unc]'' を用いて行います。
> C言語と同様、[[トップレベル]]でのみ関数の定義が可能です。(定義位置は呼出位置の前後どちらに置いても OK です。)
文法:
def NAME([ARG1,ARG2,ARG3,...]){
....
}
** 引数も戻り値も無い関数の定義
def dot(){ # 呼び出される度に . 文字を1文字表示します。
putc('.')
}
dot() # 1回目の呼び出しです。
dot() # 2回目の呼び出しです。
dot() # 3回目の呼び出しです。
** 複数の戻り値を持つ関数の定義
def cal4(x,y){ # 四則演算をする関数 cal4 を定義します。
return(x+y,x-y,x*y,x/y) # 和、差、積、商を計算して戻り値とします。
}
add,sub,mul,div=cal4(2,3) # 引数 2 と 3 で関数 cal4 を呼出します。(4つの戻り値が得られます。)
print("%f,%f,%f,%f\n",add,sub,mul,div) # 結果を表示します。( %f などの書式指定はC言語のものと同じです。)
** 引き数と戻り値
- 引き数と戻り値は、常に"値渡し"で渡され(戻され)ます。
- 実引数と仮引数の数が一致しない場合、余分なデータは無視され、不足するデータは未定義となります。
** 関数のスコープ
- ユーザー定義関数は、常に"グローバルスコープ"を持ちます。(システム定義関数も同じ。)
&br()
&br()
&br()
> ユーザー関数の定義は、キーワード ''def[ine]'' 又は ''def[unc]'' を用いて行います。
> C言語と同様、[[トップレベル]]でのみ関数の定義が可能です。(定義位置は呼出位置の前後どちらに置いても OK です。)
関数定義の文法:
def NAME([ARG1,ARG2,ARG3,...]){
....
}
関数呼出の文法:
NAME([ARG1,ARG2,ARG3,...])
** 引数も戻り値も無い関数の定義例
def dot(){ # 呼び出される度に . 文字を1文字表示します。
putc('.')
}
dot() # 1回目の呼び出しです。
dot() # 2回目の呼び出しです。
dot() # 3回目の呼び出しです。
** 複数の戻り値を持つ関数の定義例
def cal4(x,y){ # 四則演算をする関数 cal4 を定義します。
return(x+y,x-y,x*y,x/y) # 和、差、積、商を計算して4つの戻り値とします。
}
add,sub,mul,div=cal4(2,3) # 引数 2 と 3 で関数 cal4 を呼出します。
print("%f,%f,%f,%f\n",add,sub,mul,div) # 結果を表示します。( %f などの書式指定はC言語のものと同じです。)
** 引き数と戻り値
- 引き数と戻り値は、常に"値渡し"で渡され(戻され)ます。
- 実引数(Argument)と仮引数(Parameter)の数が一致しない場合、余分なデータは無視され、不足するデータは未定義となります。
- 戻り値は、関数 return() で戻します。(複数個の戻り値を指定できます。)
** 関数のスコープ
- ユーザー定義関数は、常に"グローバルスコープ"を持ちます。(システム定義関数と同じ。)
&br()
&br()
&br()
表示オプション
横に並べて表示:
変化行の前後のみ表示: