第6回 基礎プログラミング I レポート課題 氏名 : 藤井 駿 学籍番号 :c1091307 語学クラス :英語3 コース :地域共創 1.筆記問題 A. 私の誕生日を10進法で表すと 1990年10月15日であるから、0d1990 年 0d10 月 0d15 日 となる。 ------------------------- また2進法では 0d1990 と 0d10 と 0d15 に分け、それぞれ答えが0になるまで2で割ってい く。 まず 0d1990 を割っていくと 1990 / 2 = 995 余り 0 995 / 2 = 497 1 497 / 2 = 248 1 248 / 2 = 124 0 124 / 2 = 62 0 62 / 2 = 31 0 31 / 2 = 15 1 15 / 2 = 7 1 7 / 2 = 3 1 3 / 2 = 1 1 1 / 2 = 0 1 よって 0d1990 = 0b11111000110 となる。 つぎに 0d10 と 0d15 を割っていくと 10 / 2 = 5 余り 0 5 / 2 = 2 1 2 / 2 = 1 0 1 / 2 = 0 1 よって 0d10 = 0b1010 となる。 15 / 2 = 7 余り 1 7 / 2 = 3 1 3 / 2 = 1 1 1 / 2 = 0 1 よって 0d15 = 0b1111となる。 したがって全てを合体させると 0b11111000110 年 0b1010 月 0b1111 日 となる。 ------------------------------------ 16進数に変換するには 上で求めた2進数を4桁づつに区切って変換する。 ◎ 0b11111000110 111/1100/0110 #最初の 111 の始めには 0 が省略されているため 0111 に なる 0111 = 7 1100 = c 0110 = 6 よって 0x = 7c6 となる。 ◎ 0b 1010 1010 = a よって 0x = a となる。 ◎ 0b 1111 1111 = f よって 0x = f となる。 したがって全てを合体させると 0x7c6 年 a 月 f 日 となる。 ------------------ B. 私の名前のアルファベットは Fujii Shun である。 これを16進数に表すと、 F = 0x46 u = 0x75 j = 0x6a i = 0x69 i = 0x69 S = 0x53 h = 0x68 u = 0x75 n = 0x6e となることが分かった。 2.プログラム問題 ◎ 考えたプログラムについて 私はプロ野球がとても好きである。 今回は昨年のパリーグの覇者の日本ハムの選手(名前、フリガナ、ロー マ字、ポジション、出身地)についてデータを作成した。 ◎ 作成した データ #名前 #フリガナ #ローマ字 #ポジション #出身地 梨田 昌孝 ナシダ マサタカ Nashida Masataka 監督 島根県 ダルビッシュ 有 ダルビッシュ ユウ Darubisshu yu 投手 大阪府 武田 久 タケダ ヒサシ Takeda Hisashi 投手 徳島県 武田 勝 タケダ マサル Takeda Masaru 投手 愛知県 糸数 敬作 イトカズ ケイサク Itokazu Keisaku 投手 沖縄県 多田野 数人 タダノ カズヒト Tadano Kazuhito 投手 東京都 高橋 信二 タカハシ シンジ Takasashi Shinji 捕手 岡山県 鶴岡 慎也 ツルオカ シンヤ Tsuruoka Shinya 捕手 鹿児島県 田中 賢介 タナカ ケンスケ Tanaka Kensuke 内野手 福岡県 小谷野 栄一 コヤノ エイイチ Koyano Eiichi 内野手 東京都 中田 翔 ナカタ ショウ Nakata Sho 内野手 広島県 金子 誠 カネコ マコト Kanako Makoto 内野手 千葉県 森本 稀哲 モリモト ヒチョリ Morimoto Hichori 外野手 東京都 糸井 嘉男 イトイ ヨシオ Itoi Yoshio 外野手 京都府 稲葉 篤紀 イナバ アツノリ Inaba Atsunori 外野手 愛知県 ◎プログラムの目的 ポジションや出身地をすぐに調べられるようにしたかったから。 ◎検索パターンの説明 a. egrep "東京都" data06.dat を実行し、出身地が "東京都" の人を検索してみる。 予想は、3人が当てはまるはずである。 ☆結果☆ pan{c109130}% egrep "東京都" data06.dat [~/Ruby] 多田野 数人 タダノ カズヒト Tadano Kazuhito 投手 東京都 小谷野 栄一 コヤノ エイイチ Koyano Eiichi 内野手 東京都 森本 稀哲 モリモト ヒチョリ Morimoto Hichori 外野手 東京都 ☆考察☆ 確かに実行してみたところ、3人が当てはまったので正しかった。 b. egrep "投手" data06.dat を実行し、ポジションが "投手" の人を検索してみる。 予想は、4人が当てはまるはずである。 ☆結果☆ pan{c109130}% egrep "投手" data06.dat [~/Ruby] ダルビッシュ 有 ダルビッシュ ユウ Darubisshu yu 投手 大阪府 武田 久 タケダ ヒサシ Takeda Hisashi 投手 徳島県 武田 勝 タケダ マサル Takeda Masaru 投手 愛知県 糸数 敬作 イトカズ ケイサク Itokazu Keisaku 投手 沖縄県 多田野 数人 タダノ カズヒト Tadano Kazuhito 投手 東京都 ☆ 考察☆ 確かに実行してみたところ、4人が当てはまったので正しかった。 c. egrep "Ta[knd]" data06.dat を実行し、名前が "Ta のあとに「k」か「n」か「d」の人を検索してみ る。予想は、4人が当てはまるはずである。 ☆結果☆ pan{c109130}% egrep "Ta[knd]" data06.dat [~/Ruby] 武田 久 タケダ ヒサシ Takeda Hisashi 投手 徳島県 武田 勝 タケダ マサル Takeda Masaru 投手 愛知県 多田野 数人 タダノ カズヒト Tadano Kazuhito 投手 東京都 高橋 信二 タカハシ シンジ Takasashi Shinji 捕手 岡山県 田中 賢介 タナカ ケンスケ Tanaka Kensuke 内野手 福岡県 ☆考察☆ 結果は5人であって、高橋という名字も "Ta" のあとが「k」ということ を見逃してしまっていた。よって実行結果は正しいといえる。 d. egrep "Ta.a" data06.dat を実行し、名字の頭文字が Ta の人を検索してみる。 予想は、3人が当てはまるはずである。 ☆結果☆ pan{c109130}% egrep "Ta.a" data06.dat [~/Ruby] 多田野 数人 タダノ カズヒト Tadano Kazuhito 投手 東京都 高橋 信二 タカハシ シンジ Takasashi Shinji 捕手 岡山県 田中 賢介 タナカ ケンスケ Tanaka Kensuke 内野手 福岡県 ☆考察☆ 確かに実行してみたところ、3人が当てはまったので正しかった。 e. egrep "[ア-ハ]" data06.dat を実行し、名前に「ア」から「ハ」までが入る人を検索してみた。 これだとたくさん出てくるおそれがある。 さらに egrep "シ[ア-ハ]" data06.dat を実行し、名前が「シ」のあと に「ア」から「ハ」までが入る人を検索してみた。 これでだいぶ絞られていくだろう。 ☆結果☆ pan{c109130}% egrep "[ア-ハ]" data06.dat [~/Ruby] #名前 #フリガナ #ローマ字 #ポジション #出身地 梨田 昌孝 ナシダ マサタカ Nashida Masataka 監督 島根県 ダルビッシュ 有 ダルビッシュ ユウ Darubisshu yu 投手 大阪府 武田 久 タケダ ヒサシ Takeda Hisashi 投手 徳島県 武田 勝 タケダ マサル Takeda Masaru 投手 愛知県 糸数 敬作 イトカズ ケイサク Itokazu Keisaku 投手 沖縄県 多田野 数人 タダノ カズヒト Tadano Kazuhito 投手 東京都 高橋 信二 タカハシ シンジ Takasashi Shinji 捕手 岡山県 鶴岡 慎也 ツルオカ シンヤ Tsuruoka Shinya 捕手 鹿児島県 田中 賢介 タナカ ケンスケ Tanaka Kensuke 内野手 福岡県 小谷野 栄一 コヤノ エイイチ Koyano Eiichi 内野手 東京都 中田 翔 ナカタ ショウ Nakata Sho 内野手 広島県 金子 誠 カネコ マコト Kanako Makoto 内野手 千葉県 森本 稀哲 モリモト ヒチョリ Morimoto Hichori 外野手 東京都 糸井 嘉男 イトイ ヨシオ Itoi Yoshio 外野手 京都府 稲葉 篤紀 イナバ アツノリ Inaba Atsunori 外野手 愛知県 pan{c109130}% egrep "シ[ア-ハ]" data06.dat [~/Ruby] 梨田 昌孝 ナシダ マサタカ Nashida Masataka 監督 島根県 糸井 嘉男 イトイ ヨシオ Itoi Yoshio 外野手 京都府 ☆考察☆ やはり上の方法ではかなりの人が当てはまった。また、項目のところも 表示されてしまったが、ここにも「ア」から「ハ」までの文字が入って いるために表示されたものであると考えた。 また、絞った結果は確かにその様になっているから正しい。 ◎正規表現のまとめ ・"[ 文字 ]"(braket) = [ 文字 ]で括られた文字のどれかが一致するも のを検索する機能 ・" 文字 " = " 文字 "の間の文字を検索する機能 ・" 文字a .文字b " = 任意の一文字に当てはまる文字を検索する機能 ・"[文字a - 文字b]"(braket) = (文字a)から(文字b)の範囲の 1 文字を全て取 りだす。 3.感想 実際に正規表現が使われているものは、インターネットで利用する検索機能で あると思った。なにかしらの文字を入れると予想変換が出現するのでこれが正 規表現であるのではないか。 また今回の課題は題材を考えるのにかなり時間がかかってしまったけれどプロ グラム自体はすんなり作成することができたので良かった。今回の課題はこれ から先、いろいろな場面で使うかもしれないのでしっかり学んだことを忘れな いようにしていきたいと思う。 4.参考文献 ・教科書 「Ruby プログラミング基礎講座」広瀬雄二著 ・Webサイト 「チーム情報 北海道日本ハムファイターズ」 http://www.fighters.co.jp/team/ 共同学習者 池田 博哉