第 2 回 なになにといえばこれこれ レポート課題 氏名:薮田大樹 学籍番号:c1101916 語学クラス:中国語3 コース(系):地域共創コース 1、筆記問題 (A) 食べ物の特徴を hash 配列 food としました。 food の key と value はそれぞれ食品名とその味にとりました。 その 1: key 「塩」に対して valueは「しょっぱい」 その 2: key 「砂糖」に対して valueは「あまい」 その 3: key 「わさび」に対して valueは「からい」 その 4: key 「青汁」に対して valueは「にがい」 その 2: key 「うめぼし」に対して valueは「すっぱい」 これに対応する Hash の表し方は food["塩"] = "しょっぱい" food["砂糖"] = "あまーい" food["わさび"] = "からい" food["青汁"] = "にがい" food["うめぼし"] = "すっぱい" また、もう一つの表し方は {"塩" => "しょっぱい", {"砂糖" => "あまい", {"わさび" => "からい", {"青汁" => "にがい", {"うめぼし" => "すっぱい", となります。 (B) a:解答 0d 2010 = 0x7da 途中計算 16)2010 10...a ---- 16) 125 13...d ---- 16) 7 7 ---- 0 b:解答 0d 2010 = 0b11111011010 途中計算 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 ---- 2) 1 1 ---- 0 b2:解答 7da 途中計算 11111011010を四桁ごとに区切る。 四桁にならない場合は、左に0を補う。 0111 1101 1010 これを16進数に変換する。 0111は「7」 1101は「d」 1010は「a」になる。 2、プログラム問題 a)key, value の組み合わせを printf 文を使って表示せよ。 とのことだったので、今回はメニューから食品を選択し 金額を表示するプログラムを作ろうと思った。電子メニューのような。 b)[作成したプログラム] #!/usr/koeki/bin/ruby $KCODE = 'e' # 漢字コードをEUCに指定 item = Hash.new # 新しいハッシュの生成 print(" [MENU] [カレー] [ラーメン] [牛丼] [寿司] [ハンバーグ]\n")#メニュー名を表示 item["カレー"] = "500" item["ラーメン"] = "350" item["牛丼"] = "280" item["寿司"] = "1000" item["ハンバーグ"] = "800" STDERR.print("食べたい食べ物は?: ") aji = gets.chomp menu = item[aji] printf("%s は%d円です。\n",aji ,menu ) #入力された食品がある場合に表示 if item.key?(aji) == false #品物があるかないかを判定する printf("%s はお店にはありません\n", aji ) #上記で判定して食品がない場合に表示 else end [実行結果] メニューがあったパターン [MENU] [カレー] [ラーメン] [牛丼] [寿司] [ハンバーグ] 食べたい食べ物は?: 寿司 寿司 は1000円です。 メニューが無かったパターン [MENU] [カレー] [ラーメン] [牛丼] [寿司] [ハンバーグ] 食べたい食べ物は?: ステーキ ステーキ は0円です。 ステーキ はお店にはありません c)このプログラムは、まだまだメニューの数が少なく バラエティも薄い。外部で作ったデータを読み込むプログラムに すれば、もっと使いやすく実用化出来るのではと感じた。 3、感想 今回は筆記問題の二問が難しく、神田先生のページを見つつ してしまったので、今一度進数について復習しておきたい。 プログラムについても、外部データを読み込むなどの 改良や工夫が更に出来ると思うので次回に向けて予習しておきたい。 全体的にHashは難しいイメージを受けた。 4、参考文献 [神田直弥先生] 授業用ページ 基礎プログラミングI第9回 http://roy/~naoya/ruby/9.html [西村まどか先生] 基礎プログラミング II 第 2 回 「なになにといえばこれこれ」 http://roy/~madoka/2011/r2/02/ 共同学習者[樋口貴士]