def quadratic(a,b,c,x) 2*a*x+b*x+c endx2がなんでこの表記になっているのか気になった。
-----hogehoge.rb-----とファイル名を書こうとしたら水平線が表示されてしまいました 記法についてはどこを参照すればいいですか?
include(Math) def det(a,b,c) b**2-4*a*c end def solution1(a,b,c) (-b-sqrt(det(a,b,c)))/(2*a) endと定義して、計算すると
Errno::EDOM: Numerical argument out of domain - sqrt from ./solution1.rb:6:in `sqrt' from ./solution1.rb:6:in `solution1'というエラーが出たんですが、どういう意味でしょうか?
ここでは、sqrtの定義域が変だということです。 もしかして、試そうとしたa,b,cの組み合わせが、判別式を負にさせていませんか?
ただし、人数も多いくぐるぐる回っているので、わからないことがあったら、積極的にヘル プ・オーラ(きょろきょろする、手を挙げる、声をかける、…など)を出していただける と、よりTAを捕まえやすくなると思います。
def solution(a,b,c) (-b+sqrt(det(a,b,c)))/(2*a) endと書けるが,
def solution(a,b,c) (-b+sqrt(det(a,b,c)))/2*a endのように書いてしまったというミスが多かったようだ.乗除算は左側から順に計算されるので,
def solution(a,b,c) ((-b+sqrt(det(a,b,c)))/2)*a endと解釈されてしまう.しかし,チェックプログラムではa=1の時しかチェックしていないので,通ってしまうようだ.
ruby vote.rb 選択肢番号のように使います.
ruby check.rb ex01.rbと実行すると,関数を与えた時の入力と出力があっていることが確認できます.