第3回 基礎プログラミング II レポート課題 氏名:酒井信市郎 学籍番号:c1090733 語学クラス:英語1 コース(系):政策 -------------------------------------------------------------------------------- 1、A SAKAI SHINICHIRO をASCII文字コード表を使って調べました。 S = 0x53 = 0d83 A = 0x41 = 0d65 K = 0x4b = 0d75 A = 0x41 = 0d65 I = 0x49 = 0d73 S = 0x53 = 0d83 H = 0x48 = 0d72 I = 0x49 = 0d73 N = 0x4e = 0d78 I = 0x49 = 0d73 C = 0x43 = 0d67 H = 0x48 = 0d72 I = 0x49 = 0d73 R = 0x52 = 0d82 O = 0x4f = 0d79 16進数から10進数に変換 0x53 = 5 * 16^1 + 3 * 16^0 = 80 + 3 = 83 0x41 = 4 * 16^1 + 1 * 16^0 = 64 + 1 = 65 0x49 = 4 * 16^1 + 9 * 16^0 = 64 + 9 = 73 0x4b = 4 * 16^1 + 11 * 16^0 = 64 + 11 = 75 0x48 = 4 * 16^1 + 8 * 16^0 = 64 + 8 = 72 0x4e = 4 * 16^1 + 14 *16^0 = 64 + 14 = 78 0x43 = 4 * 16^1 + 3 * 16^0 = 64 + 3 = 67 0x52 = 5 * 16^1 + 2 * 16^0 = 80 + 2 = 82 0x4f = 4 * 16^1 + 15 * 16^0 = 64 + 15 = 79 B. すもももももももものうち 李も桃も桃のうち 李も腿ももものうち 酢も桃も桃も藻のうち c. 1 keyは 「ピザハット」 valueは「"ピザ",1500,"宅配"」 2 keyは 「カッパ寿司」 valueは「"寿司",100,"店内飲食"」 3 keyは 「モスバーガー」valueは「"ハンバーガー",500,"店内飲食"」 4 keyは 「くるまや」 valueは「"ラーメン",700,"店内飲食"」 5 keyは 「ほっともっと」valueは「"弁当",400,"持ち帰り"」 配列の表し方 car["ピザハット"] = ["ピザ",1500,"宅配"] car["カッパ寿司"] = ["寿司",100,"店内飲食",] car["モスバーガー"] = ["ハンバーガー",500,”店内飲食"] car["くるまや"] = ["ラーメン",700,"店内飲食"] car["ほっともっと"] = ["弁当",400,"持ち帰り"] もう一つの表し方 {"ピザハット" => ["ピザ",1500,"宅配"],"カッパ寿司" => ["寿司",100,"店内 飲食"],"モスバーガー" => ["ハンバーガー",500,”店内飲食"],"くるまや" => ["ラーメン",700,"店内飲食"],"ほっともっと" => ["弁当",400,"持ち帰り"] 2、プログラム問題 A <作成プログラム> #!/usr/koeki/bin/ruby $KCODE = 'e' mise = Hash.new print(":飲食店:\n\n") mise["ピザハット"] = "ピザ", 1500, "宅配" mise["カッパ寿司"] = "寿司", 100, "店内飲食" mise["モスバーガー"] = "ハンバーガー", 500, "店内飲食" mise["くるまや"] = "ラーメン", 700, "店内飲食" mise["ほっともっと"] = "弁当", 400, "持ち帰り" for name, eat in mise printf("%sの商品は%sで、価格は%s円、%sです。\n\n", name, eat[0], eat[1], eat[2]) end <実行結果> pan{c109073}% ./hash_ary_print.rb [~/Ruby] :飲食店: ピザハットの商品はピザで、価格は1500円、宅配です。 くるまやの商品はラーメンで、価格は700円、店内飲食です。 カッパ寿司の商品は寿司で、価格は100円、店内飲食です。 ほっともっとの商品は弁当で、価格は400円、持ち帰りです。 モスバーガーの商品はハンバーガーで、価格は500円、店内飲食です。 <考察> 講義内容を参考に正しく表示されるプログラムが出来ました。 B <作成プログラム> #!/usr/koeki/bin/ruby $KCODE = 'e' mise = Hash.new print("飲食店\n\n") mise["ピザハット"] = "ピザ", 1500, "宅配" mise["カッパ寿司"] = "寿司", 100, "店内飲食" mise["モスバーガー"] = "ハンバーガー", 500, "店内飲食" mise["くるまや"] = "ラーメン", 700, "店内飲食" mise["ほっともっと"] = "弁当", 400, "持ち帰り" for name, eat in mise #for キー名, 値, hash名 printf("%sの商品は%sで、%sです。\n\n", name, eat[0], eat[1], eat[2]) end print("\n価格順\n") mise.keys.sort{|name,kane| mise[name][1] <=> mise[kane][1] }.each{|retail| printf("%s\t %5d [円]\n", retail, mise[retail][1])} <実行結果> pan{c109073}% ./hash_ary_sort.rb [~/Ruby] 飲食店 ピザハットの商品はピザで、1500です。 くるまやの商品はラーメンで、700です。 カッパ寿司の商品は寿司で、100です。 ほっともっとの商品は弁当で、400です。 モスバーガーの商品はハンバーガーで、500です。 価格順 カッパ寿司 100 [円] ほっともっと 400 [円] モスバーガー 500 [円] くるまや 700 [円] ピザハット 1500 [円] <考察> 価格の安い順に並べ替えることができた。 並べ替えをするときはsortを使うと出来ることが確認出来ました。 3. 感想 桃太郎の犬と猿とキジが仲間になっていく所は繰り返しで物語が続いていると思 いました。 4. 参考文献 http://roy/~madoka/2010/r2/03/ 基礎プログラミング II 第3回 情報の構造を分析しよう 西村まどか著