第 5 回 何度も呼び出そう レポート課題 氏名:中川弘樹 学籍番号:c1101649 語学クラス:英語2 コース(系):地域共創 1. A nakagawa hiroki これを ASCII コード表見ながら直していく。横にある数字と縦にある数字と 文字を組み合わせて 0x xx のように表現する。xx のところに組み合わせたも のが入る。y は 横にある数字で 7 のところにある。縦は 9のところにある。こ れを組み合わせ 0x 79 となる。ほかのアルファベットも同じように直していく。 n =0x 6e a =0x 61 k =0x 6b a =0x 61 g =0x 67 a =0x 61 w =0x 77 a =0x 61 h =0x 68 i =0x 69 r =0x 72 o =0x 6f k =0x 6b i =0x 69 b = 11 e = 14 f = 15 0x6 14 =6*16^1+14*16^0 = 110 0x61 =6*16^1+1*16^0 = 97 0x6 11 =6*16^1+11*16^0 = 111 0x61 =6*16^1+1*16^0 = 97 0x67 =6*16^1+7*16^0 = 103 0x61 =6*16^1+1*16^0 = 97 0x77 =6*16^1+7*16^0 = 119 0x61 =6*16^1+1*16^0 = 97 0x68 = 6*16^1+8*16^0 = 104 0x69 = 6*16^1+9*16^0 = 105 0x72 = 7*16^1+2*16^0 = 114 0x6 15 = 6*16^1+15*16^0 = 111 0x6 11 = 6*16^1+11*16^0 = 107 0x69 = 6*16^1+9*16^0 = 105 110 + 97 + 111 + 97 + 103 + 97 + 119 + 97 + 104 + 105 + 114 + 111 + 107 +105 = 1477 1477を16進数にするため16で割る 16)1477 ----- 16) 92 3 ----- 16) 5 8 ----- 16) 0 4 下から読んで 483 になる。よって 16 進数で表すと 0x483 になる。 全部足すと 10 進数は 1477 になり、16 進数は 0x483 になった。 0d1477 = 0x483 16 進数と 10 進数で計算した結果同じになったので計算はあっていることが確 認できた。 1.B 釣りに関するものを作ってみた。 def fishing(line, lure, cast) line をロッドに通す。 lure を選んでどのルアーにするか決める。 tackle = line に lure を付ける。 tackle = tackle を cast する。 end # 返すものはtackle : fish(1本, 1個, 1回) # 釣りをするので呼び出す。 print("大物がくるといいな...\n") 2.プログラム問題 Aを実行した a)考えた設定 10個の物から5個選んだときの組合せを求めるプログラムである。 b)作成したプログラム #!/usr/koeki/bin/ruby def combi (x) if x == 1 1 else x * combi(x-1) end end all = 10 choice = 5 result = all - choice printf("%d 個の物から %d 個取る組合せは...?\n", all, choice) sleep 1 printf("%d 通りです。\n", combi(all)/(combi(choice)*combi(result))) c)プログラムを実行した結果画面 pan{c110164}% ./def_combination.rb [~/ruby] 10 個の物から 5 個取る組合せは...? 252 通りです。 d)導き出された結果の考察 a個の物からb個取る組合せは、 a!/b!(a-b)! の公式である。 これに今回の変数を代入して、 10!/5!(10-5)! = 10*9*8*7*6*5*4*3*2*1 / 5*4*3*2*1*5*4*3*2*1 となる。 これを kterm で計算すると、 pan{c110164}% bc -l [~/ruby] 10*9*8*7*6*5*4*3*2*1/(5*4*3*2*1*5*4*3*2*1) 252.00000000000000000000 quit となったので正しいと言える。 3.感想 歩くおもちゃがあると思う。歩くという行動は右足を前に出し、次に左足を前に 出しまた右足を前に出すの繰り返しなので機械的に、繰り返していると思う。 16進数を計算するのに時間がかかった。今回のプログラムもなんとか一人で時間 を掛けながら作ることが出来たので良かった。これからも頑張りたい。