第6回 基礎プログラミング I レポート課題 氏名:木内雄 学籍番号:c1090561 語学クラス:中国語 コース(系):政策 1. 筆記問題 A. 誕生日1990年8月29日 二進数 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/1 = 0余り1 0d1990 = 0b11111000110 0d8 8/2 = 4余り0 4/2 = 2余り0 2/2 = 1余り0 1/2 = 0余り1 0d8 = 0b1000 0d29 29/2 = 14余り1 14/2 = 7余り0 7/2 = 3余り1 3/2 = 1余り1 1/2 = 0余り1 0d29 = 0b11101 よって誕生日を二進数で表すと11111000110年1000月11101日になる。 16進数 0d1990 = 0b11111000110 1990/16 = 124余り6 124/16 = 7余り12 7/16 = 0余り7 0X=7126 12は16進数でCなので 0x=7C26 0d8 = 0b1000 下の表から 0d8 = 0x8 0d29 = 0b11101 後から4つずつ区切り下の表を見ると。 1101 = D 1 = 1 0x8 = D1 10進数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 2進数 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 16進数 0 1 2 3 4 5 6 7 8 9 A B C D よって16進数で誕生日を表すと7C26年8月D1日となる。 B. 0xは省略する ASCII表より k = 6b i = 69 n = 6e a = 61 y = 79 u = 75 u = 75 2.プログラム問題 A.作成したデータの内容説明 今回は、たばこの銘柄と値段を検索してみた。 B.データファイルの張りつけ たばこ ピース CASTER 350円 たばこ ホープ HOPE 150円 たばこ マイルドセブン MILDSEVEN 300円 たばこ セブンスター SevenSters 300円 たばこ ハイライト hi-lite 290円 たばこ クール kool 320円 たばこ ケント KENT 300円 たばこ マールボロ Marlbolo 320円 たばこ ラーク LARK 300円 たばこ フィリップモリス PHILIPMORRIS 300円 たばこ キャビン CABIN 300円 たばこ キャメル CAMEL 300円 C.どのような分類をしたいのか、目的についての説明 たばこの銘柄と英語表記と値段を分類した。検索したたばこの値段や英語表記を調べるために使用する。 D.分類に使った検索パターンについて a. egrep "たばこ" data06.dat を実行する。予想は全て検索される。 b. egrep "350円$" data06.dat を実行する。予想は350円のホープのみ検索される。 c. egrep "C+A" data06.dat を実行する。予想はCとAが入っている。キャスター、キャビン、キャメルが検索される。 d. egrep "Marl|hi" data06.dat を実行する。予想はマルボロとハイライトが検索される。 e. egrep -i "seven" data06.dat を実行する。予想はsevenが入っているものを大文字 小文字関係なく検索 する。 E.実行した結果 a. pan{c109056}% egrep "たばこ" data06.dat [~/Ruby] たばこ キャスター CASTER 350円 たばこ ホープ HOPE 150円 たばこ マイルドセブン MILDSEVEN 300円 たばこ セブンスター SevenSters 300円 たばこ ハイライト hi-lite 290円 たばこ クール kool 320円 たばこ ケント KENT 300円 たばこ マールボロ Marlbolo 320円 たばこ ラーク LARK 300円 たばこ フィリップモリス PHILIPMORRIS 300円 たばこ キャビン CABIN 300円 たばこ キャメル CAMEL 300円 b.pan{c109056}% egrep "350円$" data06.dat [~/Ruby] たばこ キャスター CASTER 350円 c. pan{c109056}% egrep "C+A" data06.dat [~/Ruby] たばこ キャスター CASTER 350円 たばこ キャビン CABIN 300円 たばこ キャメル CAMEL 300円 d. pan{c109056}% egrep "Marl|hi" data06.dat [~/Ruby] たばこ ハイライト hi-lite 290円 たばこ マールボロ Marlbolo 320円 e.pan{c109056}% egrep -i "seven" data06.dat [~/Ruby] たばこ マイルドセブン MILDSEVEN 300円 たばこ セブンスター SevenSters 300円 F.結果の考察 aは「たばこ」と入っている全てのものが出てきたので正常だと思われる。 bは最後に350円と入っているピースが出てきたので正常だと思われる。 cはCとAが入っているキャスター、キャビン、キャメルが出てきたので正常だ と思われる。 dはMarlかhiが入っているマルボロとハイライトがでてきたので正常だと思わ れる。 eは大文字小文字に関らずマイルドセブンとセブンスターが出てきたので正常 だと思われる。 G.利用した正規表現 $: 最後の文字だけを検索する。 +: 直前の文字を出現させる。 -i: 大文字小文字どちらでも検索するようにする。 感想 今回は検索するためのプログラムを習った。今までと違いプログラム本体は複 雑ではなく、その検索の仕方が沢山あり大変だった。 身の回りで使われている正規表現といえば、図書館にある蔵書検索などがある。 参考文献 2進数、16進数と10進数 http://www.asahi-net.or.jp/~ax2s-kmtn/ref/bdh.html タバコの銘柄一覧 http://ja.wikipedia.org/wiki/ 基礎プログラミング I 第6回 正規表現と検索 西村まどか http://roy/~madoka/2010/r1/06/ 共同学習者:久保田瑛一郎、青木千紗