間違えて出席課題をレポート課題のあて先に送ってしまいました。 こちらが正しい課題レポートです。 第6回 基礎プログラミング I レポート課題 氏名:XXXXXXXX 学籍番号:C108XXXX 語学クラス:英語XX コース(系):社会 1. 1. 私の誕生日は1989年7月10日だ。 0d19890710とする。 0d19890710=0b??をもとめるには、2で割っていき、あまりを下から並べると良い。 19890710/2=9945355 あまり 0 9945355/2=4972677 あまり1 4972677/2=2486338 あまり1 2486338/2=1243169 あまり0 1243169/2=621584 あまり1 621584/2=310792あまり0 310792/2=155396あまり0 155396/2=77698あまり0 77698/2=38849あまり0 38849/2=19424あまり1 19424/2=9712あまり0 9712/2=4856あまり0 4856/2=2428あまり0 2428/2=1214あまり0 1214/2=607あまり0 607/2=303あまり1 303/2=151あまり1 151/2=75あまり1 75/2=37あまり1 37/2=18あまり1 18/2=9あまり0 9/2=4あまり1 4/2=2あまり0 2/2=1あまり0 1/2=0あまり1 よって0d19890710=0d1001011111000001000010110 0d19890710=0x?? 16進数の場合は16で割っていく。 19890710/16=1243169あまり6 1243169/16=77698あまり1 77698/16=4856あまり2 4856/16=303あまり8 303/16=18あまり15 18/16=1あまり2 1/16=0あまり1 となり、あまりを逆から付け足していくと 1 2 15 8 2 1 6 16進数であらわすと、10以上16未満の数が変わるので 1 2 F 8 2 1 6 よって0d19890710=0x12F8216 2. Yoshida Mizue をコード表を見て変換したところ、 Y 0x59 o 0x6f s 0x73 h 0x68 i 0x69 d 0x64 a 0x61 M 0x4d i 0x69 z 0x7a u 0x75 e 0x65 となった。 確認のため、前回課題レポートで姫の理想の番人を知るのにつくったプログラム を応用し、実行した。 #!/usr/koeki/bin/ruby printf("私は、%c%c%c%c%c%c%c%c%c%c%c%cです。\n", 0x59,0x6f,0x73,0x68,0x69,0x64,0x61,0x4d,0x69,0x7a,0x75,0x65) その結果、 pan{c108203}% ./test.rb [~/Ruby] 私は、YoshidaMizueです。 となった。 2. プログラム問題 a.data06.dat の説明 アニメ・プリキュアシリーズに関するデータを作成。 (「ふたりはプリキュア」〜「ハートキャッチプリキュア」) プリキュア17人(一部例外含む)の本名・読み方と変身後の名前、主な必殺技をデータ化した。 b.作成データ data06.dat 美墨なぎさ みすみ なぎさ キュアブラック プリキュア・マーブル・スクリュー 雪城ほのか ゆきしろ ほのか キュアホワイト プリキュア・マーブル・スクリュー 九条ひかり くじょう ひかり シャイニールミナス ハーティエル・アンクション 日向咲 ひゅうが さき キュアブルーム プリキュア・ツインストリーム・スプラッシュ 美翔舞 みしょう まい キュアイーグレット プリキュア・ツインストリーム・スプラッシュ 夢原のぞみ ゆめはら のぞみ キュアドリーム プリキュア・ドリームアタック 夏木りん なつき りん キュアルージュ プリキュア・ルージュファイヤー 春日野うらら かすがの うらら キュアレモネード プリキュア・レモネードフラッシュ 秋元こまち あきもと こまち キュアミント プリキュア・ミントプロテクション 水無月かれん みなづき かれん キュアアクア プリキュア・アクアストリーム 美々野くるみ みみの くるみ ミルキィローズ ミルキィローズ・ブリザード 桃園ラブ ももぞの らぶ キュアピーチ プリキュア・ラブ・サンシャイン 蒼野美希 あおの みき キュアベリー プリキュア・エスポワール・シャワー 山吹祈里 やまぶき いのり キュアパイン プリキュア・ヒーリング・プレアー 東せつな ひがし せつな キュアパッション プリキュア・ハピネス・ハリケーン 花咲つぼみ はなさき つぼみ キュアブロッサム プリキュア・ピンクフォルテ・ウェーブ 来海えりか くるみ えりか キュアマリン プリキュア・ブルーフォルテ・ウェーブ c.プリキュアの本名を知りたい場合や、必殺技を知りたい場合などに使用。 d.検索パターン 1.egrep "キュア" data06.dat を実行。 名前にも必殺技にも キュア の字が入らない、 シャイニー ルミナスとミルキィローズを除いた15名が検索されると予想。 2.egrep "美" data06.dat を実行。 本名に 美 が入る4名が検索されると予想。 ・美墨なぎさ ・美翔舞 ・美々野くるみ ・蒼野美希 3.egrep "^美" data06.dat を実行。 本名が 美 から始まる3人が検索されると予想。 ・美墨なぎさ ・美翔舞 ・美々野くるみ 4.egrep "くるみ" data06.dat を実行。 本名に くるみ が入る2名が検索されると予想。 ・美々野くるみ ・くるみえりか 5.egrep "ン$" data06.dat を実行 必殺技名が ン で終わるものが検索されると予想。 ・ハーティエル・アンクション ・プリキュア・ミントプロテクション ・プリキュア・ラブ・サンシャイン ・プリキュア・ハピネス・ハリケーン 6.egrep "ブ..厶" data06.dat を実行 ブ○○ムを検索。 キュアブルームがひっかかると予想。 7.egrep "ブ...厶" data06.dat を実行 ブ○○○ムを検索。 キュアブロッサムがひっかかると予想。 8.egrep "[ぁ-ん]" data06.dat ひらがなが入っているものを検索。 今回は全てに読み仮名をつけたので、17人全員がひっかかると予想。 9.egrep "ほ[ぁ-ん]か" data06.dat ほ○かを検索。○の中をひらがなに限定。 雪城ほのか がひっかかると予想。 10.egrep "美[亜-腕]" 美の次に常用漢字が入るものを検索。 ・美墨なぎさ ・美翔舞 ・美々野くるみ ・蒼野美紀 がひっかかると予想。 11.egrep "ブラ[ァ-ン]ク" data06.dat ブラ○クを検索。○の中はカタカナ限定。 キュアブラックがひっかかると予想。 12.egrep "[りれ]ん" data06.dat 名前が りん だか れん だかうろ覚えなものを検索。 ・夏木りん ・水無月かれん がひっかかると予想。 e.実行結果 1. roy{c108203}% egrep "キュア" data06.dat [~/Ruby] 美墨なぎさ みすみ なぎさ キュアブラック プリキュア・マーブル・スクリュー 雪城ほのか ゆきしろ ほのか キュアホワイト プリキュア・マーブル・スクリュー 日向咲 ひゅうが さき キュアブルーム プリキュア・ツインストリーム・スプラッシュ 美翔舞 みしょう まい キュアイーグレット プリキュア・ツインストリーム・スプラッシュ 夢原のぞみ ゆめはら のぞみ キュアドリーム プリキュア・ドリームアタック 夏木りん なつき りん キュアルージュ プリキュア・ルージュファイヤー 春日野うらら かすがの うらら キュアレモネード プリキュア・レモネードフラッシュ 秋元こまち あきもと こまち キュアミント プリキュア・ミントプロテクション 水無月かれん みなづき かれん キュアアクア プリキュア・アクアストリーム 桃園ラブ ももぞの らぶ キュアピーチ プリキュア・ラブ・サンシャイン 蒼野美希 あおの みき キュアベリー プリキュア・エスポワール・シャワー 山吹祈里 やまぶき いのり キュアパイン プリキュア・ヒーリング・プレアー 東せつな ひがし せつな キュアパッション プリキュア・ハピネス・ハリケーン 花咲つぼみ はなさき つぼみ キュアブロッサム プリキュア・ピンクフォルテ・ウェーブ 来海えりか くるみ えりか キュアマリン プリキュア・ブルーフォルテ・ウェーブ 2. roy{c108203}% egrep "美" data06.dat [~/Ruby] 美墨なぎさ みすみ なぎさ キュアブラック プリキュア・マーブル・スクリュー 美翔舞 みしょう まい キュアイーグレット プリキュア・ツインストリーム・スプラッシュ 美々野くるみ みみの くるみ ミルキィローズ ミルキィローズ・ブリザード 蒼野美希 あおの みき キュアベリー プリキュア・エスポワール・シャワー 3. roy{c108203}% egrep "^美" data06.dat [~/Ruby] 美墨なぎさ みすみ なぎさ キュアブラック プリキュア・マーブル・スクリュー 美翔舞 みしょう まい キュアイーグレット プリキュア・ツインストリーム・スプラッシュ 美々野くるみ みみの くるみ ミルキィローズ ミルキィローズ・ブリザード 4. roy{c108203}% egrep "くるみ" data06.dat [~/Ruby] 美々野くるみ みみの くるみ ミルキィローズ ミルキィローズ・ブリザード 来海えりか くるみ えりか キュアマリン プリキュア・ブルーフォルテ・ウェーブ 5. roy{c108203}% egrep "ン$" data06.dat [~/Ruby] 九条ひかり くじょう ひかり シャイニールミナス ハーティエル・アンクション 秋元こまち あきもと こまち キュアミント プリキュア・ミントプロテクション 桃園ラブ ももぞの らぶ キュアピーチ プリキュア・ラブ・サンシャイン 東せつな ひがし せつな キュアパッション プリキュア・ハピネス・ハリケーン 6 pan{c108203}% egrep "ブ..ム" data06.dat [~/Ruby] 日向咲 ひゅうが さき キュアブルーム プリキュア・ツインストリーム・スプラッシュ 7 pan{c108203}% egrep "ブ...ム" data06.dat [~/Ruby] 花咲つぼみ はなさき つぼみ キュアブロッサム プリキュア・ピンクフォルテ・ウェーブ 8. 美墨なぎさ みすみ なぎさ キュアブラック プリキュア・マーブル・スクリュー 雪城ほのか ゆきしろ ほのか キュアホワイト プリキュア・マーブル・スクリュー 九条ひかり くじょう ひかり シャイニールミナス ハーティエル・アンクション 日向咲 ひゅうが さき キュアブルーム プリキュア・ツインストリーム・スプラッシュ 美翔舞 みしょう まい キュアイーグレット プリキュア・ツインストリーム・スプラッシュ 夢原のぞみ ゆめはら のぞみ キュアドリーム プリキュア・ドリームアタック 夏木りん なつき りん キュアルージュ プリキュア・ルージュファイヤー 春日野うらら かすがの うらら キュアレモネード プリキュア・レモネードフラッシュ 秋元こまち あきもと こまち キュアミント プリキュア・ミントプロテクション 水無月かれん みなづき かれん キュアアクア プリキュア・アクアストリーム 美々野くるみ みみの くるみ ミルキィローズ ミルキィローズ・ブリザード 桃園ラブ ももぞの らぶ キュアピーチ プリキュア・ラブ・サンシャイン 蒼野美希 あおの みき キュアベリー プリキュア・エスポワール・シャワー 山吹祈里 やまぶき いのり キュアパイン プリキュア・ヒーリング・プレアー 東せつな ひがし せつな キュアパッション プリキュア・ハピネス・ハリケーン 花咲つぼみ はなさき つぼみ キュアブロッサム プリキュア・ピンクフォルテ・ウェーブ 来海えりか くるみ えりか キュアマリン プリキュア・ブルーフォルテ・ウェーブ 9. pan{c108203}% egrep "ほ[ぁ-ん]か" data06.dat [~/Ruby] 雪城ほのか ゆきしろ ほのか キュアホワイト プリキュア・マーブル・スクリュー 10. roy{c108203}% egrep "美[亜-腕]" data06.dat [~/Ruby] 美墨なぎさ みすみ なぎさ キュアブラック プリキュア・マーブル・スクリュー 蒼野美希 あおの みき キュアベリー プリキュア・エスポワール・シャワー 11. pan{c108203}% egrep "ブ[ァ-ン]ック" data06.dat [~/Ruby] 美墨なぎさ みすみ なぎさ キュアブラック プリキュア・マーブル・スクリュー 12. roy{c108203}% egrep "[りれ]ん" data06.dat [~/Ruby] 夏木りん なつき りん キュアルージュ プリキュア・ルージュファイヤー 水無月かれん みなづき かれん キュアアクア プリキュア・アクアストリーム f.結果の考察 ほとんどの検索は自分の予想通りにいった。 だが、5の egrep "ン$" data06.dat をはじめに検索したとき、 roy{c108203}% egrep "ン$" data06.dat [~/Ruby] 秋元こまち あきもと こまち キュアミント プリキュア・ミントプロテクション しか出てこなかった。 データを開き原因を探ると、出てこなかったものは"ン"の後ろに空白があった。 空白を削り再検索するとちゃんと出てきた。 10.美[亜-腕]では、予想に反して 美翔舞 と 美々野くるみ が検索されなかった。 常用漢字について調べたところ、翔 と々 は常用漢字でないからだと判明した。 それから、101教室では検索が上手くいったのだが204教室のroyではうまくいか ないものもあった。 g.利用した正規表現。さらに気づいたことなど。 "^〜" 前方一致検索 この文字/言葉から始まるものを検索 "〜$" 後方一致検索 検索語の最後の文字の後ろに空白があると上手く検索できない。 データ作成時に気を付けること。 "〜〜.〜" うろ覚えの文字を検索。不明な文字の数だけ . を入れるとよい。 "〜[ぁ-ん]〜" 一文字だけ思い出せないが、ひらがなと言うことは分かっている場合に使用。 同様に、一文字思い出せないが数字と分かっている場合は[0-9]。 アルファベットの場合は[a-z]。 常用漢字なら[亜-腕]が使える。ちなみにこれを使うと常用漢字以外はかからない。 それから、カタカナの場合も[ァ-ン]が使えるようだ。 3. 感想 まず、今回は間違えて出席課題をレポート課題のあて先に送ってしまった。 (出席課題作成途中で見ているページを間違えたことに気付いて正しいページにいっ たが、宛先を変えるのを忘れていた模様) 今後はこのようなことがないよう気を付けたい。 今回は検索の仕方を学んだ。 正規表現は、言葉をど忘れしたときにとても役に立つものだと感じた。 もしもこの機能がなく、完全な正解単語でないと検索できなかったなら、 その単語について知りたい人が答えに達するのは難しいだろうと思う。 身近なものの正規表現として、電子辞書の うろ覚えな言葉検索 がある。 語の頭、途中、語末に別れ、分かるところだけ入力すれば ^ や ? や * や . などを駆使し検索、発見してくれる。 参考文献 1.B 基礎プログラミング I 第5回 配列の構造 「ASCII 文字コード表」 http://roy/~madoka/2010/r1/05/05_01_theme_01_asciicode.html 2.f(考察) 常用漢字一覧 http://www21.tok2.com/home/toshinopage/kanji/joyo.html 製作 Toshi氏 協力者 妹(工業高校2年)