第 5 回 何度も呼び出そう レポート課題 氏名:宮原絵美里 学籍番号:c110188 語学クラス:英語6 コース(系):地域共創 1.A みやはらえみり miyahara emiri の文字コードを足し合わせてみます。 【16進数で計算】 m → 0x 6d 6 13 # d = 13 i → 0x 69 6 9 # 位ごとに足していく ------------------ 13 22 → 1 余り 6 # 16で割る 1は繰り上げ 余りを使う (d) (6) d6 13 6 y → 0x 79 7 9 ------------------ 1 余り 4 ← 20 15 # 15 = f (1) (4) (f) 14f 1 4 f a → 0x 61 6 1 --------------------- 1 11 16 → 1 余り 0 (1) (b) (0) # 11 = b 1b0 1 11 0 h → 0x 68 6 8 --------------------- 2 17 8 (2) (1) (8) 218 2 1 8 a → 0x 61 6 1 --------------------- 2 7 9 279 2 7 9 r → 0x 72 7 2 --------------------- 2 14 11 # 14 = e (2) (e) (b) 2eb 2 14 11 a → 0x 61 6 1 ---------------------- 3 20 12 # 12 = c (3) (4) (c) 34c 3 4 12 e → 0x 65 6 5 --------------------- 3 11 17 (3) (b) (1) 3b1 3 11 1 m → 0x 6d 6 13 --------------------- 4 17 14 (4) (1) (e) 41e 4 1 14 i → 0x 69 6 9 --------------------- 4 8 23 (4) (8) (7) 487 4 8 7 r → 0x 72 7 2 --------------------- 4 15 9 (4) (f) (9) 4f9 4 15 9 i → 0x 69 6 9 --------------------- 5 22 18 (5) (6) (2) よって 0x 562 となる。 【10進数で計算】 m → 0x6d = 6 * 16^1 + 13 * 16^0 = 109 # 10の位 * 16^1 + 1の位 * 16^0 i → 0x69 = 6 * 16^1 + 9 * 16^0 = 105 y → 0x79 = 7 * 16^1 + 9 * 16^0 = 121 a → 0x61 = 6 * 16^1 + 1 * 16^0 = 97 h → 0x68 = 6 * 16^1 + 8 * 16^0 = 104 a → 0x61 = 6 * 16^1 + 1 * 16^0 = 97 r → 0x72 = 7 * 16^1 + 2 * 16^0 = 114 a → 0x61 = 6 * 16^1 + 1 * 16^0 = 97 e → 0x65 = 6 * 16^1 + 5 * 16^0 = 101 m → 0x6d = 6 * 16^1 + 13 * 16^0 = 109 i → 0x69 = 6 * 16^1 + 9 * 16^0 = 105 r → 0x72 = 7 * 16^1 + 2 * 16^0 = 114 i → 0x69 = 6 * 16^1 + 9 * 16^0 = 105 109+105+121+97+104+97+114+97+101+109+105+114+105 = 1378 # 全部足す 余り 16)1378 2 #16で割っていく ----- 16) 86 6 ----- 5 ↑ # 余りを下から読む よって 0x 562 となる。 答えが一致している。 1.B 朝 目玉焼きを食べるのですが あたしは ちくわを焼いて乗せて めんつゆをかけ て食べるのが好きなので いつもそうしてます。 def food(rice, chikuwa, egg, mentsuyu) # ごはん ちくわ たまご めんつゆ chikuwa を焼く egg を焼く dish = rice と chikuwa と rice を乗せる dish = dish に mentsuyu をかける end food(0.5合, 2本, 1個, 適量) print("あさごはんできたよ\n") 2.A 【考えた設定】 オーディションに合格する人の組合せは何通りあるかを計算します。 【プログラム def_combination.rb】 #!/usr/koeki/bin/ruby def factorial(m) if m == 1 1 else m * factorial(m-1) end end def combination(a, b) factorial(a) / (factorial(b) * factorial(a-b)) # mCn = m! / (n!(m-n)) end print("オーディションで合格者を選ぶときの組合せは何通り?!\n") print("\n") STDERR.print("オーディション応募人数は?(人) : ") ninzu = gets.to_i STDERR.print("合格者の人数は?(人) : ") gokaku = gets.to_i printf("合格者の組み合わせは%d通りです。\n",combination(ninzu,gokaku)) 【実行結果】 pan{c110188}% ./def_combination.rb [~/Ruby] オーディションで合格者を選ぶときの組合せは何通り?! オーディション応募人数は?(人) : 1000 合格者の人数は?(人) : 2 合格者の組み合わせは499500通りです。 【考察】 確かめ算 pan{c110188}% bc -l [~/Ruby] 1000*999/2*1 499500.00000000000000000000 よって結果は合っている。 3 機械的な操作を繰り返すものとして 例えば自動販売機がある。お金を入れられ ボタンをおされたら 商品を出すという繰り返しがされている。 4 【参考文献】 基礎プログラミング II 第 5 回 「何度も呼び出そう」 著 西村まどか http://roy/~madoka/2011/r2/05/ 基礎プログラミング II 第5回 何度も呼び出そう 著 西村まどか http://roy/~madoka/2010/r2/05/ 【共同学習者】 見川英駿 五十嵐兼一