10/24 数の計算と関数・配列による画像の表示


前回の感想,質問より

Q.
資料のbmi_ypの参考値が違いませんか?
A(関根さん).
確かにスライド通りに作ると bmi_yp(5, 11, 170, 0) の値は 約 23.710342996960538 になるようですね。
ポンド→キログラムの換算係数を 0.4536 ではなくより正確な 0.45359237 にすると 23.7099441655737 という値が得られるようです。
A(田中). ご指摘のとおり,スライドの数値が誤っていました.修正したものをCFIVEの教材にアップロードしました.
Q.
一度投票システムに戻るとirbで定義したものがなくなってし まうのでめんどくさいなと思いました。最初からmiなどで作るようにした方がよいのでしょうか。
A(関根さん).
ターミナルを2つ立ち上げておくと良いと思います。
A(滝瀬さん).
プログラムは指示がなくても自分で見直せるように,最初からmiで作成することをお勧めします.
Q.
授業中にテキストエディット上でヤードポンド法からbmiを求める関数を作り、loadして実行しましたが動きま せんでした。
# bmi_yp
load("./bmi.rb")
load("./yardpound.rb")

def bmi_yp(f,i,p,o)

bmi(feet_to_cm(f,i),pound_to_kg(p,o))
end
ci131005m:~ 5022803735$ irb
irb(main):001:0> load("./bmi_yp")
LoadError: no such file to load -- ./bmi_yp
from (irb):1:in `load'
from (irb):1
irb(main):002:0>
A(滝瀬さん).
プログラムが動かないとのことですが,
irb(main):001:0> load("./bmi_yp")
LoadError: no such file to load -- ./bmi_yp
このエラーを見ると,ファイルがありませんと言われているので,ファイルを作成した場所で動作させていますか?ファイル名に間違いはありませんか? また,load("./bmi_yp")はload("./bmi_yp.rb")でないと動かないと思います. 試してみてください.
Q.
TAさんがもっと優しく教えてくれるといいのになー
A(関根さん).
優しくなくてごめんなさい。
Q.
せっかくなので、これからも全部保存していきたいと思いました。 その際にフォルダをわけようと思いましたが、is12 の中に作ったフォルダで作業をしている時に”cd is12”と打っ ても戻れないので、どうしたらよいのでしょうか。
A(関根さん).
"cd is12" というのは、 「現在の作業フォルダ(カレントフォルダと言います)の中の is12 に移動する」 という意味です。 「現在のフォルダの上位のフォルダ」は ".." という記号列で表されるので、 質問の状況の場合 "cd .." で戻れると思います。 或いは、ユーザのホームフォルダは "~" という記号で表されるので、 "cd ~/is12" としてもよいでしょう。
Q.
def pound_to_kg(p,o)
  (p+o/16)*0.4536
end
def feet_to_cm(f,i)
  (f+i/12)*30.48
end
def bmi_yp(f,i,p,o)
 bmi(feet_to_cm(f,i),pound_to_kg(p,o))
end

irb(main):021:0> bmi_yp(5,11,170,0)
=> 33.2010664021328
bmi_yp(5,11,170,0)の値がどうしても33.2010664021328になってしまいます。
A(滝瀬さん).
  (f+i/12)*30.48
  (p+o/16)*0.4536
  (f+i/12.0)*30.48
  (p+o/16.0)*0.4536
としないと,商は整数になってしまいます.

前回の課題について


補足


投票システム

vote.rbをダウンロードして,ホームディレクトリに保存してください.ドックからターミナルを起動して,
ruby vote.rb 選択肢番号
のように使います.

今日の練習,投票

関連リンク


教科書の補足


今日の課題