第7回 ゼミ紹介 レポート課題 氏名:小川まどか 学籍番号:C1100420 語学クラス:英語2 コース:社会福祉 1. A. a.仕様書 ・企画意図 自分は抹茶のお菓子が好きなので、それを使って何かプログラムができないか考 えました。 ・遊び方 このプログラムは、おみやげの合計金額を計算できます。 まず、プログラム(program.rb)をダウンロードして下さい。 そしてktermで chmod +x program.rb と入力してReturnキーを押し、 ./program.rb と入力してReturnキーを押して下さい。 そうするとプログラムが開始されます。 このプログラムは小川まどかが著作権を保有しています。 このプログラムの入手・実行・改変・再配布は、いずれも無料で自由に行なうこ とができます。 ただしこのプログラムを取り扱うことで生じたいかなる結果に対しても著作権者 は責任を負いません。 このプログラムに対する意見や感想などは c110042@e.koeki-u.ac.jpまで送って下さい。 C1100420 小川まどか b.プログラム i.考えた設定 おみやげ屋さんでおみやげを買ったときの合計金額を計算するプログラム program.rb を作成した。 ii.作成したプログラム #!/usr/koeki/bin/ruby def wagasi(a,b,c,d,e,f,g) 1200 * a + 200 * b + 180 * c + 150 * d + 270 * e + 280 * f + 300 * g end print("いらっしゃいませ。おみやげ屋へようこそ!\n") print("当店では抹茶の和菓子を提供しています。\n") print("\n") sleep(1) print("+++++++++++++++++++++お品++++++++++++++++++++++\n") print(" * 抹茶ロールケーキ 1ロール 1200円\n") print(" * 抹茶クリームと小豆のどら焼き 1個 200円\n") print(" * 抹茶いちご大福 1個 180円\n") print(" * 抹茶最中 1個 150円\n") print(" * 抹茶ぷりん 1個 270円\n") print(" * 抹茶アイスクリーム 1個 280円\n") print(" * 抹茶チョコレート 1ダース 300円\n") print("+++++++++++++++++++++++++++++++++++++++++++++++\n") print("※ ただ今キャンペーン中 ※\n") print("3000円以上お買い上げの方に粗品を贈呈いたします!\n") print("\n") sleep(1) print("全部美味しそうで悩むな…どれを買おうかなー\n") sleep(1) print("\n") sleep(1) print("考え中……\n") sleep(2.5) print("\n") STDERR.print("抹茶ロールケーキは何個お買い上げになりますか?(個数を入力、買わない場合は0と入力して下さい):") roru = gets.chomp.to_i STDERR.print("抹茶クリームと小豆のどら焼きは何個お買い上げになりますか?:") dorayaki = gets.chomp.to_i STDERR.print("抹茶いちご大福は何個お買い上げになりますか?:") daihuku = gets.chomp.to_i STDERR.print("抹茶最中は何個お買い上げになりますか?:") monaka = gets.chomp.to_i STDERR.print("抹茶ぷりんは何個お買い上げになりますか?:") purin = gets.chomp.to_i STDERR.print("抹茶アイスクリームは何個お買い上げになりますか?:") aisu = gets.chomp.to_i STDERR.print("抹茶チョコレートは何個お買い上げになりますか?:") chocolate = gets.chomp.to_i print("\n") goukei = wagasi(roru,dorayaki,daihuku,monaka,purin,aisu,chocolate) total = roru+dorayaki+daihuku+monaka+purin+aisu+chocolate printf("%d個お買い上げです。\n", total) printf("合計は %d 円になります。\n", goukei) print("\n") if goukei > 3000 print("お買い上げありがとうございました。\n") print("3000円以上お買い上げですので、当店特製の抹茶わらび餠を差し上げます!\n") print("またのご来店をお待ちしております。\n") else print("お買い上げありがとうございました。またのご来店をお待ちしております。\n") end iii.もとにしたプログラムからの変更点 レポート課題で作成したプログラム def_oneparam_a.rbをもとにした。 関数の数を増やした。 また、print文で品物を表示させ、品物の数に合わせてSTDERR.print文を増やし た。 最後にif文を加え、お買い上げ金額が3000円以上の場合と3000円以下の場合に分 かれるようにした。 iv.実行結果 ・合計金額が3000円を超えた場合 pan{c110042}% ./program.rb [~/public_html/advertise2] いらっしゃいませ。おみやげ屋へようこそ! 当店では抹茶の和菓子を提供しています。 +++++++++++++++++++++お品++++++++++++++++++++++ * 抹茶ロールケーキ 1ロール 1200円 * 抹茶クリームと小豆のどら焼き 1個 200円 * 抹茶いちご大福 1個 180円 * 抹茶最中 1個 150円 * 抹茶ぷりん 1個 270円 * 抹茶アイスクリーム 1個 280円 * 抹茶チョコレート 1ダース 300円 +++++++++++++++++++++++++++++++++++++++++++++++ ※ ただ今キャンペーン中 ※ 3000円以上お買い上げの方に粗品を贈呈いたします! 全部美味しそうで悩むな…どれを買おうかなー 考え中…… 抹茶ロールケーキは何個お買い上げになりますか?(個数を入力、買わない場合は0と入力して下さい):1 抹茶クリームと小豆のどら焼きは何個お買い上げになりますか?:3 抹茶いちご大福は何個お買い上げになりますか?:2 抹茶最中は何個お買い上げになりますか?:0 抹茶ぷりんは何個お買い上げになりますか?:0 抹茶アイスクリームは何個お買い上げになりますか?:4 抹茶チョコレートは何個お買い上げになりますか?:1 11個お買い上げです。 合計は 3580 円になります。 お買い上げありがとうございました。 3000円以上お買い上げですので、当店特製の抹茶わらび餠を差し上げます! またのご来店をお待ちしております。 ・合計金額が3000円を超えなかった場合 pan{c110042}% ./program.rb [~/public_html/advertise2] いらっしゃいませ。おみやげ屋へようこそ! 当店では抹茶の和菓子を提供しています。 +++++++++++++++++++++お品++++++++++++++++++++++ * 抹茶ロールケーキ 1ロール 1200円 * 抹茶クリームと小豆のどら焼き 1個 200円 * 抹茶いちご大福 1個 180円 * 抹茶最中 1個 150円 * 抹茶ぷりん 1個 270円 * 抹茶アイスクリーム 1個 280円 * 抹茶チョコレート 1ダース 300円 +++++++++++++++++++++++++++++++++++++++++++++++ ※ ただ今キャンペーン中 ※ 3000円以上お買い上げの方に粗品を贈呈いたします! 全部美味しそうで悩むな…どれを買おうかなー 考え中…… 抹茶ロールケーキは何個お買い上げになりますか?(個数を入力、買わない場合は0と入力して下さい):0 抹茶クリームと小豆のどら焼きは何個お買い上げになりますか?:0 抹茶いちご大福は何個お買い上げになりますか?:4 抹茶最中は何個お買い上げになりますか?:5 抹茶ぷりんは何個お買い上げになりますか?:2 抹茶アイスクリームは何個お買い上げになりますか?:1 抹茶チョコレートは何個お買い上げになりますか?:0 12個お買い上げです。 合計は 2290 円になります。 お買い上げありがとうございました。またのご来店をお待ちしております。 v.考察 このプログラムでの計算が正しいのか確かめるため、計算機 bcーl を使い確認 した。 ・合計金額が3000円を超えた場合 pan{c110042}% bc -l [~/public_html/advertise2] 1200*1 + 200*3 + 180*2 + 150*0 + 270*0 + 280*4 + 300*1 3580 ・合計金額が3000円を超えなかった場合 pan{c110042}% bc -l [~/public_html/advertise2] 1200*0 + 200*0 + 180*4 + 150*5 + 270*2 + 280*1 + 300*0 2290 bc -l での計算結果がどちらもプログラムと同じになったので、このプログラム は正常に動いている。 d.広告ページ 「http://roy/~c110042/advertise2/」 2.感想 品数を増やしても、defを使うと計算が便利にできると思った。 次回からの授業はCGIという新しい内容が始まるので、しっかり理解できるよう に頑張りたい。 3.参考文献 抹茶スイーツ宇治茶 伊藤久右衛門 (http://www.rakuten.ne.jp/gold/itohkyuemon/ujicha_t/)