5 月 23 日のレポートについて 語学クラス:XXXX語XX 系: XXXX系 学籍番号:C106XXXX 氏名:XXXXXXXX 1、自分の誕生日を 2 進法表示、16 進法表示で表せ。19XX は、0d19 と 0dXX で 計算してもよいし、0d19XX として計算してもよい。 10 進法表示の誕生日も記しておくこと。 私の誕生日は1987年8月15日だ。 10進数は、0から9までの10個の数字を使って数を表現する。 したがって10進数での私の誕生日は1987年8月15日になる。 10進数 1987 8 15 2進数は、10進数を2で割り、余りを出しながら商が0になるまで繰り返す。そし て、その余りを先頭に下から順に並べていく。 西暦は長いので bc-l を使って計算した。 irsv{c106145}% bc -l 1987 / 2 993.50000000000000000000 993 /2 496.50000000000000000000 496 /2 248.00000000000000000000 248 /2 124.00000000000000000000 124 /2 62.00000000000000000000 62 /2 31.00000000000000000000 31 /2 15.50000000000000000000 15 /2 7.50000000000000000000 7 /2 3.50000000000000000000 3 /2 1.50000000000000000000 計算した答えの余りを先頭に下から順に並べると、11111000011となる。 計算した答えが正しいか、1の位から順にそれぞれを2乗する。0は何をかけても0 なので、0の部分の計算はしていない。 1+2+64+128+256+512+1024 1987 1987になったので計算は正しい。 8月を10進数から2進数に変換すると、 8÷2=4余り0 4÷2=2余り0 2÷2=1余り0 1÷2=0余り1 計算した答えの余りを先頭に下から順に並べると、1000となる。 次に、15日を10進数から2進数に変換すると、 15÷2=7余り1 7÷2=3余り1 3÷2=1余り1 1÷2=0余り1 計算した答えの余りを先頭に下から順に並べると、1111となる。 よって2進数の答えは、以下の通りになる。 2進数 1987年 →od11111000011 8月 →od1000 15日 →od1111 16進数は、0から9までの数字とAからFまでのアルファベットを使って数を表現す る。2進数で求めた答えを、西村先生の「16進数のまとめ」に数字を当てはめて答 えを出した。 1987年 od11111000011を下の位から順に4つに区切る。すると 111 1100 0011 に区切ることが出来る。 区切った数字を16進数のまとめに当てはめると、 111は 7 1100はc 0011は3 に当てはめることが出来る。 また、ox7c3が正しいのか確かめるために、それぞれの数字に16の二乗をかけ、 たした。 1*3+16*c+256*7 しかし、答えがおかしくなったので c の部分を10進数に変換して計算しなおした。 1*3+16*12+256*7 =1987 となったので正しい。 8月 od1000を16進数のまとめに当てはめると、 8 になる。 15日 od1111を16進数のまとめに当てはめると、 f になる。 16進数 1987年 →ox7c3 8月 →ox8 15日 →oxf 参考文献 2進数、16進数と10進数 http://www.asahi-net.or.jp/~AX2S-KMTN/ref/bdh.html 西村先先生のHP 16進数のまとめ http://roy//~madoka/2007/r1/04/04-12-binary2.html 2、 1、作成したデータの内容の説明 各都道府県の、有名な特産物についてまとめた。 1列目に特産物の名前 (漢字や片仮名で表記し、平仮名以外で書いた。) 2列目に特産物が採れる都道府県を書いた。 3列目に特産物の名前を平仮名で書いた。 4列目に特産物の名前をローマ字で書いた。 2、データファイルの張りつけ 桜桃 山形県 さくらんぼ sakuranbo 蜜柑 愛媛県 みかん mikan マンゴー 宮崎県 まんごー mango 砂糖黍 沖縄県 さとうきび satokibi タコ焼き 大阪府 たこやき takoyaki 蟹 福井県 かに kani じゃが芋 北海道 じゃがいも zyagaimo 桃 宮城県 もも momo 胡瓜 栃木県 きゅうり kyuri 松茸 広島県 まつたけ matutake キャベツ 岩手県 きゃべつ kyabetu 米 秋田県 こめ kome 林檎 青森県 りんご ringo 3、どのような分類をしたいのか、目的についての説明。 都道府県を入力するだけで、何がその都道府県での特産物なのか調べることがで きる。 また、特産物を入力するだけで、どこの都道府県の特産物なのか調べることがで きる。 4、分類に使った検索パターンについて 5、実行した結果 6、結果の考察 1) 4、egrep "sa" data06.datを実行する。予想は、桜桃や砂糖黍など sa で始まる 特産物が検索される。 5、irsv{c106145}% egrep "sa" data06.dat [~/Ruby] 桜桃 山形県 さくらんぼ sakuranbo 砂糖黍 沖縄県 さとうきび satokibi 6、予想と同じで桜桃と砂糖黍が検索された。 2) 4、egrep "^き" data06.datを実行する。予想は、胡瓜やキャベツなど き で始 まる特産物が検索される。 5、irsv{c106145}% 6、何も検索されなかった。^ をつけることによって先頭の文字が き で始まる 特産物だけ検索される。私のプログラムは、先頭が平仮名特産物はないので何も 検索されないことが分った。 3) 4、egrep "き" data06.datを実行する。予想は、タコ焼きや胡瓜、キャベツなど き が文字 のどこかに入っている特産物は検索される。 5、irsv{c106145}% egrep "き" data06.dat [~/Ruby] 砂糖黍 沖縄県 さとうきび satokibi タコ焼き 大阪府 たこやき takoyaki 胡瓜 栃木県 きゅうり kyuri キャベツ 岩手県 きゃべつ kyabetu 6、予想通り、タコ焼きや胡瓜、キャベツが検索された。また、プログラムを見ただけ では見落していたが、砂糖黍も検索された。 4) 4、egrep "[さ-た]"data06.datを実行する。予想は、さ で始まる特産物から た で始まる特産物までが検索される。 5、irsv{c106145}% egrep "[さ-た]" data06.dat [~/Ruby] 桜桃 山形県 さくらんぼ sakuranbo 砂糖黍 沖縄県 さとうきび satokibi タコ焼き 大阪府 たこやき takoyaki じゃが芋 北海道 じゃがいも zyagaimo 松茸 広島県 まつたけ matutakez 6、先頭の文字を指定していなかったので、予想とは外れて さ から た までの文字が特産物の中に入っているものが検 索された。 5) 4、egrep "tak?" data06.datを実行する。予想は、タコ焼きと松茸が検索される。 5、irsv{c106145}% egrep "tak?" data06.dat [~/Ruby] タコ焼き 大阪府 たこやき takoyaki 松茸 広島県 まつたけ matutake 6、予想通りタコ焼きと松茸が検索された。 6) 4、egrep "zyag[am]imo" data06.datを実行する。予想は、じゃが芋が検索され る。 5、irsv{c106145}% egrep "zyag[am]imo" data06.dat [~/Ruby] じゃが芋 北海道 じゃがいも zyagaimo 6、予想通りじゃが芋が検索された。 7) 4、 egrep "zyag[op]imo" data06.datを実行する。予想は[ ]の中は全くじゃが 芋の文字に当てはまらないので、何も検索されない。 5、 irsv{c106145}% 6、予想通り何も検索されず、% が出ただけだった。 8) 4、 egrep "nbo$" data06.dat を実行する。予想は、末尾の文字列だけを探し て検索することがでくるので、桜桃が検索される。 5、irsv{c106145}% egrep "nbo$" data06.dat [~/Ruby] 桜桃 山形県 さくらんぼ sakuranbo 6、予想通り、桜桃が検索された。 9) 4、 egrep "mo*o" data06.datを実行する。予想は桃が検索することができる。 5、irsv{c106145}% egrep "mo*o" data06.dat [~/Ruby] じゃが芋 北海道 じゃがいも zyagaimo 桃 宮城県 もも momo 6、じゃが芋も検索された。*の後に文字がなくとも検索されることが分った。 7、利用した正規表現をまとめる。さらに気づいたことなど。 "?"前後の文字候補を検索することができる。 "^"先頭の文字列のみを探して、検索することができる。 "$"末尾の文字列のみを探して、検索することができる。 "*"直前の文字がわからなくとも、検索することができる。 "[ ]で書いてある文字のどれかが一致すれば、検索することができる。 "[文字1ー文字2 ]" [文字1]から[文字2]の範囲の中で、どれか1つでも当てはま る文字がある場合、検索することができる。 気づいたことは、結果の考察と共にのべている。 参考文献 西村先生のHP 繰り返されている文字/末尾のみと行頭 http://roy~madoka/2007/r1/06/06-04-metachar2.html 優先される条件 http://roy~madoka/2007/r1/06/06-060metachar3.html 3、講義で学んだことについてなどの感想 今日の講義でmeta charactersを学んで、とても便利なプログラミングだと思っ た。検索する文字が曖昧な場合でも、meta charactersを使うことによって自分 のわかる範囲での検索が可能だったりと、使いやすいと思った。日常生活におい ても、図書の本を検索する場合などに用いられたりと、わたしたちの生活の身近 なところにあるプログラミングの仕組みを知ることが出来ておもしろいと思った。