irb(main):016:0> load("./sphere.rb") => true irb(main):017:0> show(sphere(20)) NoMethodError: undefined method `show' for main:Object from (irb):17 from ./sphere.rb:15と表示されます…エラーの意味が分からず…授業終了間際だったのでTAには聞けませんでした(汗)
で、モヤモヤしているといけないので、さっそく回答しますが、これはですね、irbで実装 しているからなんです。
showが使えるのは、isrbなので、ターミナルから、isrbを起動していたら、できていたと思 います。
次回の授業までに試してみて、もし、それでもうまくいかなかったら、掲示板でも、授業の 前後でも、聞いてください!
irb(main):004:0> b=Float::INFINITY => Infinity irb(main):005:0> b => Infinity irb(main):006:0> 10000 < b => true irb(main):007:0> 10000 > b => falseこの問題ではそこまで想定していないので,「解が無数にある時は -1 を返す」などと決めた上で-1を返すプログラムなどで良いと思います.
個人的には、インデントを作り、#を使ってコメントアウトをした記録を残すことで、振り 返って作業のしやすいプログラムを書く礎であると思うのですが・・・いかがでしょう か・・・
if 条件1 式1 else if 条件2 式2 else if 条件3 式3 else 式4 end end endのようにelse部分にif文が来る多方向分岐を
if 条件1 式1 elsif 条件2 式2 elsif 条件3 式3 else 式4 endのように書くことができます.詳しくは,Ruby 1.8.7 リファレンスマニュアル制御構造を御覧ください.また,「elsif」のスペル に注意して下さい.
講義で扱わなかったのは,
@file = Tempfile.new("plotdata"+name, "/tmp")を
@file = Tempfile.new("plotdata"+name)に変更すれば動くはずです.私の手元の環境では動きました.これはバグなので報告しておきます.
if x=yのように,等しいかどうかの比較で「==」を用いずに「=」を使って変数の代入とみなされてしまう誤り,逆にb(s,x,y)の定義で
r==s/2のように,代入なのに「=」を用いずに「==」を使ってる誤りが多かった.
ruby vote.rb 選択肢番号のように使います.