第 3 回 情報の構造を分析しよう レポート課題 氏名:吉田 栞 学籍番号:c1101997 語学クラス:英語クラス6 コース(系):政策マネジメントコース 1.筆記問題 A 吉田 栞 = Yoshida Shioriを16進数に直すと、 Y = 0x59, o = 0x6F, s = 0x73, h = 0x68, i = 0x69, d = 0x64, a = 0x61 S = 0x53, h = 0x68, i = 0x69, o = 0x6F, r = 0x72, i = 0x69 よってYoshida Shiori = 0x596F73686964615368696F7269 B. かにくわれる か に くわれる (蚊に食われる) かに くわれる (蟹、食われる) かにく われる (果肉、割れる) C. 国の特徴を hash 配列 country としました。 country の key と value はそれぞれの国名とその首都、国花、通貨にしました。 1: key 「日本」に対して valueは「"東京","桜" , "日本円"」 2: key 「中国」に対して valueは「"北京", "牡丹", "人民元"」 3: key 「アメリカ」に対して valueは「"ニューヨーク","セイヨウオダマキ" ,"ドル"」 4: key 「インド」に対して valueは「"厶ンバイ", "蓮", "ルピー"」 5: key 「イタリア」に対して valueは「"ローマ", "デージー","ユーロ" 」 これに対するHash の表し方は country["日本"] = ["東京", "桜", "日本円"] country["中国"] = ["北京", "牡丹", "人民元"] country["アメリカ"] = ["ニューヨーク", "セイヨウオダマキ", "ドル"] country["インド"] = ["厶ンバイ", "蓮", "ルピー"] country["イタリア"] = ["ローマ", "デージー", "ユーロ"] また、もう一つの表し方は、 country = { "日本" => ["東京", "桜", "日本円"], "中国" => ["北京", "牡丹", "人民元"], "アメリカ" => ["ニューヨーク", "セイヨウオダマキ", "ドル"], "インド" => ["厶ンバイ", "蓮", "ルピー"], "イタリア" => ["ローマ", "デージー", "ユーロ"]} 2.プログラム問題 A (1)考えた設定 「国の特徴など登録してある対を表示させる」 (2)元にしたプログラム 今回のレポート課題の 1-C を参考にしました。 (3)プログラム #!/usr/koeki/bin/ruby $KCODE = 'e' # 日本語コードEUCで入力する。 country = Hash.new # Hash 配列を country とする。 country["日本"] = "東京", "桜", "日本円" country["中国"] = "北京", "牡丹", "人民元" country["アメリカ"] = "ニューヨーク", "セイヨウオダマキ", "ドル" country["インド"] = "厶ンバイ", "蓮", "ルピー" country["イタリア"] = "ローマ", "デージー", "ユーロ" for kuni ,deta in country # for キー名、値、in ハッシュ配列 printf(" %sの首都:%s 国花:%s 通貨:%s \n", kuni, deta[0],deta[1],deta[2]) # value の項目を表示させている。 end (4)実行結果 pan{c110199}% ./hash_ary_print.rb [~/Ruby] インドの首都:厶ンバイ 国花:蓮 通貨:ルピー アメリカの首都:ニューヨーク 国花:セイヨウオダマキ 通貨:ドル イタリアの首都:ローマ 国花:デージー 通貨:ユーロ 中国の首都:北京 国花:牡丹 通貨:人民元 日本の首都:東京 国花:桜 通貨:日本円 (5)考察 プログラム通りに出来たので実行は正しいといえる。 B (1)考えた設定 「国の特徴など登録してある対を表示させる」 (2)元にしたプログラム 今回のレポート課題の 1-C を参考にしました。 また、 value 部分を追加しました。 (3)プログラム #!/usr/koeki/bin/ruby $KCODE = 'e' # 日本語コードEUCで入力する。 country = Hash.new # Hash 配列を country にする country["日本"] = "東京", "桜", "日本円","62" country["中国"] = "北京", "牡丹", "人民元","03" country["アメリカ"] = "ニューヨーク", "セイヨウオダマキ", "ドル","04" country["インド"] = "厶ンバイ", "蓮", "ルピー","07" country["イタリア"] = "ローマ", "デージー", "ユーロ","72" for kuni ,deta in country # for キー名、値、in ハッシュ配列 printf(" %sの首都:%s 国花:%s 通貨:%s 国土面積順位:%d \n", kuni, deta[0],deta[1],deta[2],deta[3]) # value の項目を表示させている。 end print("\n") # 1行改行する country.keys.sort{|kuni,ookisa| country[kuni][3] <=> country[ookisa][3] # []の部分を入れ替える }.each{|retail| printf("国土面積順: %s (%2d [位])\n" ,retail,country[retail][3]) } (4)実行結果 pan{c110199}% ./hash_ary_sort.rb [~/Ruby] インドの首都:厶ンバイ 国花:蓮 通貨:ルピー 国土面積順位:7 アメリカの首都:ニューヨーク 国花:セイヨウオダマキ 通貨:ドル 国土面積順位:4 イタリアの首都:ローマ 国花:デージー 通貨:ユーロ 国土面積順位:72 中国の首都:北京 国花:牡丹 通貨:人民元 国土面積順位:3 日本の首都:東京 国花:桜 通貨:日本円 国土面積順位:62 国土面積順: 中国 ( 3 [位]) 国土面積順: アメリカ ( 4 [位]) 国土面積順: インド ( 7 [位]) 国土面積順: 日本 (62 [位]) 国土面積順: イタリア (72 [位]) (5)考察 最初、 国土面積順に表示することが出来なくて悩んだ。 しかし、確認したらアルファベットのスペルを間違えていただけだったため、 そこを直したらきちんと作動させることが出来た。 3.感想 何度も繰り返す文章で進む昔話が自分では思いつかなかったので「桃太郎」で考えました。 「桃太郎」 お婆さんが川へ洗濯にいく - 川から流れてきた桃を拾う 桃を家に持って帰る - 桃を割る 子供が生まれる - 桃太郎と名をつける 桃太郎はすくすく育つ - 桃太郎は鬼退治に行くことを決心する お婆さんとお爺さんにきび団子を持たせてもらう - 桃太郎は家を後にする 桃太郎はきび団子をイヌにあげる - 桃太郎はイヌを仲間にする 桃太郎はきび団子をサルにあげる - 桃太郎はサルを仲間にする 桃太郎はきび団子をキジにあげる - 桃太郎はキジを仲間にする 桃太郎一行は鬼ヶ島にいく - 鬼と闘う 鬼を倒す - 鬼から宝物を取りあげる 元気よく家に帰る - みんなで仲良く暮らす 感想 今回の課題は、授業中に学んだ内容で理解出来ていない部分があったので、少し 不安でした。 しかし、授業のページを見ながら作成していき、なんとかプログラムを作動させ ることが出来ました。 次回の授業についていけるように時間をかけて見直しをしたいと思います。 36 M09/30 YOSHIDA Shiori 4.参考文献 神田直弥 基礎プログラミング I 第9回 16進数・ACCコード表 http://roy/~naoya/ruby/9.html 西村 まどか 基礎プログラミング II 第 3 回 「情報の構造を分析しよう」 http://roy/~madoka/2011/r2/03/ 桃太郎 福娘童話集 きょうの日本昔話 http://hukumusume.com/douwa/pc/jap/08/01.htm