第5回 基礎プログラミング II レポート課題 氏名:伊藤 彩 学籍番号:c1090207 語学クラス:中国語 コース(系):政策 1. A. 私の名前をアルファベットで大文字に直すと ITO AYA となる。 これを前期で習った ASCII コード表を用いて調べたら、以下のようになった。 I = 0x49 T = 0x54 O = 0x4f A = 0x41 Y = 0x59 A = 0x41 ここで出た16進数を全て足していく。 0x49=4*16^1+9*16^0=73 0x54=5*16^1+4*16^0=84 0x4f=4*16^1+15*16^0=79 0x41=4*16^1+1*16^0=65 0x59=5*16^1+9*16^0=89 0x41=4*16^1+1*16^0=65 73+84+79+65+89+65=455 455/2=227 余り 1 227/2=113 余り 1 113/2=56 余り 1 56/2=28 余り 0 28/2=14 余り 0 14/2=7 余り 0 7/2=3 余り 1 3/2=1 余り 1 1/2=0 余り 1 したから読んで111000111になる。 これを16進数に直すために右から4つに区切って 1 1100 0111 これを16進数に直す。 1*2^0=1 1*2^3=8 1*2^2=4 0*2^1=0 0*2^0=0 8+4+0+0=12 0*2^3=0 1*2^2=4 1*2^1=2 1*2^0=1 0+4+2+1=7 0x1c7 この計算があっているか確かめるため10進数の455を16で割っていく。 455/16=28 余り 7 28/16=1 余り 12 1/16=0 余り 1 12=c これを下から読んで0x1c7 10進数から16進数に直したときと16進数の足した答えが同じなのでこの計算は あっているといえる。 B. def morning(kaoarau, kigae,gohan) # 朝すること kaoarau = 顏を洗う kigae = 着替える gohan = 朝ご飯を食べる end def noon(gohan, jyugyo, kaiwa) # 午後すること gohan = お昼ご飯を食べる jyugyo = 授業に出る kaiwa = おしゃべりする end def night(gohan, furo, neru) gohan = 夕飯を食べる furo = お風呂に入る neru = 寝る end morning(2 分, 5 分, 20 分) # 朝の一連の行動時間 noon(20 分, 90 分, 60 分) # 昼の一連の行動時間 night(20 分, 60 分, 6 時間) # 夜の一連の行動時間 2. A. a.設定 鞄の中から、教科書を取ったときに何パターンあるか求めるプログラムを考えた。 b.作成したプログラム #!/usr/koeki/bin/ruby def factorial(m) # 階乗を求める関数 if m == 1 # 1ならば1を返す return 1 else m * factorial(m - 1) # 他の数字の場合の実行文 end end def kumiawase(r,l) factorial(r)/(factorial(l)*factorial(r-l)) end STDERR.print("鞄の中から教科書を取る組み合わせを求めます。\n") STDERR.print("鞄の中には6冊の教科書が入っています。\n") STDERR.print("何冊とりますか?\n") kazu = gets.to_i kaban = 6 printf("%d 冊とったとき %d 通りのパターンがあります。\n",kazu, kumiawase(kaban,kazu)) c.もとにしたプログラムからの変更点 先輩のプログラムをもととした。 メソット名を kumiawase にした。 d.実行結果 pan{c109020}% ./def_combination.rb [~/Ruby] 鞄の中から教科書を取る組み合わせを求めます。 鞄の中には6冊の教科書が入っています。 何冊とりますか? 3 3 冊とったとき 20 通りのパターンがあります。 e.結果の考察 プログラムが正しいか確かめるために bc -l で確かめ算を行なった。 pan{c109020}% bc -l [~/Ruby] (6*5*4*3*2*1)/(3*2*1*3*2*1) 20.00000000000000000000 quit 以上の結果から、このプログラムは正しく機能したといえる。 感想 機械的な操作を繰り返すものは、洗濯機だと思いました。洗い、すすぎ、脱水を 繰り返して洗濯するからです。 体調不良で通院と療養の繰り返しで授業に出ることができませんでした。でも、 課題は、横山君のおかげでプログラム内容を理解することができ、レポートも無 事書くことができました。体調管理をしっかりして体も授業も大切にしたいです。 参考文献 ・http://www.asahi-net.or.jp/~ax2s-kmtn/ref/bdh.html 2進数、16進数と10進数 作成者不明 ・http://roy/~madoka/2009/r2/05/rpt/c108069.txt 2009年度 基礎プログラミング II 第05回 「何度も呼び出そう」 レポート評価 最後まで解けた学生 その7 レポート作成者不明 ・http://roy/~madoka/2010/r2/05/05_07_theme_05_factorial.html 基礎プログラミング II 第 5回 「何度も呼び出そう」 階乗計算 (講義ノート) 西村まどか先生 共同学習者 横山 広樹