第 3 回 情報の構造を分析しよう レポート課題 氏名:小林愛実 学籍番号:c1100816 語学クラス:英語6 コース(系):政策マネジメント 1、筆記問題 A、 Kobayashi Manami ASCIIコードで表すと K = Ox4b o = Ox6f b = Ox62 a = Ox61 y = Ox79 a = Ox61 s = Ox73 h = Ox68 i = Ox69 M = Ox4d a = Ox61 n = Ox6e a = Ox61 m = Ox6d i = Ox69 16進数を10進数にかえると Ox4b = 4*16 + 11*1 = 64 + 11 = 75 Od75 Ox6f = 6*16 + 15*1 = 96 + 15 = 111 Od111 Ox62 = 6*16 + 2*1 = 96 +2 = 98 Od98 Ox61 = 6*16 + 1*1 = 96 + 1 = 97 Od97 Ox79 = 7*16 + 9*1 = 112 + 9 = 121 Od121 Ox61 = 6*16 + 1*1 = 96 + 1 = 97 Od97 Ox73 = 7*16 + 3*1 = 112 + 3 = 115 Od115 Ox68 = 6*16 + 8*1 = 96 + 8 = 104 Od104 Ox69 = 6*16 + 9*1 = 96 + 9 = 105 Od105 Ox4d = 4*16 + 13*1 = 64 + 13 = 77 Od77 Ox61 = 6*16 + 1*1 = 96 + 1 = 97 Od97 Ox6e = 6*16 + 14*1 = 96 + 14 = 110 Od110 Ox61 = 6*16 + 1*1 = 96 + 1 = 97 Od97 Ox6d = 6*16 + 13*1 = 96 + 13 = 109 Od109 Ox69 = 6*16 + 9*1 = 96 + 9 = 105 Od105 参考文献 神田直弥 基礎プログラミングI 16進数・ASCIIコード http://roy/~naoya/ruby/9.html B、 "だいぶつかった"(3例) だいぶつ かった (大仏買った) だいぶ つかった (だいぶ使った) だいぶ つかった (大分漬かった) 参考文献 ぎなた読み http://ja.wikipedia.org/wiki/%E3%81%8E%E3%81%AA%E3%81%9F%E8%AA%AD%E3%81%BF C、 サンリオのキャラクターの特徴をhash 配列 sanrio としました。 sanrio の key と value はそれぞれキャラクター名と生まれた年[年]、誕生日[月]、[日]、好きな食べ物 にとりました。 その1:key 「ハローキティ」に対して valueは「1974、 11、1、 ママの作った アップルパイ」 その2:key 「マイメロディ」に対して valueは「1975、 1、18、アーモンドバ ウンドケーキ」 その3:key 「マロンクリーム」に対して valueは「1985、5、31、チェリーを 煮込んだお手製のチェリーパイ」 その4:key 「ポ厶ポ厶プリン」に対して valueは「1996、4、16、ママメイド のプリン」 その5:key 「シナモンロール」に対して valueは「2001、3、6、「カフェ・シ ナモン名物のシナモンロール」 これらを hash 配列で表記すると、 sanrio["ハローキティ"] = ["1974","11","1","ママの作ったアップルパイ"] sanrio["マイメロディ"] = ["1975,"1","18","アーモンドバウンドケーキ"] sanrio["マロンクリーム"] = ["1985","5","31","チェリーを煮込んだお手製の チェリーパイ"] sanrio["ポ厶ポ厶プリン"] = ["1996","4","16","ママメイドのプリン"] sanrio["シナモンロール"] = ["2001","3","6","カフェ・シナモン名物のシナモ ンロール"] もうひとつの表し方は、 {"ハローキティ"=>["1974","11","1","ママの作ったアップルパイ"],"マイメロ ディ"=>["1975",1","18","アーモンドバウンドケーキ"],"マロンクリーム "=>["1985","5","31","チェリーを煮込んだお手製のチェリーパイ"],"ポ厶ポ厶 プリン"=>["1996","4",16","ママメイドのプリン"],"シナモンロール "=>["2001","3","6","カフェ・シナモン名物のシナモンロール"],} 参考文献 サンリオ http://www.sanrio.co.jp/ 2、プログラム問題 Bを選択しました。 a. 考えた設定 筆記問題のCを元に hash_ary_sort.rb を作成した。 初めにサンリオキャラクターの生まれた年、誕生日、好きな食べ物を表示させ(A の問題)、次にサンリオキャラクターの生まれた年を早い順に並べ替えるプログ ラム。 b. 作成したプログラム #!/usr/koeki/bin/ruby $KCODE = 'e' #日本語コードで出力する sanrio = Hash.new #Hash配列をsanrioと定義する sanrio["ハローキティ"] = "1974","11","1","ママの作ったアップルパイ" sanrio["マイメロディ"] = "1975","1","18","アーモンドバウンドケーキ" sanrio["マロンクリーム"] = "1985","5","31","チェリーを煮込んだお手製のチェリーパイ" sanrio["ポ厶ポ厶プリン"] = "1996","4","16","ママメイドのプリン" sanrio["シナモンロール"] = "2001","3","6","カフェ・シナモン名物のシナモンロール" for name, day in sanrio #全ての Hash を出力し、 項目の一覧表を作る。 printf("%sは%d年 %d月%d日 生まれ。 好きな食べ物は%sだよ。\n",name,day[0],day[1],day[2],day[3]) end print"\n" #改行 print("生まれた年の早い順に並べ変えます。\n") #説明文 print"\n" #改行 sanrio.keys.sort{|a,b| #keyを生まれた年の早い順に並び替える sanrio[a][0] <=>sanrio[b][0] }.each{|day| printf("%sの生まれた年は%d年だよ。\n",day,sanrio[day][0])} #生まれた年の早い順から並び替えられた文章を表示 c. もとにしたプログラムからの変更点 前回作成したhash_choice.rbを参考にしました。 変更点は入力させる STDERR.print を消したことと文章を順に表示させるように 配列.sort{ }を追加させたことです。 d. プログラムを実行した結果画面 pan{c110081}% ./hash_ary_sort.rb [~/Ruby] マロンクリームは1985年 5月31日 生まれ。 好きな食べ物はチェリーを煮込んだお手製のチェリーパイだよ。 シナモンロールは2001年 3月6日 生まれ。 好きな食べ物はカフェ・シナモン名物のシナモンロールだよ。 ポ厶ポ厶プリンは1996年 4月16日 生まれ。 好きな食べ物はママメイドのプリンだよ。 マイメロディは1975年 1月18日 生まれ。 好きな食べ物はアーモンドバウンドケーキだよ。 ハローキティは1974年 11月1日 生まれ。 好きな食べ物はママの作ったアップルパイだよ。 生まれた年の早い順に並べ変えます。 ハローキティの生まれた年は1974年だよ。 マイメロディの生まれた年は1975年だよ。 マロンクリームの生まれた年は1985年だよ。 ポ厶ポ厶プリンの生まれた年は1996年だよ。 シナモンロールの生まれた年は2001年だよ。 e. 導き出された結果の考察 (ここで計算結果が合っているか調べる) 生まれた年の早い順に表示させるプログラムを作成したが、実行結果から生まれ た年の早い順に並び替えられていたので、このプログラムは正しいと言える。 f. 参考文献 西村まどか 基礎プログラミングII なになにといえばこれこれ http://roy/~madoka/2011/r2/02/ 情報の構造を分析しよう http://roy/~madoka/2011/r2/03/ C、 小さいころに大好きな話だった「大きなかぶ」を選びました。 この話は、◯◯◯をよんできて、 ◯◯◯をひっぱって、うんとこしょ、どっこ いしょ など同じような文章が何回も出てきているので、何度も繰り返す文章で 進むような物語だと考える。 大きなかぶ おじいさんが畑に種をまくと大きなかぶができました。 収穫しようとするが大きすぎてひとりではぬけません。 おじいさんは、おばあさんをよんできました。 かぶを おじいさんがひっぱって、 おじいさんを おばあさんが ひっぱって うんとこしょ、どっこいしょ それでも、かぶはぬけません。 おばあさんは まごをよんできました。 かぶを おじいさんがひっぱって、 おじいさんを おばあさんがひっぱって、 おばあさんを まごがひっぱって、 うんとこしょ、どっこいしょ それでも、かぶはぬけません。 まごは、犬を よんできました。 かぶを おじいさんがひっぱって、 おじいさんを おばあさんがひっぱって、 おばあさんを まごがひっぱって、      まごを 犬がひっぱって、 うんとこしょ、どっこいしょ まだまだ、かぶはぬけません。 犬は ねこを よんできました。 かぶを おじいさんがひっぱって、 おじいさんを おばあさんがひっぱって、 おばあさんをまごがひっぱって、 まごを 犬がひっぱって、 犬を ねこがひっぱって、 うんとこしょ、どっこいしょ。 なかなか、かぶはぬけません。   ねこは、ねずみをよんできました。  かぶを おじいさんがひっぱって、 おじいさんを おばあさんがひっぱって、 おばあさんを まごが ひっぱって、 まごを 犬がひっぱって、 犬を ねこがひっぱって、 ねこを ねずみが ひっぱって、     うんとこしょ、どっこいしょ。 とうとう、かぶは ぬけました。 参考文献 「大きなかぶ」 http://www.h3.dion.ne.jp/~buenos/kabu.html 感想 今回の課題は、計算問題もあり、プログラムも難しかったので、時間がかかりま した。しかし難しかった分、時間をかけながらやったので、内容を理解しながらできま した。 次回のプログラムも頑張りたいです。 東北公益文化大学 公益学部 公益学科 2年 小林愛実 c110081f.koeki-u.ac.jp