情報処理基礎T・情報処理入門



ドーナツ型の円の面積を求める関数
    ここで学ぶこと

@:複数の引数変数の使い方

A:関数の中で野関数の呼び出し

の2点です。
 1: プログラムを記述する
以下のようにプログラムを入力してみましょう。(enMensekiが記述されている下でかまいません)
各行の説明は、プログラムの下に記述します。



・1〜5行目 : コメントです。
・6行目   : doughunt()は「関数の名前」を表し、括弧の中身は「引数」を表します。
・6行目   : 括弧の中身の「r as Integer」は「s1 と s2 という整数型の引数が必要」という意味になります。
・6行目   : 最後の「as Double」は結果として「実数(少数)」の答えが返ってくるという意味になります。
・7行目   : 「Dim s as Integer」は「この関数内で s という変数を 整数 として利用します」という宣言です。
         (先頭に Dim をつけるのを忘れないでください)
・7行目   : Double の後ろはコメントです。宣言した変数を何に利用するかを説明しています。
・8行目   : 「s に s1 の値 マイナス s2の値 という計算結果を代入します」という意味になります。
         自分で作った関数を呼び出すときは、「関数名」と「引数の値」を記述します。
         ここでは、enMensekiを利用して、面積を求めています。
・9行目   : 最後に「enMenseki」に計算結果を代入します。
 2: 実際にExcelで実行してみる@
エクセルのWindowにもどり、「挿入」⇒「関数」を選択します。
 3: 実際にExcelで実行してみるA
左側のリストから「ユーザ定義」を選択し、右側のリストから「doughunt01」を選択してOKをクリックします。

 4: 実際にExcelで実行してみるB
整数型の引数が2つ必要なので、半径を入力します(または、数値の入っているセルを選択します)。



今回は、「5」と「2」を入力してみましょう。
 5: 結果
以下のように計算された円の面積の結果がセルに入力されているはずです。

 6: 補足
今のプログラムは、最初の円が大きいことが前提になっています。
しかし、毎回そうとは限らないので(後ろの引数が大きいと結果がマイナスになってしまいます)、
どちらが多きくても面積が求められるように変更してみましょう。
以下のように入力してみてください。



最後に、Abs() という関数を利用していますね。
これは、「絶対値を返す」関数でした。
これならば、結果がマイナスになっても、絶対値としてはプラスの値が返ってくる為に、
どちらの円が大きくても正しい答えが得られます。