第5回 基礎プログラミング II レポート課題 氏名:及川 雄寛 学籍番号:c1090302 語学クラス:英語3 コース(系):政策マネジメント 1. A. O=0x4F I=0x49 K=0x4b A=0x41 W=0x57 A=0x41 T=0x54 A=0x41 K=0x4b E=0x45 H=0x48 I= 0x49 R=0x52 O=0x4F まず、それぞれを10進数に書き直す。 O=0x4F 4*16^1=64 I 0x49=16^1*4+16^0*9 =64+9 15*16^0=15 =73 =0d73 64+15=79 A 0x41 4*16^1=64 0d79 1*16^0=1 K 0x4B 4*16^1=64 64+1=65 11*16^0=11 0d65 64+11=75 0d75 W 0x57=16^1*5+16^0*7 T 0x54=16^1*5+16^0*4 =80+7 =80+4 =87 =84 0d87 0d84 E 0x45=16^1*4+16^0*5 H 0x48=16^1*4+16^0*8 =64+5 =64+8 =69 =72 0d69 0d72 R 0x52=16^1*5+16^0*2 =80+2 =82 0d82 10進数で求めたときの合計 0d79+0d73+0d75+0d65+0d87+0d65+0d84+0d65+0d75+0d69+0d72+0d73+0d82+0d79 =0d1043 次に、16進数に直す。 1043/16=65・・・3 65/16=4・・・1 1/16=0・・・1 となる。 実際に直すと、 0x4F+0x49+0x4B+0x41+0x57+0x41+0x54+0x41+0x4B+0x45+0x48+0x49+0x52+0x4F =0x311 16^2*3+16^1*1+16^0*1=785 これは 10進数で求めたときの答えと違うので、等しいとはいえない。考えてみたが、 分からなかったので、何処が違うのか教えいただきたい。 B.毎日の習慣をプログラム風に書き直す。 def breakfast(gohan,natto, nori) gohanを盛る tyoushoku = gohanに natto と nori をかける。 end # 返すものは tyoushoku def drink(mugitya,kori) mugityaをコップにいれる。 nomimono = コップにkoriをいれる。 end # 返すものは nomimono food(1杯, 1パック, 1枚) #朝御飯を作るので呼び出す。 drink(コップ1杯, 2つ) #飲み物を作るので呼び出す。 print("朝御飯ができました!いただきまーす! \n") 2. A. a.考えた設定:組み合わせを求めるプログラム(def_conbination.rb)を作成した。 今回は、4色のボールペンの中から何本かを選んだときの組み合わ せの数を求めるという設定にして、プログラムを作成した。何本 かを決めるときに入力できるようにした。 b.作成したプログラム:def_conbination.rb #!/usr/koeki/bin/ruby def factorial(m) if m == 1 #(m)に1が入力されたときの動作 1 else m * factorial(m-1) #(m)以外の数値が入力され場合の動作 end end def combination(n,m) factorial(n)/(factorial(m)*factorial(n-m)) #公式を1行で表したもの end # ↑この公式を使って計算させる # n! # nCm = --------- # m!(n-m)! print("組み合わせを求めるプログラムです。\n\n") print("4色のボールペンがあります。\n") n = 4 #全体の本数 STDERR.print("何本選びますか?: ") m = gets.to_i #そのうち何本かを入力してもらう printf("\n%dC%dは%dなので、組み合わせの数は%d通りです。 \n",n,m,combination(n,m) ,combination(n,m)) c.元にしたプログラムからの変更点:授業で作成したdef_metabolic.rbをもとに した。変更した点は組み合わせを求めるプログラムなので、公式に則るように プログラム内の計算を設定した。 d.実行結果: pan{c109030}% ./def_conbination.rb [~/Ruby] 組み合わせを求めるプログラムです。 4色のボールペンがあります。 何本選びますか?: 2 4C2は6なので、組み合わせの数は6通りです。 e.考察:プログラムは動いたが、計算が正しいとはいえないので、確認してみる。 pan{c109030}% bc -l [~/Ruby] 4 * 3 * 2 * 1 24 2 *1 2 2 * 2 4 24 / 4 6.00000000000000000000 quit プログラムの計算と答えがあっているので、このプログラムは正しく動 いたといえる。 感想:今回は体調を崩し、こんな遅くに取り組むことになったが、授業の内容は 理解できていたので、良かった。B、C問題は後日提出できればしたいと考 えている。 参考文献:2010年度 後期 基礎プログラミングII 第5回/西村まどか より http://roy/~madoka/2010/r2/05/ 脱メタボリック計画 http://roy/~madoka/2010/r2/05/05_01_theme_01_diet.html ASCIIコード表:http://www9.plala.or.jp/sgwr-t/c_sub/ascii.html 共同学習者:川島 哲