第 5 回 何度も呼び出そう レポート課題 氏名:田中愛 学籍番号:c109115 語学クラス:ロシア語 コース(系):政策マネジメント 1. 筆記問題 A T 54 A 41 N 4E A 41 K 4B A 41 A 41 I 49 16進数 10進数 T 0x54 84 A 0x41 64 N 0x4E 78 A 0x41 64 K 0x4B 75 A 0x41 64 A 0x41 64 I 0x49 73 84+64+78+64+75+64+64+73 =566 よってod556 16)556 12 ----- 16) 34 2 ----- 16) 2 2 ----- 0 よって0x22cとなる。 すなわち、自分の名前の文字コードを全て足し合わせると 0d556 = 0522cとなる。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー B. 毎朝の習慣をプログラム風に書き直します。 def kishou (eye, huton, tooth ) okiru = eye を開け、huton からぬけだし、toothを磨く end kishou(瞼をあける, 起き上がる,手を動かす) print("おはようございます。\n") ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 2. プログラム問題 A i)ケーキバイキングにきた人とケーキの個数を入力してもらい ケーキを食べる組み合わせを表示するプログラム ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー ii)def_combination.rb。 #!/usr/koeki/bin/ruby $KCODE = 'e' def factorial(m) if m == 1 1 else m * factorial(m-1) end end def taberu(people,cake) (factorial(cake)/factorial(people) * factorial(cake-people)) end print("バイキングが始まります!!\n") STDERR.print("人は何人ですか?: ") hito = gets.to_i print("ケーキは何個ありますか: ") keiki = gets.to_i if hito > keiki print("すみません。ケーキが足りません。\n") elsif hito == keiki printf("%d 人がケーキを食べる座る組み合わせは1通りです。\n",hito) elsif printf(" %d 人がケーキを食べる組み合わせは %d 通りです。\n", hito, taberu(hito,keiki)) end ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー iii).もとにしたプログラム: 基礎プログラミング II 第 5 回 「何度も呼び出そう」 (よかったレポート1) ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー iv).プログラム実行結果 pan{c109115}% ./def_combination.rb [~/program] バイキングが始まります!! 人は何人ですか?: 2 ケーキは何個ありますか: 2 2 人がケーキを食べる座る組み合わせは1通りです。 pan{c109115}% ./def_combination.rb [~/program] バイキングが始まります!! 人は何人ですか?: 3 ケーキは何個ありますか: 2 すみません。ケーキが足りません。 pan{c109115}% ./def_combination.rb [~/program] バイキングが始まります!! 人は何人ですか?: 3 ケーキは何個ありますか: 4 3 人がケーキを食べる組み合わせは 4 通りです。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー v).考察 説明の文章と組み合わせが正しく表示されたことから、 プログラムは正しく動いていると考えられる ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 3. 感想 筆記問題に時間がかかりました。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 4. 参考文献など 基礎プログラミング II 第 5 回 「何度も呼び出そう」 西村先生 http://roy/~madoka/2011/r2/05/ 基礎プログラミング I 第9回 16進数・ASCIIコード 神田先生 http://roy/~naoya/ruby/9.html