『情報科学入門 Rubyを使って学ぶ』の練習問題の解答例の他、授業スライドの練習問題の解答例や、プログラミングのポイント等を掲載します。他クラスの方の利用歓迎。改良・訂正箇所ありましたらご指摘ください。

2010/11/09

[ス]練習問題(第一章)

授業スライド「01数の計算と関数」の練習問題の解答例です。


数学関数を使うので、include(Math)の入力を忘れずにしましょう。
  • 平面上の2 (x, y) (u, v) の距離を求める distance(x,y,u,v).
def  distance(x,y,u,v)
 sqrt((x-u)**2+(y-v)**2))   
end

"def"は「次のような関数を定義する」という意味。"end"で関数定義を終わらせています。


  • fフィートiインチをセンチメートルに変換する feet_to_cm(f,i).ただし、1 フィート= 12 インチ = 30.48 cm である。
def  feet_to_cm(f,i)
 (f+i/12.0)*30.48
end



  • pポンドoオンスをキログラムに変換する pound_to_kg(p,o).1 ポンド= 16 オンス= 0.4536 kg である。
def pound_to_kg(p,o)
 (p+0/16.0)*0.4536
end


  • 二次方程式ax^2+bx+cに関して
  (a) 判別式b2 − 4ac を求めるdet(a,b,c).
def det(a,b,c)
 b**2-4*a*c
end

  (b) 解の1 つを求めるsolution1(a,b,c). (det を使って 定義せよ。)
def solution1(a,b,c)
 (-b+sqrt(det(a,b,c)))/(2.0*a)
end

  (c) もう1 つの解を求めるsolution2(a,b,c).(solution1 solution2 の共通部分を1つの補助関数にできるか?)
def solution2(a,b,c)
 (-b-sqrt(det(a,b,c)))/(2.0*a)
end

  (d) 二次関数f(x) = ax2+bx+c の値を求める quadratic(a,b,c,x).
def quadratic(a,b,c,x)
 a*x**2+b*x+c
end

0 件のコメント:

コメントを投稿