目次へ | 前の項目へ | 次の項目へ |
次の例題は円周率の計算です。記憶力を試すために暗唱したり、計算機の能力を示 すために何桁までできるか、など、ときどき話題になる円周率ですが、とりあえず、 計算してみましょう。
以下のようなスクリプトを作成します。
include Math puts PI printf "Pi = %1.100f \n", 4 * atan2(1,1) |
数学的な関数などを使用して計算するときには、それ用の便利な道具があるので使 うよ、という宣言をします。それが、最初のおまじないの
include Math
です。そうすると、実は円周率の値は PI という定数が用意してあるの で、puts PI とすると表示できるのですが、それだけでは面白くないの で、より詳細な計算をしてみたのが次のものです。ここでは、printf が 出てきました。printf は二重引用符で囲んだ文字列を出力するのですが、 途中に、%1.100f というよくわからないものがあります。このように % で始まる書式は、文字列 (%s) や整数 (%d)、浮動小数 (%f)、指数表記の数 (%e) など、表 現をきちんとしたい場合に用いるもので、ここでは、%f ですので、浮 動小数で表現しなさい、となっています。途中にある1.100 は整数部分 は最低でも一桁、小数は第100位まで書きなさい、という意味です。atan2 という 関数は、逆正接の三角関数ですが、今は詳細は置いておきましょう。
pi.rbという名前で保存したら、実行してみましょう。あらかじめ用意されている 定数の方の円周率は10桁です。自分で計算した方は、途中から0がずらっと並ん でしまっています。この方法では、小数第48位までしか計算できないようです。
最後に覚えておかないと間違えやすい点を一つ。プログラミング言語では整数の計 算の答えは整数、浮動小数の計算の答えは浮動小数というように決まっているもの がたくさんあり、Rubyもそうなっています。次の計算をしてみるとよくわかります が、実際の処理には注意が必要です。
puts 4/2 puts 1/2 puts 1.0/2 |
ページの先頭へ | 目次へ | 前の項目へ | 次の項目へ |