第2回 なになにといえばこれこれ レポート課題 氏名: 進藤 江莉亜 学籍番号: c1101193 語学クラス: 英語2 コース(系): 環境コース 1A.指の特徴をhash配列yubiとした。 yubiのkeyとyubiのvalueはそれぞれ指の呼称とその指の特徴とした。 その 1: key「親指」に対して value「サムズアップ」 その 2: key「人差し指」に対して value「人をさす」 その 3: key「中指」に対して value「一番高い」 その 4: key「薬指」に対して value「紅さし」 その 5: key「小指」に対して value「指切り」 これに対応するhashの表し方は yubi["親指"] = "サムズアップ" yubi["人差し指"] = "人をさす" yubi["中指"] = "一番長い" yubi["薬指"] = "紅さし" yubi["小指"] = "指切り" また、もう一つの表し方は yubi = { "親指" => "サムズアップ", "人差し指" => "人をさす", "中指" => "一番長い", "薬指" => "紅さし", "小指" => "指切り", } となる。 1Ba.0d2010=0x7da 16)2010 10 2010から16ずつ割ります。 ----- 余りは左に書き、0になるまでつづけます。 16)125 13 ----- 16) 7 7 ----- 0 8,13,10を16進数にすると 7daとなります。 1Bb.0d2010=0b11111011010,0x7da 2)2010 0 2010から2ずつ割ります。 ----- 余りは左に書き、なければ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 ----- 2) 1 1 ----- 0 余りの数字を下から順に記します。 すると 11111011010となります。 これを16進数にすると 0b11111011010 0b 111 1101 1010 7 d a 0d2010=0x7da となります。 2. a.考えた設定 知りたい指の呼称を入力してもらい、その指に関することを表示する設定を考え た。 b. #!/usr/koeki/bin/ruby $KCDE = 'e' #日本語コードで出力 yubi = Hash.new #Hashをyubiとする yubi["親指"] = "「サムズアップ」の" yubi["人差し指"] = "「人をさす」" yubi["中指"] = "「一番長い」" yubi["薬指"] = "「紅さし」の" yubi["小指"] = "「指切り」の" print("どの指について知りたいですか?\n") print("親指\n人差し指\n中指\n薬指\n小指\n") STDERR.print("知りたい指の呼称を入力して下さい:") #入力させる kosho = gets.chomp #入力された文字を読みこませる if yubi.key?(kosho) == false #入力されたものにkeyがあるか調べ、なかったらprintを表示する print("それは教えられません\n上記から選んで下さい\n") else #上記に当てはまらなかったら printf("%sは、%s指です。\n",kosho, yubi[kosho]) end #ifの終わり c. もとにしたプログラムは授業で行ったhash_add.rbや hash_item.rbを参考にした。 d. pan{c110119}% ./hash_choice.rb [~/Ruby] どの指について知りたいですか? 親指 人差し指 中指 薬指 小指 知りたい指の呼称を入力して下さい:親指 親指 は、「サムズアップ」の 指です。 pan{c110119}% ./hash_choice.rb [~/Ruby] どの指について知りたいですか? 親指 人差し指 中指 薬指 小指 知りたい指の呼称を入力して下さい:人差し指 人差し指 は、「人をさす」 指です。 pan{c110119}% ./hash_choice.rb [~/Ruby] どの指について知りたいですか? 親指 人差し指 中指 薬指 小指 知りたい指の呼称を入力して下さい:中指 中指は、「一番長い」指です。 pan{c110119}% ./hash_choice.rb どの指について知りたいですか? 親指 人差し指 中指 薬指 小指 知りたい指の呼称を入力して下さい:薬指 薬指は、「紅さし」の指です。 pan{c110119}% ./hash_choice.rb [~/Ruby] どの指について知りたいですか? 親指 人差し指 中指 薬指 小指 知りたい指の呼称を入力して下さい:小指 小指は、「指切り」の指です。 間違えた場合 pan{c110119}% ./hash_choice.rb [~/Ruby] どの指について知りたいですか? 親指 人差し指 中指 薬指 小指 知りたい指の呼称を入力して下さい:指 それは教えられません 上記から選んで下さい e.考察 自分が思い描いていたプログラムと同じだった。 入力した指の呼称の特徴をちゃんとできていたし、間違えた場合の文章もきちん と表示された。 参考文献 基礎プログラミング II 第 2 回 (なになにといえばこれこれ) 「入力したデー タを取り出そう」 西村まどか http://roy/~madoka/2011/r2/02/r2_02_03_theme_02_hash_input.html 基礎プログラミング II 第 2 回 (なになにといえばこれこれ) 「あるかないか」 西村まどか http://roy/~madoka/2011/r2/02/r2_02_04_theme_03_existornot.html 基礎プログラミング II 第 2 回 (なになにといえばこれこれ) 「対にないもの が呼び出されたとき」 西村まどか http://roy/~madoka/2011/r2/02/r2_02_05_theme_04_default.html