第5回 基礎プログラミング II レポート課題 氏名:後藤輝久 学籍番号:c1090650 語学クラス:中国語1 コース(系):地域共創コース 1、筆記問題 ASCIIコード G = 0x47 o = 0x6f t = 0x74 o = 0x6f T = 0x54 e = 0x65 r = 0x72 u = 0x75 h = 0x68 i = 0x69 s = 0x73 a = 0x61 まず10進数に直す。 0x47 7 * 1 = 7 4 * 16 = 64 よって0d71 0x6f 15 * 1 = 15 6 * 16 = 96 よって0d111 0x74 4 * 1 = 4 7 * 16 = 112 よって0d116 0x6f 15 * 1 = 15 6 * 16 = 96 よって0d111 0x54 4 * 1 = 4 6 * 16 = 96 よって0d100 0x65 5 * 1 = 5 6 * 16 = 96 よって0d101 0x72 2 * 1 = 2 7 * 16 = 112 よって0d114 0x75 5 * 1 = 5 7 * 16 = 114 よって0d119 0x68 8 * 1 = 8 6 * 16 = 96 よって0d104 0x69 9 * 1 = 9 6 * 16 = 96 よって0d105 0x73 3 * 1 = 3 7 * 16 = 112 よって0d115 0x61 1 * 1 = 1 6 * 16 = 96 よって0d97 これらを足す。 71 + 111+ 116 + 111 + 100 + 101 + 114 + 119 + 104 + 105 + 115 +97 = 0d1264 次に0d1264を16進数に直す。 1264 / 16 = 79 余り0 79 / 16 = 4 余り15 4 / 16 = 0 余り4 よって、16進数は0x4f0となる。 答え 0x4f0 = 0d1264 B、毎朝の習慣 def food(rice, egg, ham) rice を盛る egg を焼く ham を切る dish = rice と egg を乗せる dish = dish と ham を乗せる end # 返すものは dish food(1 杯、1 個、2 枚) # あさごはんを作るので呼び出す coffee(カップ 1 杯, 60 粒, 40 cc) # 飲み物を作るので呼び出す print("朝飯できた\n") 2、プログラム問題 A #!/usr/koeki/bin/ruby print("絵の具。\n") STDERR.print("何色ありますか?: ") l = gets.chomp.to_i STDERR.print("何色取りますか?: ") k = gets.chomp.to_i def factorial(a) if a == 1 1 else a * factorial(a - 1) end end printf("%d 色の絵の具から %d 色作る組合せは %d 通りあります。\n", l, k, factorial(l) / (factorial(k) * factorial(l - k))) 実行結果 pan{c109065}% ./def_conbinato.rb [~/Ruby] 絵の具。 何色ありますか?: 3 何色取りますか?: 2 3 色の絵の具から 2 色作る組合せは 3 通りあります。 考察 複数の絵の具から色を作ったら、何通り作れるか表すプログラムを作りました。 感想 機械的な操作を繰り返すものは、信号や電車の踏切だと思います。今回の課題は今まで以上に難しかったです。次の課題も友達と協力して頑張りたいです。 参考ページ http://roy/~madoka/2009/r2/05/rpt/c108100.txt 共同学習者 小関文紀