第 2 回 なになにといえばこれこれ レポート課題 氏名:中川弘樹 学籍番号:c1101649 語学クラス:英語2 コース(系):地域共創 1.筆記問題 A. 調味料「さしすせそ」の特徴を hash 配列 azi としました。 azi の key と value はそれぞれ名前とその味にとりました。 その 1: key 「砂糖」に対して value は「甘い」 その 2: key 「塩」 に対して value は「しょっぱい」 その 3: key 「酢」 に対して value は「すっぱい」 その 4: key 「醤油」に対して value は「しょっぱい」 その 5: key 「味噌」に対して value は「甘じょっぱい」 これに対する Hash の表し方は、 azi["砂糖"] = "甘い" azi["塩"] = "しょっぱい" azi["酢"] = "すっぱい" azi["醤油"] = "しょっぱい" azi["味噌"] = "甘じょっぱい" また、もう一つの表し方は、 { "砂糖" => "甘い", "塩" => "しょっぱい", "酢" => "すっぱい", "醤油" => "しょっぱい", "味噌" => "甘じょっぱい" } B. a.0d 2010 = 0x ?? 0d は10進数、0x は16進数。 10進数を16進数に変換する場合は、10進数を割れなくなるまで16で割る。 そして、割った時の余りを逆から読んでいき、10進数に直す。 2010 / 16 = 125 余り10 125 / 16 = 7 余り13 7 / 16 = 0 余り 7 10進数 16進数 7 → 7 13 → d 10 → a よって、0d 2010 = 0x 7da となる。 b.0d 2010 = 0b ?? 0b は2進数なので、10進数を割れなくなるまで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となる。 よって、0d 2010 = 0b 11111011010 となる。 1問目の答えと同じになるか確かめてみる。 2進数を16進数に変換する場合、2進数を1の位から4桁ごとに区切り、 16進数に変換していく。 区切って2桁や3桁になったものは、0 が省略されている。 111 1101 1010 → 0111 1101 1010 2進数 16進数 0111 → 7 1101 → d 1010 → a よって、0b 11111011010 = 0x 7da となり、1問目と答えは同じである と確認できた。 2.プログラム問題 A.◯考えた設定 調味料の名前とその味の対を、全て表示するようにした。 ◯プログラム本体「hash_for.rb」 ---------------------------------------------------------------- #!/usr/koeki/bin/ruby $KCODE = 'e' #文字化け防止 azi = Hash.new # 配列を azi にする azi["砂糖"] = "甘い" azi["塩"] = "しょっぱい" azi["酢"] = "すっぱい" azi["醤油"] = "しょっぱい" azi["味噌"] = "甘じょっぱい" for tyomiryo,mikaku in azi # 全てのものを表示する # for key名, 値 in Hash配列名 printf("%sは %s味ですよ!\n", tyomiryo, mikaku) end ---------------------------------------------------------------- ◯もとにしたプログラムからの変更点 講義で作成した「hash_deta.rb」「hash_pair.rb」をもとにした。 「shop」を「azi」、「list」を「tyomiryo,mikaku」に変更。 ◯実行結果 pan{c110164}% ./hash_for.rb [~/ruby] 醤油は しょっぱい味ですよ! 酢は すっぱい味ですよ! 砂糖は 甘い味ですよ! 味噌は 甘じょっぱい味ですよ! 塩は しょっぱい味ですよ! ◯考察 初めは「for tyomiryo,mikaku in azi」の続きに「.keys」と入力して 実行してみたが、 pan{c110164}% ./hash_for.rb [~/Ruby] 醤油は 味ですよ! 酢は 味ですよ! 砂糖は 味ですよ! 味噌は 味ですよ! 塩は 味ですよ! となり、味が出る部分が表示されなかった。「.keys」を消去して実行 してみると、 pan{c110164}% ./hash_for.rb [~/Ruby] 醤油は しょっぱい味ですよ! 酢は すっぱい味ですよ! 砂糖は 甘い味ですよ! 味噌は 甘じょっぱい味ですよ! 塩は しょっぱい味ですよ! となり、プログラムに入力した通りに実行できた。初めの実行結果は、 key名からしか検索しなかったので、味の部分が表示されなかったのだ と思われる。 感想 以前出していなかったレポートです。だいぶ遅れましたが再提出します。