第5回 基礎プログラミング II レポート課題 氏名 : 藤井 駿 学籍番号 :c1091307 語学クラス :英語3 コース : 地域共創 1.筆記問題 A. 私の名前のアルファベット表記は Shun Fujii である。 これを ASCIIコードを参考にするとこうなる。 S → 0x53 (0d83) F → 0x46 (0d70) h → 0x68 (0d104) u → 0x75 (0d117) u → 0x75 (0d117) j → 0x6a (0d106) n → 0x6e (0d110) i → 0x69 (0d105) i → 0x69 (0d105) ◎16進数で計算する 5 3 + 6 8 --------- 11 11 → 0xbb 11 11 + 7 5 --------- 1 3 0 → 0x130 1 3 0 + 6 14 --------- 1 9 14 → 0x19e 1 9 14 + 4 6 --------- 1 14 4 → 0x1e4 1 14 4 + 7 5 --------- 2 5 9 → 0x259 2 5 9 + 6 10 --------- 2 12 3 → 0x2c3 2 12 3 + 6 9 --------- 3 2 12 → 0x32c 3 2 12 + 6 9 --------- 3 9 5 → 0x395 答えは 0x395 となった。 ------ まず、10進数の場合 0d83 + 0d104 + 0d117 + 0d110 + 0d70 + 0d117 + 0d70 + 0d105 + 0d105 = 917 --- 16進数にする。 917/16 = 57 余り 5 57/16 = 3 9 3/16 = 0 3 よって 0x395 は 3*256 + 9*16 +5 =917 したがって 0x395 = 0d917 といえる。 ------------- B. 朝食を作るときの過程をプログラム風に書き直します。 def misosoup(tofu,nameko,miso) tofu を切る nameko を用意する chouri = tofu と nameko を入れる chouri = chouri に miso を 入れる end def breakfast(gohan,misosiru,oakzu) youi = gohan を盛る youi = misosiru を盛る youi = okazu を皿に盛る end misosoup(1丁,1袋,20g) #味噌汁を作るので呼び出す。 breakfast(1杯,1杯,1皿) #朝食を準備するのに呼び出す。 print("いただきまーす!!\n") 2.プログラム問題 A. a.考えた設定 いくつかの旅行先から行きたい旅行先を何ヶ所かにしぼるときのしぼり方を求め るプログラム b.もとにしたプログラム 授業の際の def_factorial.rb を参考に作成した。 また、 def_metabolic.rb も参考にした。 変更したところは、変数を適宜変更した。 c.作成したプログラム #!/usr/koeki/bin/ruby def factorial(m) if m == 1 1 else m * factorial(m-1) end end def tabi(a,b) if a ==b return 1 # 値を戻す(ふたたび 1 に戻す) elsif b == 0 return 0 # 値を戻す(ふたたび 0 に戻す) elsif a 3 (80 * a * 0.3) else 80 * a end end def man(b) 100 * b end def dango(c) 120 * c end print("今日はどら焼き、饅頭、団子を買います!!\n") sleep 1.5 print("\n\n") print("どら焼きは一個80円(4個目からは三割引き)\n") print("饅頭は一個100円\n") print("団子は一個120円です\n") print("\n") sleep 1 print("なにを買おうかな〜\n") STDERR.print("どら焼きは何個買おうかな?:") dorayaki = gets.to_i STDERR.print("饅頭は何個買おうかな?:") manju = gets.to_i STDERR.print("団子は何個買おうかな?:") dan = gets.to_i total = dora(dorayaki) + man(manju) +dango(dan) printf("\n合計金額は %d 円です\n", total) d.実行結果 ◎どら焼き3個、饅頭1個、団子1個買ったとき pan{c109130}% ./two_methods.rb [~/Ruby] 今日はどら焼き、饅頭、団子を買います!! どら焼きは一個80円(4個目からは三割引き) 饅頭は一個100円 団子は一個120円です なにを買おうかな〜 どら焼きは何個買おうかな?:3 饅頭は何個買おうかな?:1 団子は何個買おうかな?:1 合計金額は 460 円です ◎どら焼き5個、饅頭2個、団子2個買ったとき pan{c109130}% ./two_methods.rb [~/Ruby] 今日はどら焼き、饅頭、団子を買います!! どら焼きは一個80円(4個目からは三割引き) 饅頭は一個100円 団子は一個120円です なにを買おうかな〜 どら焼きは何個買おうかな?:5 饅頭は何個買おうかな?:2 団子は何個買おうかな?:2 合計金額は 560 円です e.考察 bc -lで確かめると ◎どら焼き3個、饅頭1個、団子1個買ったとき pan{c109130}% bc -l [~/Ruby] (80 * 3) + (100 * 1) + (120 * 1) 460 quit ◎どら焼き5個、饅頭2個、団子2個買ったとき pan{c109130}% bc -l [~/Ruby] (80 * 5 * 0.3) + (100 * 2) + (120 * 2) 560.0 quit 以上のようになりプログラム本体の答えと一致したので正しいといえる。 3.感想 機械的な操作を繰り返すものとして挙げられるのはよくあるシンバルを叩 くサルのおもちゃだと思った。スイッチを切るまで動き続けるおもちゃ全 般がこれに当てはまるだろう。 今回の課題ははじめからつまずいてしまった。計算問題がたくさんあって いつもよりとても大変だったけれど友人の協力があって完成させることが できたので良かった。 4.参考文献 ・Ruby プログラミング基礎講座 著:広瀬雄二 P.101〜P.106 ◎共同学習者 ・池田博哉 ・遠藤孝之