第 5 回 何度も呼び出そう レポート課題 氏名:上林千尋 学籍番号:c1100638 語学クラス:英語 コース(系):地域共創コース 1.筆記問題 A 第3回のレポートより、 私の名前(kanbayashichihiro)を16進数に変換すると、 k 0x6b a 0x61 n 0x6e b 0x62 a 0x61 y 0x79 a 0x61 s 0x73 h 0x68 i 0x69 c 0x63 h 0x68 i 0x69 h 0x68 i 0x69 r 0x72 o 0x6f となった。 これを10進数に変換する。 変換や計算をするときは「0x」を外して考える。 たとえば0x6bを10進数に変換する場合は、6bとして計算する。 6に16をかけて96 bは11なので11に1をかけて11 最後に96と11をたすと107になるので 0x6bの10進数は107となる。 このようにして全ての文字の16進数を10進数に変換すると k 107 a 97 n 110 b 98 a 97 y 121 a 97 s 115 h 104 i 105 c 99 h 104 i 105 h 104 i 105 r 114 o 111 となった。 これらの数字を全て足すと1485となった。 確かめ計算 pan{KAMBAYASHI Chihiro}% bc -l [~] 107+97+110+98+97+121+97+115+104+105+104+105+114+111 1485 確かめ計算と合致しました。 B 犬のエサを準備する手順を書き直しました def dish(gohan, water, dogfood) gohan をいれる water をいれる dogfood をいれる dish = gohan に water をかける dish = dish に dogfood をかける end # defおわり dish(100 g, 50 g, 20g) #犬のエサを作るので呼び出す print"おたべ!\n" 2.プログラム問題 A 考えた設定 養豚場で飼育している豚の中から出荷される豚の組合せを求めるプログラム 授業で作ったdef_factorial.rbのプログラムをもとにして作りました。 作ったプログラム #!/usr/koeki/bin/ruby def factorial(b) #メゾット。bはbutaのb if b == 1 1 #bが1だった場合 else b * factorial(b-1) #bが1以外だった場合 end end #factorialの定義終わり def shukka(a,b) factorial(a) / (factorial(b) * factorial(a-b)) #選出する計算式 end #def終わり print"育生中の豚から、出荷する豚の組合せを選出します。\n" STDERR.print("出荷できる豚の数(匹):") allbuta = gets.to_i STDERR.print("出荷する豚の数(匹)") syukkabuta = gets.to_i printf("%d匹選んだときの組合せは%d通りです。\n",syukkabuta , shukka(allbuta,syukkabuta)) 実行結果 pan{c110063}% ./def_combination.rb [~/Ruby] 育生中の豚から、出荷する豚の組合せを選出します。 豚の数(匹):5 出荷する豚の数(匹)2 2匹選んだときの組合せは10通りです。 考察 5匹の豚から2匹の豚を選出する計算を計算式で表すと、 5 C 2 = 5 * 4 / 2 * 1 となる。 bc-lを使って確かめ算をすると pan{c110063}% bc -l [~/Ruby] 5*4 20 2*1 2 20/2 10.00000000000000000000 と出るので、プログラムが算出した数字は正しい。 3.感想 機械的な操作を繰り返すものを、ゲームセンターにあるボタン式のクレーンゲームで考 えました。 1 指定されたお金(大抵が100円または200円)を入れると、アームをうごかせる ようになります。 2 左右にうごかすボタンでアームを左右に動かします 3 次に奥に動かすボタンでアームを奥に動かします。 4 手を放すと、アームのツメが開きます 5 ツメが開いた状態でアームが下に下ります。 6 おりきったところでツメが閉じ、景品を掴みます。 7 ツメが閉じた状態で、アームが上にあがります 8 そのまま前にいきます。 9 景品取り出し口の方向へ、アームが動きます。 取り出し口が左側ならば左、右側ならば右へ動きます 10 アームの爪が開きます。景品を掴んだ状態であれば景品が取り出し口に落 下します。 私がよく好んでするクレーンゲームにもプログラムが使われていることに気付 き、身近なところに今勉強しているプログラムが応用されていると思うと面白 いなと思いました。 4.参考文献 http://roy/~madoka/2011/r2/05/lec/resume.html 基礎プログラミング II 第 5 回 「何度も呼び出そう」 講義ノート 西村まどか先生 協同学習者 吉住貴則