第 5 回 何度も呼び出そう レポート課題 氏名:千葉倫之 学籍番号:C1101520 語学クラス:英語II コース(系):地域共創 1.筆記問題 A. 自分の名前、Chiba Tomoyuki を16進数になおすと、 C = 0x43 h = 0x68 i = 0x69 b = 0x62 T = 0x54 o = 0x6f m = 0x6d o = 0x6f y = 0x79 u = 0x75 k = 0x6b i = 0x69 になる。 0x79 = 7*16^1+9*16^0 = 121 0x43 = 4*16^1+3*16^0 = 67 0x68 = 6*16^1+8*16^0 = 104 0x69 = 6*16^1+9*16^0 = 105 0x62 = 6*16^1+2*16^0 = 98 0x54 = 5*16^1+4*16^0 = 84 0x6f = 6*16^1+15*16^0 = 111 0x6d = 6*16^1+13*16^0 = 109 0x6f = 6*16^1+15*16^0 = 111 0x79 = 7*16^1+9*16^0 = 121 0x75 = 7*16^1+5*16^0 = 117 0x6b = 6*16^1+11*16^0 = 107 0x69 = 6*16^1+9*16^0 = 105 上記の数を全て足すと、 121 + 67 + 104 + 105 + 98 + 84 + 111 + 109 + 111 + 121 + 117 + 107 + 105 = 1360 となる。これを16で割ると、 16)1360 ----- 16) 85 0 ----- 16) 5 5 ----- 0 5 となり、16進数で表すと、 0x550 となる。 0d1360 = 0x550 と、16進数と10進数で足した数が同じになったので正しく計算 できた。 B. 服を洗濯機で洗う様子をプログラム風に表した。 def sentaku(senzai ,juunanzai ,swich) 洗濯機に senzai を入れる 洗濯機に juunanzai を入れる on = swich end sentaku(30g ,20cc ,15分) # 洗濯をするので呼び出す print("干すのがめんどくさいなぁ\n") 2.プログラム問題 A.学校の生徒の中から生徒会役員に選ばれる生徒の組み合わせを求めるプログラム。 ・プログラム #!/usr/koeki/bin/ruby def factorial(m) # メゾット if m == 1 # m が 1 だったら 1 else m * factorial(m-1) end # if 終わり。 end # def 終わり。 def erabu(a, b) factorial(a) / (factorial(b) * factorial(a-b)) # mCn = m! / (n!(m-n)) end # def 終わり。 print("学校の生徒の中から、生徒会役員を選びます。\n") print("\n") print("生徒会役員に選ばれる生徒の組み合わせは何通りでしょうか。\n") print("\n") STDERR.print("全生徒数(人): ") # 全生徒数 ninzu = gets.to_i # 入力された文字列を整数になおす。 STDERR.print("選ばれる生徒数(人): ") # 選ばれる生徒数 seito = gets.to_i if ninzu < seito print("\n") print("選ばれる生徒数が全生徒数を超えています。\n") else printf("%d人選んだときの組み合わせは%d通りです。\n",seito , erabu(ninzu,seito)) end ・実行結果 [~/Ruby] 学校の生徒の中から、生徒会役員を選ぶ。 生徒会役員に選ばれる生徒の組み合わせは何通りか? 全生徒数(人): 100 選ばれる生徒数(人): 10 10人選んだときの組み合わせは17310309456440通りです。 [~/Ruby] 学校の生徒の中から、生徒会役員を選ぶ。 生徒会役員に選ばれる生徒の組み合わせは何通りか? 全生徒数(人): 100 選ばれる生徒数(人): 110 選ばれる生徒数が全生徒数を超えています。 3.感想 機械的な操作を繰り返すものは、自転車、漫才、自動ドア等が挙げられると思う。 今回は、筆記問題が難しく、とても時間がかかった。今回のような問題が今後出 てきた時にわからなくならないようにしっかりと復習などをしようと思った。 4.参考文献 基礎プログラミング II 第5回 のページ