第 3 回 情報の構造を分析しよう レポート課題 氏名:五十嵐兼一 学籍番号:c1100153 語学クラス:英語2 コース(系):社会福士コース 1.筆記問題 A. KENICHI を ASCIIkコードになおすと、 K = 0x4B N = 0x45 I = 0x4E C = 0x49 H = 0x43 I = 0x48 となる。 B. たいやきやいた たいやき やいた (たいやき焼いた。) たいやきや いた (たいやき屋、いた。) たい やき やいた (鯛、焼き、焼いた。) C. バンドメンバーの担当楽器を hazh 配列を member とした。 member の key と value はメンバーの名前と担当楽器、特徴(動物)、生息地とした。 1:key「たいと」に対して value は「"ボーカル","ゴリラ","錦町"」 2:key「ひで」に対して value は「"ギター(ジェシカ)","カピバラ","錦町"」 3:key「めっし」に対して value は「"ギター(てるこ)","ねこ","高見台"」 4:key「けんつ」に対して value は「"ベース","ひつじ","錦町"」 5:key「ほいやー」に対して value は「"ドラム","くま","飯森山"」 これに対応する配列の表し方は member["たいと"] = ["ボーカル","ゴリラ","錦町"] member["ひで"] = ["","ギター(ジェシカ)","カピバラ","錦町"] member["めっし"] = ["ギター(てるこ)","ねこ","高見台"] member["けんつ"] = ["ベース","ひつじ","錦町"] member["ほいやー"] = ["ドラム","くま","飯森山"] また、もう一つの表し方は {"たいと" => ["ボーカル","ゴリラ","錦町"], "ひで" => ["ギター(ジェシカ)","カピバラ","錦町"], "めっし" => ["ギター(てるこ),"ねこ","高見台"], "けんつ" => ["ベース","ひつじ","錦町"], "ほいやー" =>[ "ドラム","くま","飯森山"], } 2.プログラム問題 a. ◯作成したプログラム #!/usr/koeki/bin/ruby $KCODE = 'e' # 漢字コードは EUC であることを示す member = Hash.new # Hash配列 member["たいと"] = "ボーカル","ゴリラ","錦町" member["ひで"] = "ギター(ジェシカ)","カピバラ","錦町" member["めっし"] = "ギター(めっし)","ねこ","高見台" member["けんつ"] = "ベース","ひつじ","錦町" member["ほいやー"] = "ドラム","くま","飯森山" for name, gakki in member #for-end で全ての hash を出力 printf("%s は %s です。\n動物に例えると %s で %s あたりに住んでるみたいです。\n\n ",name,gakki[0],gakki[1],gakki[2]) end ◯実行結果 pan{c110015}% ./hash_ary_print.rb [~/Ruby] たいと は ボーカル です。 動物に例えると ゴリラ で 錦町 あたりに住んでるみたいです。 ひで は ギター(ジェシカ) です。 動物に例えると カピバラ で 錦町 あたりに住んでるみたいです。 けんつ は ベース です。 動物に例えると ひつじ で 錦町 あたりに住んでるみたいです。 めっし は ギター(めっし) です。 動物に例えると ねこ で 高見台 あたりに住んでるみたいです。 ほいやー は ドラム です。 動物に例えると くま で 飯森山 あたりに住んでるみたいです。 ◯考察 名前、担当楽器、特徴、生息地が全て正しくでたので、このプログラムは正しい と言える。 b. ◯作成したプログラム #!/usr/koeki/bin/ruby $KCODE = 'e' # 漢字コードは EUC であることを示す member = Hash.new # Hash配列 member["たいと"] = "ボーカル","ゴリラ","錦町" member["ひで"] = "ギター(ジェシカ)","カピバラ","錦町" member["めっし"] = "ギター(めっし)","ねこ","高見台" member["けんつ"] = "ベース","ひつじ","錦町" member["ほいやー"] = "ドラム","くま","飯森山" member.keys.sort.each{|gakki| # sort で並びかえる # each で一つずつ取り出す printf("%s は %s です。\n\n",gakki,member[gakki][0])} ◯実行結果 pan{c110015}% ./hash_sort.rb [~/Ruby] けんつ は ベース です。 たいと は ボーカル です。 ひで は ギター(ジェシカ) です。 ほいやー は ドラム です。 めっし は ギター(めっし) です。 ◯考察 メンバーの名前が50音順に並んでいるので、プログラムは正しい。 3.感想 hash の使い方がまだあまり理解できていないが、前回よりは理解できるように なってきたと思う。 繰り返す物語 うさぎがかめをバカにする → かめが勝利宣言 かめが勝利宣言 → うさぎが勝負を挑む うさぎが勝負を挑む → キツネが競争の合図 キツネが競争の合図 → うさぎがかめを引き離す うさぎがかめを引き離す → かめはあきらめない かめはあきらめない → うさぎは安心してひと休み うさぎは安心してひと休み → うさぎが目を覚ます うさぎが目を覚ます → かめが先にゴール かめが先にゴール → かめが勝利する ◯参考文献 基礎プログラミング I 第5回 (配列の構造) 「小さな順に並べ替え」 著:西村まどか (http://roy/~madoka/2011/r1/05/r1_05_06_theme_04_sort.html) 基礎プログラミング II 第 3 回 「情報の構造を分析しよう」 著:西村まどか (http://roy/~madoka/2011/r2/03/) 基礎プログラミング II 第 3 回 (情報の構造を分析しよう) 「一つずつ取り出すには / 並べ替えを詳しく行うには」 著:西村まどか (http://roy/~madoka/2011/r2/03/r2_03_04_review_04_each.html)