第5回 基礎プログラミング II レポート課題 氏名:阿部大樹 学籍番号:c1060100 語学クラス:英語 コース(系):社会 1:筆記問題 A:A 0x41 B 0x42 E 0x45 D 0x44 A 0x41 I 0x49 K 0x4B I 0x49 0x41を10進数に変換すると、 16×4+1×1 = 64+1 = 65 よって、0x41 = 0d65 以下も同様に計算すると、 0x42 = 0d66 0x45 = 0d69 0x44 = 0d68 0x41 = 0d65 0x49 = 0d73 0x4B = 0d75 0x49 = 0d73 これらを全て足し合わせると、 65+66+69+68+65+73+75+73 = 554 よって、0d554 これを16進数に変換する。 16) 554 (余り) ------ 16) 34 … 10 → a ------ 16) 2 … 2 → 2 ------ 16) 0 … 2 → 2 よって、0d554 = 0x22a これを10進数へ変換する。 256×2+16×2+10×1 = 512+32+10 = 554 よって、0x22a = 0d554 となり、正しいことが確認できた。 B: def morninng (shower,food,tv,) showerをあびる end tvをつける foodを取り出す foodを食べる end end print("いってきます!!") 2: 考えた設定: 授業で作成したdef_factorial.rbを応用し ガムを取り出す確率を求めるプログラムを作成した。 ーーーーーーーーーーーーーーーーーーーーーーーー 作成したプログラム: #!/usr/koeki/bin/ruby def factorial(m) if m == 1 return 1 else m * factorial(m-1) end end print("色んな味のガムが入ってるボトルがあります。\n") sleep 1 print("その中から無作為にガムを取りだしたい!!\n") sleep 1 print("ガムのトータル個数と何個取りだしたいか入力して下さい。\n") STDERR.print("ガムは全部で何個ある??\n") total = gets.chomp.to_i STDERR.print("ガムは何個取りだしたい??\n") gum = gets.chomp.to_i figure = total-gum if total < gum #トータル個数より取りだしたい個数が多い場合 print("それは無理!!\n") else printf("%d個 から%d個 取りだす組み合わせは\n", total, gum) printf("%d 通りあります\n",factorial(total)/(factorial(gum)*factorial(figure))) end ーーーーーーーーーーーーーーーーーーーーーーーー プログラム実行結果画面: ーーーーーーーーーーーーーーーーーーーーーーーー 6個あるうちから2個を取り出すパターン: pan{c106010}% ./def_combination.rb [~/ruby] 色んな味のガムが入ってるボトルがあります。 その中から無作為にガムを取りだしたい!! ガムのトータル個数と何個取りだしたいか入力して下さい。 ガムは全部で何個ある?? 6 ガムは何個取りだしたい?? 2 6個 から2個 取りだす組み合わせは 15 通りあります ーーーーーーーーーーーーーーーーーーーーーーーー ーーーーーーーーーーーーーーーーーーーーーーーー 3個あるうちから6個取り出すパターン pan{c106010}% ./def_combination.rb [~/ruby] 色んな味のガムが入ってるボトルがあります。 その中から無作為にガムを取りだしたい!! ガムのトータル個数と何個取りだしたいか入力して下さい。 ガムは全部で何個ある?? 3 ガムは何個取りだしたい?? 6 それは無理! ーーーーーーーーーーーーーーーーーーーーーーーー 考察: 色々試してみたが計算はあっていると思う。これは日常生活 でも使えそうだと感じた。 ーーーーーーーーーーーーーーーーーーーーーーー B:考えた設定: 映画館でのやりとりをMETHODを2個使い作成した。 ーーーーーーーーーーーーーーーーーーーーーーー ーーーーーーーーーーーーーーーーーーーーーーー 作成したプログラム: #!/usr/koeki/bin/ruby def pop(a) #ポップコーンの数×値段 300 *a end def juce(b) #ジュースの数×値段 200 * b end def set(c) #セットの数×値段 450 *c end def nebiki(x,y) if x =="yes" si = 2000+y elsif x =="no" si = 2800+y end end print("我が映画館にようこそ!!\n") sleep 1 print("本日はカップルDAYにつき、カップルの方々は二人で2000円で見られます!!\n") sleep 1 print("カップルでない場合は通常料金の二人で2800円になります!\n") sleep 1 print("あなた達付き合ってるの??\n") STDERR.print("yes ・ no ? → ") yn = gets.chomp if yn =="yes" #yn ="yes" "no"の場合分け print("ポップコーン(350円)はいくつ食べますか??\n") STDERR.print("ポップコーン → ") p = gets.chomp.to_i print("ジュース(200円)はいくつ飲みますか??\n") STDERR.print("ジュース → ") j = gets.chomp.to_i print("セット(ジュースとポップコーン)(450円)はいくつ買いますか??\n") STDERR.print("セット → ") s = gets.chomp.to_i total = pop(p) + juce(j) + set(s) #合計を求める計算式 printf("映画料金2000円と合わせまして合計%d円になります!\n",nebiki(yn,total)) elsif yn =="no" print("ポップコーン(350円)はいくつ食べますか??\n") STDERR.print("ポップコーン → ") pop = gets.chomp.to_i print("ジュース(200円)はいくつ飲みますか??\n") STDERR.print("ジュース → ") juce = gets.chomp.to_i print("セット(ジュースとポップコーン)(450円)はいくつ買いますか??\n") STDERR.print("セット → ") set = gets.chomp.to_i total = pop(pop) + juce(juce) + set(set) #合計を求める計算式 printf("映画料金2800円と合わせまして合計%d円になります!\n",nebiki(yn,total)) else print("正確に入力してよ!!") exit end ーーーーーーーーーーーーーーーーーーーーーーーーーー ーーーーーーーーーーーーーーーーーーーーーーーーーー プログラム実行結果画面: pan{c106010}% ./two_method.rb [~/ruby] 我が映画館にようこそ!! 本日はカップルDAYにつき、カップルの方々は二人で2000円で見られます!! カップルでない場合は通常料金の二人で2800円になります! あなた達付き合ってるの?? yes ・ no ? → yes ポップコーン(350円)はいくつ食べますか?? ポップコーン → 0 ジュース(200円)はいくつ飲みますか?? ジュース → 0 セット(ジュースとポップコーン)(450円)はいくつ買いますか?? セット → 1 映画料金2000円と合わせまして合計2450円になります! ーーーーーーーーーーーーーーーーーーーーーーーーーー ーーーーーーーーーーーーーーーーーーーーーーーーーー pan{c106010}% ./two_method.rb [~/ruby] 我が映画館にようこそ!! 本日はカップルDAYにつき、カップルの方々は二人で2000円で見られます!! カップルでない場合は通常料金の二人で2800円になります! あなた達付き合ってるの?? yes ・ no ? → no ポップコーン(350円)はいくつ食べますか?? ポップコーン → 0 ジュース(200円)はいくつ飲みますか?? ジュース → 0 セット(ジュースとポップコーン)(450円)はいくつ買いますか?? セット → 1 映画料金2800円と合わせまして合計3250円になります! ーーーーーーーーーーーーーーーーーーーーーーーーーー ーーーーーーーーーーーーーーーーーーーーーーーーーー 考察: if文を使い場合わけするプログラムを作成した。 設定を考えるのに時間が掛かりすぎてしまった。 ーーーーーーーーーーーーーーーーーーーーーーーーーー ーーーーーーーーーーーーーーーーーーーーーーーーーー 感想: 機械的な操作をする物 :自動車: アクセル踏む→進む ブレーキ踏む→止まる ハンドル切る→切ったほうに曲がる ーーーーーーーーーーーーーーーーーーーーーーーーーー ーーーーーーーーーーーーーーーーーーーーーーーーーー 参考文献: 「脱メタボリック計画」 http://roy.e.koeki-u.ac.jp/~madoka/2010/r2/05/05_01_theme_01_diet.html ひとつずつ確かめよう」 http://roy.e.koeki-u.ac.jp/~madoka/2010/r2/05/05_08_theme_06_onebyone.html ーーーーーーーーーーーーーーーーーーーーーーーーーー 共同学習者:真中優也