第2回 基礎プログラミング II レポート課題 氏名:佐藤 裕康 学籍番号:c1090911 語学クラス:英語1 コース(系):政策マネジメント 1.A 日本の自動車メーカーの代表的な車を hash 配列 car とした key を メーカー value は 車の名前 その 1: key 「スバル」に対して value は「インプレッサ」 その 2: key 「日産」に対して value は「スカイライン」 その 3: key 「マツダ」に対して value は「RX-7」 その 4: key 「トヨタ」に対して value は「スープラ」 その 5: key 「ホンダ」に対して value は「インテグラ」 その 6: key 「スズキ」に対して value は「カプチーノ」 記法1 car["スバル"] ="インプレッサ" car["日産 "] ="スカイライン" car["マツダ "] ="RX-7" car["トヨタ "] ="スープラ" car["ホンダ "] ="インテグラ" car["スズキ "] ="カプチーノ" 記法2 car{"スバル" => "インプレッサ","日産" => "スカイライン","マツダ" => "RX-7","トヨタ "=> "スープラ","ホンダ"=>"インテグラ","スズキ"=>カプチーノ"} 1.B a. 0d 2010 = 0x ?? 0xは16進数に変換なので、2010を16で割って、余りを下から見て行く。 2010/16 = 125 余り10 125/16 = 7 余り 13 7/16 = 0 余り 7 となるので 7 13 10 と並べることができる。 なので、10と13を16進数に変換すれば答えは0x7daとなる b. 0d 2010 = 0b ?? 0bを2進数に変換する。 2010を2で割って行き、余りが0か1かを下から見る。 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 すると 0b11111011010となります。 右から4けたずつ区切る 0111 1101 1010となります。 7 13 10 13 と 10を16進数にする dとaになるので7daになります。 これはaの答えとあっているので正しいと言える。 2. a.考えた設定 日本のメーカーの代表的な車を表示させる。 b.作成したプログラム #!/usr/koeki/bin/ruby $KCODE ="e" car = Hash.new("登録されていません。") car["スバル"] ="インプレッサ" car["日産 "] ="スカイライン" car["マツダ "] ="RX-7" car["トヨタ "] ="スープラ" car["ホンダ "] ="インテグラ" car["スズキ "] ="カプチーノ" for japan, model in car printf(" %sの代表的な車は %s です。\n", japan, model) end c.元にしたプログラムからの変更点 Hash.newの部分や、printfの部分をこだわりました。 d.プログラムを実行した結果画面 pan{c109091}% ./hash_for.rb [~/Ruby] トヨタ の代表的な車は スープラ です。 日産 の代表的な車は スカイライン です。 マツダ の代表的な車は RX-7 です。 ホンダ の代表的な車は インテグラ です。 スズキ の代表的な車は カプチーノ です。 スバルの代表的な車は インプレッサ です。 pan{c109091}% [~/Ruby] e.導き出された結果の考察 (ここで計算結果が合っているか調べる) 実行して、特に間違った部分は見当たらないので、合っていると言える。 f.参考文献 Hash の対を表示するには http://roy/~madoka/2010/r2/02/02_07_theme_06_forprint.html 3.感想 今回の課題はかなり難しかったけど、無事に分かって表示されたときは感動しま した。 今回のhashについてのプログラムは今後も役にたつと思うので忘れないように気 をつけたいと思います。 ときどき授業についていけなくなったりしたので、今後の授業もしっかり受けよ うと思いました。 4.参考文献 共同学習者 川島 哲 遠藤 孝之 池田 博哉