第 3 回 情報の構造を分析しよう レポート課題 氏名: 上林千尋 学籍番号: c1100638 語学クラス: 英語2 コース(系): 地域共創コース 1、筆記問題 A 「kanbayashichihiro」をASCIIコード(16進数)に表すと k 0x6b a 0x61 n 0x6e b 0x62 a 0x61 y 0x79 a 0x61 s 0x73 h 0x68 i 0x69 c 0x63 h 0x68 i 0x69 h 0x68 i 0x69 r 0x72 o 0x6f となります。 B "ふろにはいるかはいらないか" という言葉で考えました 例は4例考えられました ふろ に はいるか はいらないか (風呂に入るか、入らないか) ふろ に は いるか は いらないか (風呂にはイルカいらないか) ふろ に はいる か は いらないか (風呂に入る蚊はいらないか) ふろ に は いるか はいらないか (風呂にはイルカ入らないか) C 食べ物の特徴を hash 配列 food としました。 food の key と value はそれぞれ食べ物の種類、味、色にとりました。 その 1: key 「レモン」に対して value は「"くだもの","すっぱい","きいろ"」 その 2: key 「いちご」に対して「"やさい","あまい","あか"」 その 3: key 「にがうり」に対して「"やさい","にがい","みどり"」 その 4: key 「とうがらし」に対して「"やさい","からい","あか"」 これに対応する Hash の表し方は food["レモン"] = "くだもの","すっぱい","きいろ" food["いちご"] = "やさい","あまい","あか" food["にがうり"] = "やさい","にがい","みどり" food["とうがらし"] = "やさい","からい","あか" また、もう一つの表し方は { "レモン" => "くだもの","すっぱい","きいろ", "いちご" => "やさい","あまい","あか", "にがうり" => "やさい","にがい","みどり", "とうがらし" => "やさい" ,"からい","あか" } となりました。 2、プログラ厶課題 A i.考えた設定 あらかじめプログラムに登録してある対を表示する hash_ary_print.rb を作 成しました。 ii.作成したプログラム #!/usr/koeki/bin/ruby food = Hash.new food = { "レモン" => "くだもの""すっぱい""きいろ", "いちご" => "やさい""あまい""あか", "ゴーや" => "やさい""にがい""みどり", "唐辛子" => "やさい""からい""あか", } #hashをfoodにして、keyとvalueを登録しました。 for name, azi in food #keyをnameに、valueをaziに代入させます。 printf("%s\t%s\n",name,azi) #プログラム実行する際にこれで表示させます。 end iii.プログラム実行結果 pan{c110063}% ./hash_ary_print.rb [~/Ruby] ゴーや やさいにがいみどり いちご やさいあまいあか レモン くだものすっぱいきいろ 唐辛子 やさいからいあか B i.考えた設定 panman.txtに書かれた個人情報を並べ替えて表示させるhash_ary_sort.rbを 作成しました。 ii.作成したプログラム -------------------------hash_ary_sort.rb------------------------------- #!/usr/koeki/bin/ruby anpan = Hash.new #anpanがハッシュ変数であることを宣言します while line = gets if /(\S+)\s+(\d+)\s+(\S+)/ =~ line #(\S+)には名前が入ります #(\d+)には年齢が入ります #ふたつめの(\S+)には趣味が入ります anpan[$1] = [$2, $3] #配列を代入します end end for name, data in anpan printf("%-10sの推定年齢は%2d歳で、趣味は%sです。\n", name, data[0], data[1]) end -------------------------------------------------------------------------- ---------------------------panman.txt------------------------------------- 名前 推定年齢 趣味 バタ子さん 15 パンを投げること ジャムおじさん 78 パンを作ること チーズ 2 パンを食べること アンパンマン 26 パンを交換すること ばいきんまん 26 パンを汚すこと ドキンちゃん 25 パンを貶すこと しょくぱんまん 27 パンを配ること かれーぱんまん 16 パンを怒らせること ------------------------------------------------------------------------ iii.プログラム実行結果 pan{c110063}% ./hash_ary_sort.rb panman.txt [~/Ruby] ドキンちゃんの推定年齢は25歳で、趣味はパンを貶すことです。 チーズ の推定年齢は 2歳で、趣味はパンを食べることです。 ばいきんまんの推定年齢は26歳で、趣味はパンを汚すことです。 アンパンマンの推定年齢は26歳で、趣味はパンを交換することです。 かれーぱんまんの推定年齢は16歳で、趣味はパンを怒らせることです。 しょくぱんまんの推定年齢は27歳で、趣味はパンを配ることです。 ジャムおじさんの推定年齢は78歳で、趣味はパンを作ることです。 バタ子さんの推定年齢は15歳で、趣味はパンを投げることです。 3、感想 同じ文も何度も繰り返す昔話を、「3びきのこぶた」で考えました。 ()に囲まれていない文章は何度も繰り返します。 (3びきのこぶたがいました。) (1ぴきめ)のこぶたは(わら)の家をたてました。 家はおおかみに(とばされました)。 (2ひきめ)のこぶたは(木)の家をたてました。 家はおおかみに(とばされました)。 (3ひきめ)のこぶたは(レンガ)の家をたてました。 家はおおかみに(とばされませんでした)。 (3ひきは幸せに暮らしました) 4、参考文献 http://roy/~naoya/ruby/9.html 基礎プログラミングI第9回16進数・ASCIIコード http://roy/~naoya/rubyII/3.html 基礎プログラミングII第3回ハッシュ - 神田直弥 共同学習者 なし