第 2 回 なになにといえばこれこれ レポート課題 氏名:羽田圭介 学籍番号:c1101690 語学クラス:英語2 コース(系):地域共創コース 1.筆記問題 A.1:key「イチロー」に対してvalueは 「シアトル・マリナーズ」 2:key「松井秀喜」 に対してvalueは 「オークランド・アスレチックス」 3:key「松阪大輔」 に対してvalueは 「ボストン・レッドソックス」 4:key「高橋尚成」に対してvalueは 「ロサンゼルス・エンジェルス」 5:key「西岡剛」に対してvalueは 「ミネソタ・ツインズ」 sensyu["イチロー"]="シアトル・マリナーズ" sensyu["松井秀喜"]="オークランド・アスレチックス" sensyu["松阪大輔"]="ボストン・レッドソックス" sensyu["高橋尚成"]="ロサンゼルス・エンジェルス" sensyu["西岡剛"]="ミネソタ・ツインズ" B. a. 0d 2010 = 0x ?? 0dは10進数で0xは16進数です。10進数を16進数にするには、16で割り出 た商を16で割って、余りを下から順に並べる。 2010 / 16 = 125 余り 10 125 / 16 = 7 余り 13 7 / 16 = 0 余り 7 これを下から順に並べる。 7 13 10 これを16進数の表記に直していくと、 7 = 7、 13 = d、 10 = a よって、 0d 2010 = 0x7da となる。 b.0d 2010 = 0b ?? 0dは10進数、0bは2進数である。10進数を2進数にするためには2で割る。 2010 / 2 = 1005 余り 0 1005 / 2 = 502 余り 1 502 / 2 = 251 余り 0 251 / 2 = 125 余り 1 125 / 2 = 62 余り 1 62 / 2 = 31 余り 0 31 / 2 = 15 余り 1 15 / 2 = 7 余り 1 7 / 2 = 3 余り 1 3 / 2 = 1 余り 1 1 / 2 = 0 余り 1 これを下から順に並べる。 11111011010 となります。0x2010 = 0b11111011010 0b11111011010を16進数に変換する。2進数を16進数にするには 2進数を下から4桁ずつに区切って、その数字ごとに10進数に変換する。 0111/1101/1010 0111=0*2の3乗 + 1*2の2乗 + 1*2の1乗 + 1*2の0乗 =0+4+2+1 =7 1101=1*2の3乗 + 1*2の2乗 + 0*2の1乗 + 1*2の0乗 =8+4+0+1 =13 1010=1*2の3乗 + 0*2の2乗 + 1*2の1乗 + 0*2の0乗 =8+0+2+0 =10 以上の計算から0x7daとなる。これは1問目と同じ答えになることから正しいと言 える。 2.プログラム #!/usr/koeki/bin/ruby $KCODE = 'e' sensyu = Hash.new sensyu["イチロー"] = "シアトル・マリナーズ" sensyu["松井秀喜"] = "オークランド・アスレチックス" sensyu["松阪大輔"] = "ボストン・レッドソックス" sensyu["高橋尚成"] = "ロサンゼルス・エンジェルス" sensyu["西岡剛"] = "ミネソタ・ツインズ" for major,yakyu in sensyu printf("%s の所属球団は「%s」です。\n", major, yakyu) end プログラムの説明 sensyu = Hasu.newとしてHash配列をsensyuとする。 for-endを使う。[for キー名,値 in ハッシュ配列] プログラムの実行結果 pan{c110169}% ./hash_for.rb [~/Ruby] 高橋尚成 の所属球団は「ロサンゼルス・エンジェルス」です。 松阪大輔 の所属球団は「ボストン・レッドソックス」です。 イチロー の所属球団は「シアトル・マリナーズ」です。 西岡剛 の所属球団は「ミネソタ・ツインズ」です。 松井秀喜 の所属球団は「オークランド・アスレチックス」です。 3.感想 今回のレポートは授業でやったことだったのでしっかりできていたと思う。 しかしプログラムの説明がまだうまくできていないと思うのでしっかり復習 して、説明までうまくできるようになりたいと思う。 4.参考文献 基礎プログラミングII 第2回 なになにといえばこれこれのページ 共同作成者 千葉倫之 水口天地