第9回 基礎プログラミング I レポート課題 氏名:渡辺力 学籍番号:c1091520 語学クラス:英語3 コース(系):地域 1、筆記問題 A、 0x13+0x24=0x?? 0xは16進数である。 これを10進数に変換する。 ここでは16進数を10進数に変換した後に計算する。 その様に変換するには位の数に16の累乗をかける。 0x13 1*16**1=16 3*16**0=3 0x13=0d19 0x24 2*16**1=32 4*16**0=4 0x24=0d36 0d19+0d36=0d55 次に求めた10進数の和を16進数に戻す。 10進数から16進数に変換するには商が0になるまで16で割って、その余りの数に 着目する。 55/16=3余り7 3/16=0余り3 16進数と10進数の対応関係は以下のようになっているので、 10進数 16進数 9以前…10進数と同様 10 …A 11 …B 12 …C 13 …D 14 …E 15 …F 16 …10 0d55=0x37 となる。 つまり、0x13+0x24=0x37である。 B、 0x23+0x1e=0x?? まず10進数に変換する。 Aと同様に16進数を10進数に変換してから計算していく。 Aで書いた対応表だと16進数のeは10進数では14である。 0x23 2*16**1=32 3*16**0=3 0x23=0d35 0x1e 1*16**1=16 14*16**0=14 0x1e=0d30 0d35+0d30=0d65 次に求めた10進数の和を16進数に戻す。 Aと同様に計算する。 65/16=4余り1 4/16=0余り4 0d65=0x41となる。 つまり0x23+0x1e=0x37である。 C、 0xaa-0x33=0x?? まず10進数に変換する。 A、Bと同様に16進数を10進数に変換してからに計算していく。 Aで書いた対応表だと16進数のaは10進数では10である。 0xaa 10*16**1=160 10*16**0=10 0x23=0d170 0x33 3*16**1=48 3*16**0=3 0x33=0d51 0d170-0d51=0d119 次に求めた10進数の和を16進数に戻す。 A、Bと同様に計算する。 119/16=7余り7 7/16=0余り7 0d119=0x77となる。 つまり0xaa-0x33=0x77である。 2、プログラム問題 ホームページ http://roy/~c109152/advertise/index.html 実用部門 作成したプログラム #!usr/koeki/bin/ruby print("AKB48のメンバーを表示します。\n") STDERR.print("チーム: ") pattern = STDIN.gets.chomp request = Regrexp.new(pattern,true,"e") open("akb48.dat", "r") do |akb48| while akb48 = akb48.gets if request =~ akb48 if /(\S+)\s+(\S+)\s+/ =~ akb48 print("\t\n") print("検索結果\n") print("\t\n") printf("名前: %s \n", $1) print("\t\n") printf("出身県: %s \n", $2) print("\t\n") end end end end print("どうですか?分かりましたか? \n") 感想 難しかったが友達達と助け合いながらなんとか完成させることが出来た。 参考文献 基礎プログラミングI 第9回 Rubyであそぼ/広告ページの作成 http://roy/~madoka/2010/r1/09/ 共同作成者 池田博哉 藤井駿 布川大地