第2回 なになにといえばこれこれ レポート課題 氏名:齋藤陽香 学籍番号:c1100880 語学クラス:英語6 コース:政策マネジメントコース 感想を送り忘れてしまったのでもう一度送ります。よろしくお願いします。 1. A.色のイメージを hash 配列 image としました。 image の key と value はそれぞれ色とそれから連想されるイメージをとりまし た。 その1:key「赤」に対して value は「太陽」 その2:key「青」に対して value は「海」 その3:key「緑」に対して value は「山」 その4:key「黄」に対して value は「レモン」 その5:key「白」に対して value は「雪」 これに対する Hash の表し方は image["赤"] = "太陽" image["青"] = "海" image["緑"] = "山" image["黄"] = "レモン" image["白"] = "雪" また、もう一つの表し方は、 { "赤" => "太陽" "青" => "海" "緑" => "山" "黄" => "レモン" "白" => "雪" } B. a.0d 2010 = 0x ?? 0dは10進数、0xは16進数。10進数を16進数にするには、10進数で表された数を16 で割る。そして、割ったときの余りを下から読む。 16 ) 2010 … 10 -------- 16 ) 125 … 13 -------- 16 ) 7 … 7 -------- 0 10進数 → 16進数 7 → 7 13 → d 10 → a よって、0d 2010 = 0x 7da b.0d 2010 = 0b ?? 0dは10進数。0bは2進数。 10進数を2進数にするには10進数を2で割れるところまで割る。 そして、割った余りを逆から読む。 2 ) 2010 … 0 ------- 2 ) 1005 … 0 ------- 2 ) 502 … 1 ------- 2 ) 251 … 0 ------- 2 ) 125 … 1 ------- 2 ) 62 … 1 ------- 2 ) 31 … 0 ------- 2 ) 15 … 1 ------- 2 ) 7 … 1 ------- 2 ) 3 … 1 ------- 2 ) 1 … 1 ------- 0 … 1 よって、0d 2010 = 0b 111110110100 2. プログラムD i.考えた設定 他のファイルに入力してあるデータを読み込み、hash 配列に入れて表示させる プログラム。 ii.作成したプログラム 赤 太陽 青 海 黄色 レモン 緑 山 白 雪 オレンジ オレンジ ピンク もも 茶色 木 黒 夜 #!/usr/koeki/bin/ruby $KCODE = 'e' # 文字コードの設定 image = Hash.new # image を hash 配列 とする STDERR.print("色から連想されるものはこれです。\n") open("hash_data.dat","r") do |color| # hash_data.dat を読み込む while line = color.gets if /(\S+.)\s(\S+)/ =~ line # 指定した文字がある行を表示 iro = $1 # 1つめの文字列を iro とする image[iro] = $2 # 2つめの文字列を image[iro] とする end end end for base, association in image # hash 配列で hush_data.dat から # 読み込んだデータを全て並べる printf("%sのイメージは\t%s\n", base, association) # 読み込んで並べたデータを表示 end iii.もとのファイルからの変更点 ・別ファイルの作成 ・open メソッドの使用 ・入力は求めない ・hash 配列に入っているデータを全て表示させる iv.実行結果 pan{c110088}% ./hash_read.rb [~/Ruby] 色から連想されるものはこれです。 緑 のイメージは 山 白 のイメージは 雪 赤 のイメージは 太陽 茶色 のイメージは 木 ピンク のイメージは もも オレンジのイメージは オレンジ 黒 のイメージは 夜 青 のイメージは 海 黄色 のイメージは レモン v.考察 hash_data.dat に 入力されたデータと実行結果が同じであるから正しいプログ ラムと言える。 3.感想 実際に使われていると思われるもの ・レジ … 商品を読み取ると値段が出てくるから ・券売機 … 希望するものを選択するとその券がでてくるから ・自動販売機 … 希望するジュースを選択するとそれが出てくるから ・ATM … 希望する動作を選択するとその動作ができるから ・WAON … WAON支払を希望すると払うことができるから ・カードリーダー … 登録されたものが入室できるから ・指紋認証 … 登録されたものが認識されてロック等が解けるから 4.参考文献 ・2011年度授業用ページ(神田先生):基礎プログラミングI 正規表現 http://roy/~naoya/ruby/7.html ・2011年度授業用ページ(神田先生):基礎プログラミングI ファイルの入出力 http://roy/~naoya/ruby/8.html ・基礎プログラミングII 西村先生 講義ノート 第2回なになにといえばこれこ れ 「あるかないか」 http://roy/~madoka/2010/r2/02/02_04_theme_03_existornot.html ・基礎プログラミングII 西村先生 講義ノート 第2回なになにといえばこれこ れ 「Hash の対を表示するには」 http://roy/~madoka/2010/r2/02/02_07_theme_06_forprint.html ・基礎プログラミングII 西村先生 講義ノート 第2回なになにといえばこれこ れ 「対の情報を使って並び換え」 http://roy/~madoka/2010/r2/02/02_08_theme_07_each.html ・共同学習者 菊池綾 ----------------------------------- 東北公益文科大学 公益学部 公益学科 2年 齋藤陽香 c110088@f.koeki-u.ac.jp ----------------------------------- vii.添付