氏名:宮城晃司 学籍番号:c1101879 語学クラス:中国語3 コース(系):社会福祉コース 1.筆記問題 A.飯屋の特徴をhash配列foodとしました。 foodのkeyとvalueはそれぞれ店名とそのメニューになりました。 key 「すき屋」に対してvalueは「キング牛丼」 key 「幸楽園」に対してvalueは「中華そば」 key 「マクドナルド」に対してvalueは「ビックマック」 key 「かっぱ寿司」に対してvalueは「まぐろ」 これに対するhashの表し方は food["すき屋"] = "キング牛丼" food["幸楽園"] = "中華そば" food["マクドナルド"] = "ビックマック" food["かっぱ寿司"] = "まぐろ" また、もう一つの表し方は { "すき屋" => "キング牛丼", "幸楽園" => "中華そば", "マクドナルド => "ビックマック", "かっぱ寿司" => "まぐろ", B.計算問題 2問目についてはさらに16進数に変換してしよ。 1.1問目は16進数から10進数に変えます。その手順としては問題の数をひたすら16 で割っていきます。 16)_2010 10 16)_125 13 16)_7 7 0 10進数 16進数 10 a 13 d 7 7 よって答えは0d 2010 = 0x7da 2.2問目は10進数から2進数にし、さらに2進数から16進数にします。手順として は、問題の数をひたすら2で割っていき、その出た答えをさらに2で割っていき、 0になったら余った数をしたから読んでいきます。2進数を16進数にするには、前 回出した答えを4桁に区切っていき、それぞれを16進数に変換する。そしてそれ らを合わせると答えがでる。 2)_2010 2)_1005 2)_ 502 2)_ 251 2)_ 125 2)_ 62 2)_ 31 2)_ 15 2)_ 7 2)_ 3 2)_ 1 2)_ 0 逆からいくと11111011010となる。 111 1101 1010となり、111は4桁にならないため0111にする。 0111 1101 1010 ↓ ↓ ↓ 7 d a よって0b7daとなって一致した。 プログラム内容 Aのみをやった。 #!/usr/koeki/bin/ruby $KCODE = 'e' food = Hash.new food["すき屋"] = "キング牛丼" food["幸楽園"] = "中華そば" food["マクドナルド"] = "ビックマック" food["かっぱ寿司"] = "まぐろ" for tenmei,menew in food printf("%sという店では %sというメニューが美味いです!\n" , tenmei, menew) end 実行結果 pan{c110187}% ./hash_for.rb [~/Ruby] マクドナルドという店では ビックマックというメニューが美味いです! 幸楽園という店では 中華そばというメニューが美味いです! すき屋という店では キング牛丼というメニューが美味いです! かっぱ寿司という店では まぐろというメニューが美味いです! 考察 きちんとHashを使って配列の部分とその関係のある語をリンクさせて表示できた。 感想 時間がなかったが何とか終わらせる事ができた。このプログラムを使用してると 考えられるのは、憶測だが切符販売機やなどではないかと思う。やはりプログラ ム作成はとても難しいのでこれからも頑張っていきたい。 参考文献 2011年後期基礎プログラミング II 第 2 回 (なになにといえばこれこれ) 「Hash の対を表示するには」 http://roy/~madoka/2011/r2/02/r2_02_07_theme_06_forprint.html