第 3 回 情報の構造を分析しよう レポート課題 氏名: 松田 大輝 学籍番号: c1101804 語学クラス: 中国語 コース(系): 地域共創コース 月曜日の 9:00までに間に合わず今、提出します。 遅れてすみませんでした。 1、筆記問題 A、 まつたたいき Matsuta Taiki M = 0x4d a = 0x61 t = 0x74 s = 0x53 u = 0x55 t = 0x74 a = 0x61 T = 0x54 a = 0x61 i = 0x69 k = 0x6b i = 0x69 参考文献 神田先生の講義用ページ 6/20 16進数・ASCIIコード http://roy/~naoya/ruby/9.html B, はかないぱんつくれ はかないぱんつ くれ (儚いパンツくれ) はかないぱんつ くれ (履かないパンツくれ) はかないぱん つくれ (吐かないパン作れ) C、 動物についてhash 配列 animal とした。 animal の key と value はそれぞれ動物名とその特徴、体重[kg]、身長[cm]とした。 1: key 「イヌ」に対して valueは「"吼える", 5, 50」 2: key 「ライオン」に対して valueは「"強い", 400, 180」 3: key 「ネコ」に対して valueは「"可愛い", 3, 30」 4: key 「サル」に対して valueは「 "賢い", 20, 80」 1: key 「ゴリラ」に対して valueは「"力持ち", 600, 200」 これらを hash 配列で表記すると animal["イヌ"] = "吼える", 5, 50 animal["ライオン"] = "強い", 400, 180 animal["ネコ"] = "可愛い", 3, 30 animal["サル"] = "賢い", 20, 80 animal["ゴリラ"] = "力持ち", 600, 200 もう一つの表し方は animal{ "イヌ" =>["吼える", 5, 50], "ライオン" =>["強い", 400, 180], "ネコ " =>["可愛い", 3, 30], "サル" =>["賢い", 20, 80] "ゴリラ" =>[力持ち", 600, 200] } 2,プログラム問題 C、 1)考えた設定 動物の特徴、体重、身長を表示させるプログラムを作成。 数値の入った配列成分を計算し、平均身長と平均体重を求めた。 2)作成したプログラム (説明) #!/usr/koeki/bin/ruby #最初に書かなければいけないもの $KCODE = 'e' #日本語コードのEUCで出力させた total = 0 #平均体重を計算するために使用 total2 = 0 #平均身長を計算するために使用 animal = Hash.new #Hash 配列を animal とした。 animal["イヌ"] = "吼える", 5, 50 animal["ライオン"] = "強い", 400, 180 animal["ネコ"] = "可愛い", 3, 30 animal["サル"] = "賢い", 20, 80 animal["ゴリラ"] = "力持ち", 600, 200 # Hash 配列 を animal として5つを表した。 for doubutu , kazu in animal #すべての Hash の対を出力した #doubutu = キー名、 kazu = 値 、 animal = Hash配列名 printf("%sの特徴は %sです。 この動物の体重は %d kgです。 この動物の身長は %d cm です。\n\n",doubutu,kazu[0],kazu[1],kazu[2]) # 動物の名前、特徴、体重、身長を表示させた end # 6行前の for の end for doubutu , kazu in animal #プログラムの17行目と同じ total += kazu[1] # 0 と設定した total にそれぞれの動物の体重が # 加算されていくようにした end # 3行前のfor の end average = total.to_f/animal.length #平均を求めたいためプログラ厶内の動物の数で体重の合計を割った printf("\nこれら動物の平均体重は %4.1f kgです。\n",average) # 平均体重を表示するために printf を使用 # %4.1f とすることで表示される数値の桁を揃えた #この後は先程の平均体重と同じプログラムを使用 for doubutu , kazu in animal total2 += kazu[2] # 身長のため kazu[2] を使用 end average2 = total2.to_f/animal.length # averageだと平均体重と等しくなってしまうため average2 を 使用 printf("\nこれら動物の平均身長は %4.1f cmです。\n",average2) 3)プログラムを実行した結果画面 pan{c110180}% ./hash_ary_calc.rb [~/Ruby] サルの特徴は 賢いです。 この動物の体重は 20 kgです。 この動物の身長は 80 cm です。 ネコの特徴は 可愛いです。 この動物の体重は 3 kgです。 この動物の身長は 30 cm です。 ゴリラの特徴は 力持ちです。 この動物の体重は 600 kgです。 この動物の身長は 200 cm です。 ライオンの特徴は 強いです。 この動物の体重は 400 kgです。 この動物の身長は 180 cm です。 イヌの特徴は 吼えるです。 この動物の体重は 5 kgです。 この動物の身長は 50 cm です。 これら動物の平均体重は 205.6 kgです。 これら動物の平均身長は 108.0 cmです。 4)導き出された結果の考察 平均体重と平均身長が正しいか、ktermで bc -l で調べた 平均体重 pan{MATSUTA Taiki}% bc -l [~/Ruby] (20+3+600+400+5)/5 205.60000000000000000000 平均身長 (80+30+200+180+50)/5 108.00000000000000000000 どちらの数値も正しいことが確かめられた。 5)参考文献 西村先生の講義ノート 3、情報の構造を分析しよう 1. Hash の中の Hash http://roy/~madoka/2011/r2/03/r2_03_06_theme_01_hashinhash.html 2. 三段論法 http://roy/~madoka/2011/r2/03/r2_03_07_theme_02_socrates.html 3. わらしべ長者 http://roy/~madoka/2011/r2/03/r2_03_08_theme_03_strawrich.html 4. ねずみの嫁入り http://roy/~madoka/2011/r2/03/r2_03_09_theme_04_mousebride.html 5. 人工無脳 http://roy/~madoka/2011/r2/03/r2_03_10_theme_05_chatterbot.html 3、感想 思いつかなかったため 「桃太郎」 で考えてみた。 川から桃が流れて来る → 桃を切ると中から赤ちゃんがでてくる 赤ちゃんを育てる → すくすく育つ 鬼が暴れていることを聞く → 鬼退治に向かう 家を出ようとする → きびだんごをもらう いぬと出会う → きびだんごをあげ仲間になる さると出会う → きびだんごをあげ仲間になる きじと出会う → きびだんごをあげ仲間になる 桃太郎と3匹の家来で鬼ヶ島に行く → 鬼を退治する お宝をもらう → 家に帰りめでたしめでたし