第 2 回 なになにといえばこれこれ レポート課題 氏名:照井さつき 学籍番号:C1101589 語学クラス:中国語3 コース(系):政策マネジメント 間違った部分があったため、再度提出させていただきます。 ========= 1A.四字熟語を hash 配列 yoji として、 key は前2文字、value は後2文字からとりました。 その1、key「歳月」に対して、value「不待」 その2、key「明朗」に対して、value「快活」 その3、key「馬鹿」に対して、value「正直」 その4、key「急転」に対して、value「直下」 その5、key「永遠」に対して、value「無窮」 これに対する Hash の表し方は yoji["歳月"]="不待" yoji["明朗"]="快活" yoji["馬鹿"]="正直" yoji["急転"]="直下" yoji["永遠"]="無窮" また、もう一つの表し方は {"歳月" =>不待, "明朗" =>快活, "馬鹿" =>正直, "急転" =>直下, "永遠" =>無窮} ---------- 1B. a.0d 2010 = 0x ?? 0dは10進数であり、0xは16進数である。 10進数 を 16進数 にするには 10進数 を限界まで 16 で割り、 余りを下から順に並べ 16進数 表記に当てはめることで出来る。 2010 / 16 = 125…10 125 / 16 = 7…13 7 / 16 =0…7 7 = 7、13 = d、10 =a よって、0d2010 = 0x7da b-1.0d 2010 = 0b ?? 0bは二進数であることを表しており、10進数を2進数直すには 10進数 を限界まで 2 で割り、 余りを下から順に並べ 2進数 表記に当てはめることで出来る。 2)2010 0 ----- 2)1005 1 ----- 2) 502 0 ----- 2) 251 1 ----- 2) 125 1 ----- 2) 62 0 ----- 2) 31 1 ----- 2) 15 1 ----- 2) 7 1 ----- 2) 3 1 ----- 1 よって0d2010 = 0b11111011010 b-2.0b 11111011010 = 0x ?? 2進数を16進数にするには、2進数を下から4桁ずつに区切って、 その数字ごとに16進数に変換する。先頭が3文字だった場合は 省略されている0を前に付ける。 0111 1101 1010 = 7 d a よって 0b11111011010 = 0x7da となる。 ===プログラム問題===== 2B.hash_coice.rb a,考えた設定 あらかじめプログラムに登録してある対から、ユーザが知りたい 情報だけを結果表示するプログラム。 b,作成したプログラム #!/usr/koeki/bin/ruby $KCODE = 'e' #EUCに文字コードを指定、文字化け予防 yoji = Hash.new #Hash配列をyojiとする。 yoji["歳月"]="不待" yoji["明朗"]="快活" yoji["馬鹿"]="正直" yoji["急転"]="直下" yoji["永遠"]="無窮" #p yoji print("四字熟語の前2文字を入力して下さい。\n") STDERR.print("最初の2文字: ") mae = gets.chomp #入力を要求し、入力された文字をmaeに代入 if yoji.key?(mae) == false #入力されたものがmae内に無かった場合 printf("%sは、ありません\n",mae) else #上記の条件以外(maeに入っているもの) printf("%sの後の2文字は、%sです。\n",mae,yoji[mae]) end #if,elseの終わり c,もとにしたプログラムからの変更点 なし d,プログラムを実行した結果画面 (入力された文字が、hash内にあった場合) pan{TERUI Satsuki}% ./hash_choice.rb [~/Ruby] 四字熟語の前2文字を入力して下さい。 最初の2文字: 歳月 歳月の後の2文字は、不待です。 (入力された文字が、hash内になかった場合) pan{c110158}% ./hash_choice.rb [~/Ruby] 四字熟語の前2文字を入力して下さい。 最初の2文字: なんか なんかは、ありません e,導き出された結果の考察 実行した際、プログラム通りに表示された。 Hash内に入っていない文字を打ち込んだ場合も、 falseで指示した内容が表示されたので、このプログラムは正しいといえる。 ====== 3.感想、実際に使われていると思われるもの 今回の講義内で理解仕切ることができなかった。 次回の講義はきちんと理解して講義を終えられるようにしたい。 hash(初期値)の応用部分が理解できていなかったので、 次回の講義迄には理解しておきたい。 実際に使われていると思われるものは、youtube等の動画サイトの検索バーな どだと思った。理由は、入力された文字をkeyとし、それを含む文字をvalueとして いると思ったためである。 ====== 参考文献 基礎プログラミング II 第2回 なになにといえばこれこれ 西村 まどか http://roy/~madoka/2011/r2/02/