第 7 回 専門演習紹介 レポート課題 氏名:川村明帆 学籍番号:C110207A 語学クラス:英語1 コース:地域共創コース 1-A a、仕様書 1、プログラムの作成理由 このプログラムを作成した理由は、後期習ったことを活かすことができるのはレ ジスタがいいと考えこのプログラムを作成した。商品リストは酒屋でアルバイト をしていたので酒だけにした。 2、遊び方 まず、プログラムファイルをダウンロードする。ダウンロードしたらkterm上で % chmod +x saikou.rb と入力し Returnキーを押す。次に % ./saikou.rb と入力し Returnキーを押すとプログラムが始まる。 プログラムを起動すると商品のリストが表示されるので、商品名の前にある「商 品番号」を入力し Returnキーを押す。その次に、「購入する数」を聞かれるので それを入力し Returnキーを押す。プログラムを終了したい場合は「0」と入力し Returnキーを押す。 3、連絡先 このプログラムに対する感想・意見・苦情など言いたいことがありましたら、以下 のアドレスへお願いします。 c110207@f.koeki-u.ac.jp 1-b (i)考えた設定 商品と商品の個数を選び、その代金を求めるプログラムを作成した。商品を2000 円以上購入した場合2割引、3500円以上購入した場合3割引になる。 (ii)作成したプログラム #!/usr/koeki/bin/ruby #coding: euc-jp def sakaya(kakaku,goukei) # 変数を sakaya 引数を kakaku と goukei とする。 if goukei >= 3500 # 3500円以上なら3割引になる。 print("3割引になります。\n") kakaku = goukei * 0.7 # 3割引にする計算 elsif goukei >= 2000 # 2000円以上なら2割引になる。 print("2割引になります。\n") kakaku = goukei * 0.8 # 2割引にする計算 else # 条件に当てはまらないものの処理 kakaku = goukei # kakaku に goukei を代入 end # if の end end # def の end syouhin = Hash.new # syouhin を Hash にする。 syouhin[1] = 650 syouhin[2] = 700 syouhin[3] = 720 syouhin[4] = 780 syouhin[5] = 800 syouhin[6] = 820 syouhin[7] = 850 syouhin[8] = 880 syouhin[9] = 900 syouhin[10] = 950 syouhin[11] = 990 syouhin[12] = 1000 syouhin[13] = 1500 syouhin[14] = 6000 syouhin[15] = 9000 goukei = 0 # goukei の初期値 kounyu = 0 # kounyu の初期値 nedan = [] # nedan の配列 n = 0 # 配列の初期値 while true # 繰り返しを指示 STDERR.print("商品を選び、その商品の番号を入力して下さい。0を押すと終了になります。\n") STDERR.print("2000円以上お買い上げの場合2割引、3500円以上お買い上げの場合3割引になります。\n") print("1、 いいちこ20℃ 650円\n") # 商品リスト print("2、 いいちこ25℃ 700円\n") print("3、 黒霧島20℃ 720円\n") print("4、 黒霧島25℃ 780円\n") print("5、 知心剣20℃ 800円\n") print("6、 知心剣25℃ 820円\n") print("7、 喜界島20℃ 850円\n") print("8、 喜界島25℃ 880円\n") print("9、 雲海20℃ 900円\n") print("10、雲海25℃ 950円\n") print("11、大五郎20℃ 990円\n") print("12、大五郎25℃ 1000円\n") print("13、いいちこシルエット 1500円\n") print("14、いいちこフラスコ 6000円\n") print("15、百年の孤独 9000円\n") print("\n") print("商品の番号を入力して下さい。\n") bangou = gets.to_i # キーボードから入力されたものを代入 nedan[n] = syouhin[bangou] # 入力された商品の価格を表示 if bangou == 0 # 0 と入力されれば終了 break elsif nedan[n] == nil # 商品リストに入力された番号がなければ エラー と表 示 printf("エラーです。\n",bangou) break else # 条件に当てはまらないものの処理 print("いくつ購入しますか?\n") kounyu = gets.to_i # キーボードから入力されたものを代入 end # if の end goukei += nedan[n] * kounyu # goukei を求める計算 kounyu = +1 # 購入数が1ずつ増加 end # if の end printf("お会計は%d円になります。\n",sakaya(goukei,goukei)) # 会計表示 (iii)もとにしたプログラムからの変更点 コメントや計算を追加した。 (iv)実行結果 pan{c110207}% ./saikou.rb [~/Ruby] 商品を選び、その商品の番号を入力して下さい。0を押すと終了になります。 2000円以上お買い上げの場合2割引、3500円以上お買い上げの場合3割引になります。 1、 いいちこ20℃ 650円 2、 いいちこ25℃ 700円 3、 黒霧島20℃ 720円 4、 黒霧島25℃ 780円 5、 知心剣20℃ 800円 6、 知心剣25℃ 820円 7、 喜界島20℃ 850円 8、 喜界島25℃ 880円 9、 雲海20℃ 900円 10、雲海25℃ 950円 11、大五郎20℃ 990円 12、大五郎25℃ 1000円 13、いいちこシルエット 1500円 14、いいちこフラスコ 6000円 15、百年の孤独 9000円 商品の番号を入力して下さい。 1 いくつ購入しますか? 2 商品を選び、その商品の番号を入力して下さい。0を押すと終了になります。 2000円以上お買い上げの場合2割引、3500円以上お買い上げの場合3割引になります。 1、 いいちこ20℃ 650円 2、 いいちこ25℃ 700円 3、 黒霧島20℃ 720円 4、 黒霧島25℃ 780円 5、 知心剣20℃ 800円 6、 知心剣25℃ 820円 7、 喜界島20℃ 850円 8、 喜界島25℃ 880円 9、 雲海20℃ 900円 10、雲海25℃ 950円 11、大五郎20℃ 990円 12、大五郎25℃ 1000円 13、いいちこシルエット 1500円 14、いいちこフラスコ 6000円 15、百年の孤独 9000円 商品の番号を入力して下さい。 0 お会計は1300円になります。 pan{c110207}% ./saikou.rb [~/Ruby] 商品を選び、その商品の番号を入力して下さい。0を押すと終了になります。 2000円以上お買い上げの場合2割引、3500円以上お買い上げの場合3割引になります。 1、 いいちこ20℃ 650円 2、 いいちこ25℃ 700円 3、 黒霧島20℃ 720円 4、 黒霧島25℃ 780円 5、 知心剣20℃ 800円 6、 知心剣25℃ 820円 7、 喜界島20℃ 850円 8、 喜界島25℃ 880円 9、 雲海20℃ 900円 10、雲海25℃ 950円 11、大五郎20℃ 990円 12、大五郎25℃ 1000円 13、いいちこシルエット 1500円 14、いいちこフラスコ 6000円 15、百年の孤独 9000円 商品の番号を入力して下さい。 2 いくつ購入しますか? 1 商品を選び、その商品の番号を入力して下さい。0を押すと終了になります。 2000円以上お買い上げの場合2割引、3500円以上お買い上げの場合3割引になります。 1、 いいちこ20℃ 650円 2、 いいちこ25℃ 700円 3、 黒霧島20℃ 720円 4、 黒霧島25℃ 780円 5、 知心剣20℃ 800円 6、 知心剣25℃ 820円 7、 喜界島20℃ 850円 8、 喜界島25℃ 880円 9、 雲海20℃ 900円 10、雲海25℃ 950円 11、大五郎20℃ 990円 12、大五郎25℃ 1000円 13、いいちこシルエット 1500円 14、いいちこフラスコ 6000円 15、百年の孤独 9000円 商品の番号を入力して下さい。 3 いくつ購入しますか? 2 商品を選び、その商品の番号を入力して下さい。0を押すと終了になります。 2000円以上お買い上げの場合2割引、3500円以上お買い上げの場合3割引になります。 1、 いいちこ20℃ 650円 2、 いいちこ25℃ 700円 3、 黒霧島20℃ 720円 4、 黒霧島25℃ 780円 5、 知心剣20℃ 800円 6、 知心剣25℃ 820円 7、 喜界島20℃ 850円 8、 喜界島25℃ 880円 9、 雲海20℃ 900円 10、雲海25℃ 950円 11、大五郎20℃ 990円 12、大五郎25℃ 1000円 13、いいちこシルエット 1500円 14、いいちこフラスコ 6000円 15、百年の孤独 9000円 商品の番号を入力して下さい。 0 2割引になります。 お会計は1712円になります。 pan{c110207}% ./saikou.rb [~/Ruby] 商品を選び、その商品の番号を入力して下さい。0を押すと終了になります。 2000円以上お買い上げの場合2割引、3500円以上お買い上げの場合3割引になります。 1、 いいちこ20℃ 650円 2、 いいちこ25℃ 700円 3、 黒霧島20℃ 720円 4、 黒霧島25℃ 780円 5、 知心剣20℃ 800円 6、 知心剣25℃ 820円 7、 喜界島20℃ 850円 8、 喜界島25℃ 880円 9、 雲海20℃ 900円 10、雲海25℃ 950円 11、大五郎20℃ 990円 12、大五郎25℃ 1000円 13、いいちこシルエット 1500円 14、いいちこフラスコ 6000円 15、百年の孤独 9000円 商品の番号を入力して下さい。 15 いくつ購入しますか? 1 商品を選び、その商品の番号を入力して下さい。0を押すと終了になります。 2000円以上お買い上げの場合2割引、3500円以上お買い上げの場合3割引になります。 1、 いいちこ20℃ 650円 2、 いいちこ25℃ 700円 3、 黒霧島20℃ 720円 4、 黒霧島25℃ 780円 5、 知心剣20℃ 800円 6、 知心剣25℃ 820円 7、 喜界島20℃ 850円 8、 喜界島25℃ 880円 9、 雲海20℃ 900円 10、雲海25℃ 950円 11、大五郎20℃ 990円 12、大五郎25℃ 1000円 13、いいちこシルエット 1500円 14、いいちこフラスコ 6000円 15、百年の孤独 9000円 商品の番号を入力して下さい。 0 3割引になります。 お会計は6300円になります。 pan{c110207}% ./saikou.rb [~/Ruby] 商品を選び、その商品の番号を入力して下さい。0を押すと終了になります。 2000円以上お買い上げの場合2割引、3500円以上お買い上げの場合3割引になります。 1、 いいちこ20℃ 650円 2、 いいちこ25℃ 700円 3、 黒霧島20℃ 720円 4、 黒霧島25℃ 780円 5、 知心剣20℃ 800円 6、 知心剣25℃ 820円 7、 喜界島20℃ 850円 8、 喜界島25℃ 880円 9、 雲海20℃ 900円 10、雲海25℃ 950円 11、大五郎20℃ 990円 12、大五郎25℃ 1000円 13、いいちこシルエット 1500円 14、いいちこフラスコ 6000円 15、百年の孤独 9000円 商品の番号を入力して下さい。 90 エラーです。 お会計は0円になります。 (v)結果の考察 pan{KAWAMURA Akiho}% bc -l [~] 650*2 1300 700*1+720*2 2140 2140*0.8 1712.0 9000*1 9000 9000*0.7 6300.0 1、2、3回目の結果を bc -l で確認した結果答えが一致したので正常に動いてい ると思う。 (vi)参考文献 最後に記載。 1-c 余力なし 1-d 広告ページのURL http://roy/~c110207/adv2/index.html 2、感想 久しぶりに広告ページを作ったので、広告ページの作り方をほぼ忘れていました。 それでも講義ノートを見つつ作ることができました。また、最高傑作を作るとい うこともあり、何時間もパソコンに向かっていました。しかし、前期の講義内容 や後期の講義内容を復習しながらレポートを書けたことは良かったと思います。 3、参考文献 ページ名:基礎プログラミング II 第 5 回 (何度も呼び出そう) 「脱メタボリッ ク計画」 講義ノート目次 作成者 :西村先生 URL :http://roy/~madoka/2012/r2/05/r2_05_01_theme_01_diet.html ページ名:基礎プログラミング II 第 2 回 (なになにといえばこれこれ) 「入力 したデータを取り出そう」 講義ノート目次 作成者 :西村先生 URL :http://roy/~madoka/2012/r2/02/r2_02_03_theme_02_hash_input.html ページ名:基礎プログラミング I 第 9 回 (Ruby であそぼ / 広告ページの作成) 「広告用ホームページ」 講義ノート目次 作成者 :西村先生 URL :http://roy/~madoka/2012/r1/09/r1_09_13_theme_09_software.html ページ名:(10) 06/25の授業内容:プログラムの公開 作成者 :神田先生 URL :http://roy/~naoya/ruby/10.html