JPADetでは、「関数」を使用することも出来ます。
前節まで解説してきたアルゴリズムは、全て中心となる一つの関数内(main関数)だけのアルゴリズムを想定していますが、ユーザーが自由に関数を(関数名も自由に)作成できます。
ちょっとここで中学校で習った「関数を思い出してください。
」例えば、「f(x) = 2x + 1」の場合、「f(x)」という表現が関数であり、その意味は変数xに値を入れて「2x+1」を計算して「f(x)」の結果を出すというものですよね。
変数xに値を入れる作業がいわゆる「入力」。
「2x+1」を計算する作業がいわゆる「処理」。
そして、「f(x)」の結果を出す作業がいわゆる「出力」にあたります。
変数xに3が入力されれば、2*3+1が処理(計算)されて、7が出力されますね。
プログラミング言語やJPADetで使用できる関数も、ほぼ同様の考え方です。
関数に値を「入力」することを「引数を与える」といい、その値を「引数」といいます。
(先ほどの例だと、3の引数を与えたことになります)
関数に引数を与えて使用することを「関数呼び出し」といい、その内容を「関数定義」といいます。
(先ほどの例だと、関数f(x)が呼び出され、2x+1の関数定義により計算されたことになります)
そして、関数が処理結果を「出力」することを「値を返す」といい、その値を「戻り値」または「返り値」といいます。
(先ほどの例だと、関数処理により7の戻り値が返されたことになります)
これを利用して、以下のようなアルゴリズムを作成しました。
ある数値の2乗を計算するための関数(「jijyou関数」と名付けた)を作成し、キーボードから入力された値を引数として受け取り、関数内で2乗を計算した後に、その結果を返り値としてmain関数に戻す。
作成するシートは以下のようになります。
main関数の他に、jijyou関数のシートを作成しなければいけません。
作成方法なのですが、まず「表示」メニューの【関数一覧(F)】を選択して、関数一覧ダイアログを表示させます。
次にそこから【追加(A)】をクリックすると、main関数と同じようなシートが表示されます。
そしてそこにこれまでと同じようにシンボルを配置していくのです。
追加した関数のシート上では、使用する変数が「局所」、「引数」、「返り値」のいずれかであるのかをラジオボタンで選択する必要があります。
(今回の問題では、変数Xを引数に、変数Yを返り値としています)
まず、二乗したい値を入力させます。
そして、次の処理で、jijyou関数を呼び出し、jijyou関数の中で数値の二乗を行い、その結果を変数Aに入れます。
最後にAを出力すれば完了です。