第 3 回 キーボードから入力して計算させるには レポート課題 氏名:浅沼佑香 学籍番号:C1110039 語学クラス:英語1 コース:社会福祉コース 1.A.gets methodを使って入力するやり方とif-endを使ってのやり方がある。 #!/usr/koeki/bin/ruby STDERR.print("合言葉:") word = gets.chomp i = 0 while i < 3 printf("%sで岩戸が開きます\n",word) i += 1 end と、ファイルを作ってから、ktermでプログラムを実行したときに、自分で 「開けゴマ」打つと、開くことができる。 if #条件 # 実行したいこと end これを元に制作すると、 if 開けゴマ end これで、プログラムが開く。 2. A.ファイルを作ってからktermで実行し、bc -lで計算して確認した。結果は、下 の通りである。 <プログラム作成> #!/usr/koeki/bin/ruby #coding: euc-jp mash = 0 #1日収穫したキノコの量 total = 0 #1週間の収穫量(総量) day = 1 #収穫日数 while true #条件付きでの計算 STDERR.printf("%d日目に収穫したキノコの量:" ,day) #その日の収穫した数 mash = gets.chomp #実行したときに入力される文字+改行文字 if mash == "q" #入力された文字がqの場合に計算が終わる break end #ifの設定が終わる mash = mash.to_i #iは小数をつけない total += mash #合計は1日に収穫したキノコの数 day += 1 #収穫日数は1日増える end #while trueの設定は終わる printf("%d kg\n",total) #合計を表す文 <実行結果> pan{ASANUMA Yuka}% ./while_mashroom.rb [~/Ruby] 1日目に収穫したキノコの量:1 2日目に収穫したキノコの量:23 3日目に収穫したキノコの量:7 4日目に収穫したキノコの量:4 5日目に収穫したキノコの量:22 6日目に収穫したキノコの量:5 7日目に収穫したキノコの量:5 8日目に収穫したキノコの量:q 67 kg #1週間で67kg収穫した <計算結果> pan{c111003}% bc -l [~/Ruby] 1+23 #1日目 24 #2日目 24+7 31 #3日目 31+4 35 #4日目 35+22 57 #5日目 57+5 62 #6日目 62+5 67 #7日目 実行結果と計算結果があっていた。だから、1週間で67kg収穫したから、67kg出 荷できる。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー a.Aと同じように、ファイルを作ってからktermで実行し、bc -lで計算して確認 した。結果は下の通りである。 <プログラム作成> #!/usr/koeki/bin/ruby #coding: euc-jp mash = 0 #1日収穫したキノコの量 total = 0 #1週間の収穫量(総量) day = 1 #収穫日数 while true #条件付きでの計算 STDERR.printf("%d日目に収穫したキノコの量:" ,day) #その日の収穫した数 mash = gets.chomp #実行したときに入力される文字+改行文字 if mash == "q" #入力された文字がqの場合に計算が終わる break end #ifの設定が終わる mash = mash.to_i #iは小数をつけない total += mash #合計は1日に収穫したキノコの数 day += 1 #収穫日数は1日増える end #while trueの設定は終わる printf("%d kg\n",total) #合計を表す文 printf("平均 %f kg\n",total.to_f / day) #1日の平均を表す文 <実行結果> pan{c111003}% ./while_mashroom.rb [~/Ruby] 1日目に収穫したキノコの量:1 2日目に収穫したキノコの量:23 3日目に収穫したキノコの量:7 4日目に収穫したキノコの量:4 5日目に収穫したキノコの量:22 6日目に収穫したキノコの量:5 7日目に収穫したキノコの量:5 8日目に収穫したキノコの量:q 67 kg 平均 8.375000 kg <計算結果> pan{c111003}% bc -l [~/Ruby] 1+23 #1日目 24 #2日目 24+7 31 #3日目 31+4 35 #4日目 35+22 57 #5日目 57+5 62 #6日目 62+5 67 #7日目 67/8 #収穫した量を日にちの合計で割る 8.37500000000000000000 #1日の平均収穫量 実行結果と計算結果があっていた。 なので、1日の平均出荷量は8.375000kgである。 小数第2位まで四捨五入すると、8.38kgとなる。 b.Aやaと同じように、ファイルを作ってからktermで実行し、bc -lで計算して確認 した。結果は下の通りである。 <プログラム制作> #!/usr/koeki/bin/ruby #coding: euc-jp mash = 0 #1日収穫したキノコの量 total = 0 #1週間の収穫量(総量) day = 1 #収穫日数 kakaku = 240 #1kgの値段 while true #条件付きでの計算 STDERR.printf("%d日目に収穫したキノコの量:" ,day) #その日の収穫した数 mash = gets.chomp #実行したときに入力される文字+改行文字 if mash == "q" #入力された文字がqの場合に計算が終わる break end #ifの設定が終わる mash = mash.to_i #iは小数をつけない total += mash #合計は1日に収穫したキノコの数 day += 1 #収穫日数は1日増える end #while trueの設定は終わる printf("%d kg\n",total) #合計を表す文 printf("%d 円 \n",total.to_i * kakaku ) #1kgの値段を1日の合計に掛けた ことを表す文 printf("平均 %f kg\n",total.to_f / day ) #1日の平均を表す文 <実行結果> pan{c111003}% ./while_mashroom.rb [~/Ruby] 1日目に収穫したキノコの量:1 2日目に収穫したキノコの量:23 3日目に収穫したキノコの量:7 4日目に収穫したキノコの量:4 5日目に収穫したキノコの量:22 6日目に収穫したキノコの量:5 7日目に収穫したキノコの量:5 8日目に収穫したキノコの量:q 67 kg 16080 円 平均 8.375000 kg <計算結果> pan{c111003}% bc -l [~/Ruby] 1+23 #1日目 24 #2日目 24+7 31 #3日目 31+4 35 #4日目 35+22 57 #5日目 57+5 62 #6日目 62+5 67 #7日目 67*240 16080 #67kgの金額の合計 計算の結果、67kgは16080円だから、16080円売り上げることができる。 B.whileのファイルが作れても、打ちミスがあり、ktermで表示されないことが多 かったので、打ちミスには気を付けたい。特に、chomp(意味:改行)の文字ミス には気を付けてたい。2のオプションcの問題は難しくてできなかった。 C.<参考文献> 「Ruby プログラミング基礎講座」 廣瀬雄二 著 第3講 変数・抑制構造(3ー5 よく使うメゾッド)p37〜p39 基礎プログラミングI 第3回 「キーボードから入力して計算させるには」 西村まどか http://roy/~madoka/2012/r1/03/r1_03_06_theme_03_to_i_calory.html <共同学習者> 佐藤祐子 / 村上茉奈美