« プログラミング講座 (200) 3次ベジエ曲線 | トップページ | プログラミング講座 (202) 1次元セルオートマトン »

2020/09/14

プログラミング講座 (201) パラメーター

数学のパラメーター

最近の連載で、直線の方程式をパラメーター k で表したり、スーパー楕円をパラメーター θ で表したりしました。このパラメーターは数学用語で媒介変数(ばいかいへんすう)とも言います。確率統計の母数(ぼすう)も英語では parameter です。

y = f(x) において、x を独立変数 (independent variable)、y を従属変数 (dependent variable) と言います。y を x の関数で表せればいいのですが、例えば円の方程式 x2 + y2 = r2 のように y = f(x) で表しずらいとき、媒介変数を使って x = g(θ), y = h(θ) のように従属変数を独立変数の関数で表せると計算がしやすくなったりします。

プログラミングのパラメーター

一方で、プログラミングでは仮引数(かりひきすう)が英語で (formal) parameter です。Small Basic では例えばヘルプ画面に出てくる GraphicsWindow.DrawRectangle(x, y, width, height) の x、y、width、height は仮引数です。これに対して実際に与える値を実引数(じつひきすう)と言い、英語では actual parameter と言います。例えば GraphicsWindow.DrawRectangle(150, 100, 400, 300) の 150、100、400、300 は実引数です。

引数を使うことで、その部分は外から変えられるのでより一般化されることになります。例えば3次関数の y = x3 を計算する関数より y = ax3 + bx2 + cx + d を計算するほうがより一般的な解が得られます。

プログラミングの引数にはもう一つメリットがあります。仮引数がローカル変数として扱われる点です。コピーしたものを変数として使うので、中身を上書きしても実引数は壊れません。

Small Basic では関数の定義ができず、全ての変数がグローバル変数なので、サブルーチンに変数を渡す場合、壊さないようにしたり、事前にコピーするようにするなどの工夫が必要です。また、何を外から渡しているかは、コメントなどで明示したほうが読みやすくなります。

GitHub Gist に Small Basic のサブルーチン群をスニペット (snippet) として公開しています。ここでは疑似的な引数については、

' param x, y - Cartesian coordinate

のように記述しています。この param はもちろん parameter の略ですが、伝統的なドキュメント形式として、JavaDoc、JSDoc 3、Doxigen などの(ソースコードからドキュメントを出力する)ツールで @param 仮引数名 と書いているものを真似ました。 ちなみに C# や VB でも <param id="仮引数名"></param> という記法が使われています。

なお、Gist に上げているサブルーチン群は今のところ Small Basic デスクトップ用なので、Small Basic オンラインでは動かないものもあります。

関連項目

|

« プログラミング講座 (200) 3次ベジエ曲線 | トップページ | プログラミング講座 (202) 1次元セルオートマトン »

Small Basic」カテゴリの記事

数学」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« プログラミング講座 (200) 3次ベジエ曲線 | トップページ | プログラミング講座 (202) 1次元セルオートマトン »