第6回 基礎プログラミング I レポート課題 氏名:酒井 春香 学籍番号:c109074A 語学クラス:英語3 コース:政策マネ 1、 A、私の誕生日は、1990年4月6日なので、 0d19、0d90、0d04、0d06として考えた。 2進数表示にするためには、 10進数を0になるまで2で割っていき、余りを逆から読めばいいので、 <0d19> 19 ÷ 2 = 9 余り 1 9 ÷ 2 = 4 余り 1 4 ÷ 2 = 2 余り 0 2 ÷ 2 = 1 余り 0 1 ÷ 2 = 0 余り 1 よって、0d19 = 0b10011 <0d90> 90 ÷ 2 = 45 余り 0 45 ÷ 2 = 22 余り 1 22 ÷ 2 = 11 余り 0 11 ÷ 2 = 5 余り 1 5 ÷ 2 = 2 余り 1 2 ÷ 2 = 1 余り 0 1 ÷ 2 = 0 余り 1 よって、0d90 = 0b1011010 <0d04> 4 ÷ 2 = 2 余り 0 2 ÷ 2 = 1 余り 1 1 ÷ 2 = 0 余り 1 よって、0d04 = 0b110 <0d06> 6 ÷ 2 = 3 余り 0 3 ÷ 2 = 1 余り 1 1 ÷ 2 = 0 余り 1 よって、0d06 = 0b110 結果、0d19 = 0b10011、0d90 = 0b1011010、0d04 = 0b110、 0d06 = 0b110 次に10進数を16進数に変換する。 下4桁ごとで区切って考える。 <0b10011> 0001 → 1 0011 → 3 よって、 0b10011 = 0x13 <0b1011010> 0101 → 5 1010 → a よって、 0b1011010 = 0x5a <0b110> 0110 → 6 よって、 0b110 = 0x6 <0b110> 上と同様なので、 0b110 = 0x6 B、 私の名前 「sakai haruka」を16進数表示で表す。 ASCIIコード表を参考に、 s → 0x53 a → 0x41 k → 0x4b a → 0x41 i → 0x69 h → 0x48 a → 0x41 r → 0x52 u → 0x55 k → 0x4b a → 0x41 2、プログラム問題 A、作成したデータの内容の説明 巨人が好きなので、選手の名前、ひらがな表記、ローマ字表記、ポジション、 背番号、投打を検索できるデータを作成しました。 B、作ったデータ 阿部愼之介 あべしんのすけ abeshinnosuke 捕手 10 右投左打 小笠原道大 おがさわらみちひろ ogasawaramichihiro 内野手 2 右投左打 高橋由伸 たかはしよしのぶ takahashiyoshinobu 投手 24 右投左打 亀井義行 かめいよしゆき kameiyoshiyuki 外野手 9 右投左打 松本哲也 まつもとてつや matsumototetsuya 外野手 31 左投左打 坂本勇人 さかもとはやと sakamotohayato 内野手 6 右投右打 ラミレス らみれす ramiresu 外野手 5 右投右打 山口鉄也 やまぐちてつや yamaguchitetsuya 投手 47 左投左打 内海哲也 うつみてつや utsumitetsuya 投手 26 左投左打 鶴岡一成 つるおかかずなり tsuruokakazunari 捕手 43 右投右打 越智大祐 おちだいすけ ochidaisuke 投手 22 右投右打 クルーン くるーん kuru-n 投手 42 右投右打 脇谷亮太 わきやりょうた wakiyaryouta 内野手 23 右投左打 東野峻 とうのしゅん tounosyunn 投手 17 右投右打 イスンヨプ いすんよぷ isunyopu 内野手 25 左投左打 木村正太 きむらしょうた kimurasyouta 投手 15 右投右打 寺内崇幸 てらうちたかゆき terauchitakayuki 内野手 00 右投右打 谷佳知 たによしとも taniyoshitomo 外野手 8 右投右打 西村健太朗 にしむらけんたろう nishimurakentaro 投手 35 右投右打 鈴木尚広 すずきたかひろ suzukitakahiro 外野手 12 右投左打 大道典嘉 おおみちのりよし omichinoriyoshi 内野手 44 右投右打 野間口貴彦 のまぐちたかひこ nomaguchitakahiko 投手 33 右投右打 ゴンザレス ごんざれす gonzaresu 内野手 49 右投右打 長野久義 ちょうのひさよし chonohisayoshi 外野手 7 右投右打 豊田清 とよだきよし toyodakiyoshi 投手 20 右投右打 久保裕也 くぼゆうや kuboyuya 投手 11 右投右打 河野元貴 かわのげんき kawanogenki 捕手 111 右投左打 橋本到 はしもといたる hashimotoitaru 外野手 94 右投左打 オビスポ おびすぽ obisupo 投手 91 右投右打 大田泰示 おおたたいし otataishi 内野手 55 右投右打 工藤隆人 くどうたかひと kudotakahito 外野手 0 左投左打 中井大介 なかいだいすけ nakaidaisuke 内野手 61 右投右打 金刃憲人 かねとのりひと kanetonorihito 投手 28 左投左打 高木康成 たかぎやすなり takagiyasunari 投手 13 左投左打 加治前竜一 かじまえりゅういち kajimaeryuichi 外野手 50 右投右打 村田透 むらたとおる muratatoru 投手 46 右投左打 田中大二郎 たなかだいじろう tanaka daijiro 外野手 66 左投左打 宮本武文 みやもとたけふみ miyamototakehumi 投手 65 左投左打 矢野謙次 やのけんじ yanokenji 外野手 48 右投右打 加藤健 かとうけん katoken 捕手 40 右投右打 神田直輝 かんだなおき kandanaoki 投手 112 右投右打 古川祐樹 ふるかわゆうき furukawayuki 投手 57 左投左打 藤井秀悟 ふじいしゅうご fujiisyugo 投手 99 左投左打 藤村大介 ふじむらだいすけ fujimuradaisuke 内野手 54 右投右打 C、目的 巨人の選手について知りたいとき、名前やポジション、背番号、投打が知ること ができるお得なデータ。 D、検索パターン(結果と考察) (1)名字の頭文字に「藤」のつく選手を検索する ・実行結果 pan{c109074}% egrep "藤" data06.dat [~/Ruby] 工藤隆人 くどうたかひと kudotakahito 外野手 0 左投左打 加藤健 かとうけん katoken 捕手 40 右投右打 藤井秀悟 ふじいしゅうご fujiisyugo 投手 99 左投左打 藤村大介 ふじむらだいすけ fujimuradaisuke 内野手 54 右投右打 ↓↓↓ pan{c109074}% egrep "^藤" data06.dat [~/Ruby] 藤井秀悟 ふじいしゅうご fujiisyugo 投手 99 左投左打 藤村大介 ふじむらだいすけ fujimuradaisuke 内野手 54 右投右打 ・考察 名字の先頭に「藤」がつくのを検索するために実行したが、先頭に「藤」がつい ていなくても検索されてしまった。つぎに、先頭の文字を検索するために"^藤" とやってみると、名字の頭文字に「藤」がつく選手が2人検索されたので結果は 正しい。 (2)名前に「てつや」のつく選手を検索する ・実行結果 pan{c109074}% egrep "てつや" data06.dat [~/Ruby] 松本哲也 まつもとてつや matsumototetsuya 外野手 31 左投左打 山口鉄也 やまぐちてつや yamaguchitetsuya 投手 47 左投左打 内海哲也 うつみてつや utsumitetsuya 投手 26 左投左打 ・考察 名前の読みがなの部分を見てみると、検索されたものにすべて「てつや」が入っ ていることからこの結果は正しい。また、tetsuyaで検索しても同じ結果が出た。 (3)ポジションが「外野手」の選手を検索する ・実行結果 pan{c109074}% egrep "外野手" data06.dat [~/Ruby] 亀井義行 かめいよしゆき kameiyoshiyuki 外野手 9 右投左打 松本哲也 まつもとてつや matsumototetsuya 外野手 31 左投左打 ラミレス らみれす ramiresu 外野手 5 右投右打 谷佳知 たによしとも taniyoshitomo 外野手 8 右投右打 鈴木尚広 すずきたかひろ suzukitakahiro 外野手 12 右投左打 長野久義 ちょうのひさよし chonohisayoshi 外野手 7 右投右打 橋本到 はしもといたる hashimotoitaru 外野手 94 右投左打 工藤隆人 くどうたかひと kudotakahito 外野手 0 左投左打 加治前竜一 かじまえりゅういち kajimaeryuichi 外野手 50 右投右打 田中大二郎 たなかだいじろう tanaka daijiro 外野手 66 左投左打 矢野謙次 やのけんじ yanokenji 外野手 48 右投右打 ・考察 ポジションの部分を見てみるとすべてに「外野手」が入っている。数えてみると 外野手は11人なので、この結果は正しい。 (4)背番号に「3」がつく選手を検索する ・実行結果 pan{c109074}% egrep "3" data06.dat [~/Ruby] 松本哲也 まつもとてつや matsumototetsuya 外野手 31 左投左打 鶴岡一成 つるおかかずなり tsuruokakazunari 捕手 43 右投右打 脇谷亮太 わきやりょうた wakiyaryouta 内野手 23 右投左打 西村健太朗 にしむらけんたろう nishimurakentaro 投手 35 右投右打 野間口貴彦 のまぐちたかひこ nomaguchitakahiko 投手 33 右投右打 高木康成 たかぎやすなり takagiyasunari 投手 13 左投左打 ・考察 背番号の部分を見てみるとすべてに「3」が入っている。もとのデータで数えて みると3がつく選手は6人なので、この結果は正しい。 (5)投打が「右投左打」である選手を検索する ・実行結果 pan{c109074}% egrep "右投左打" data06.dat [~/Ruby] 阿部愼之介 あべしんのすけ abeshinnosuke 捕手 10 右投左打 小笠原道大 おがさわらみちひろ ogasawaramichihiro 内野手 2 右投左打 高橋由伸 たかはしよしのぶ takahashiyoshinobu 投手 24 右投左打 亀井義行 かめいよしゆき kameiyoshiyuki 外野手 9 右投左打 脇谷亮太 わきやりょうた wakiyaryouta 内野手 23 右投左打 鈴木尚広 すずきたかひろ suzukitakahiro 外野手 12 右投左打 河野元貴 かわのげんき kawanogenki 捕手 111 右投左打 橋本到 はしもといたる hashimotoitaru 外野手 94 右投左打 村田透 むらたとおる muratatoru 投手 46 右投左打 ・考察 投打の部分を見てみるとすべてに「右投左打」が入っている。もとのデータで 数えてみると右投左打の選手は9人なので、この結果は正しい。 (6)選手の一人に長野という名字がいるが、読み方が「ながの」か「ちょうの」 かわからないので検索してみた。 ・実行結果 pan{c109074}% egrep "ながの|ちょうの" data06.dat [~/Ruby] 長野久義 ちょうのひさよし chonohisayoshi 外野手 7 右投右打 ・考察 実行結果から「ちょうの」であることがわかった。また、| で区切ることで正し い方が検索することができた。 E、全体の考察 今回、名字の最初の文字だけを検索しようとして、自分が予想したのと違う結果 が出たことが、 「^」 最初の文字列を検索できる。また、「 | 」で正しいのは どちらなのか検索することができる。 F、今回のまとめ *利用した正規表現と習った正規表現 "キーワード" → キーワードで検索できる。 " . " → 任意の一文字の候補を取りだす。 " ? " → 直前の文字が0、または1回出現し、直前の記号も可。 " ^ " → 検索したい文字が先頭の文字列にあるときのみ。 " $ " → 検索したい文字が最後の文字列にあるときのみ。 " A | B " → AまたはBを検索できる。 " ( ) " → ( ) 内の条件を先に探すことが出来る。 3、感想 今回は、とても時間がかかったけど、 実際に実行してみて学ぶことが多かったし、 うまく実行できたときとても嬉しかった。 これからもがんばっていきたい。 自分の持ち物の中で正規表現を使っているものを考えたところ、 電子辞書が当てはまると思った。 最初の文字のキーワードであてはまるものが一覧で検索できるからである。 *参考文献 西村先生のHP 基礎プログラミング I 第6回 正規表現と検索 「うろ覚えの検索」 http://roy/~madoka/2010/r1/06/06_03_theme_01_patternmatching.html 「何回か繰り返されている文字を探したい」 http://roy/~madoka/2010/r1/06/06_04_theme_02_repetation.html 「いくつかある候補を探したい場合」 http://roy/~madoka/2010/r1/06/06_05_theme_03_or.html 「行頭や行末で調べたいとき」 http://roy/~madoka/2010/r1/06/06_12_theme_09_headtail.html 神田先生のHP 「2進数と16進数」 http://roy/~naoya/ruby/9.html 読売巨人軍公式ホームページ 選手一覧 http://www.giants.jp/G/player/ *共同学習者 佐竹 聡美 / 小松 由里