第6回 基礎プログラミング I レポート課題 氏名:笹木郁哉 学籍番号:c1090791 語学クラス:英語1 コース(系):地域 1.A 2進数表示 (0d19、0d90、0d10、0d29:(10進数表示)) 10進数から2進数に変換するには、10進数を2で割って、 その商を更に2で割る、またその商を2で割って…と、 余りを出しながら商が0になるまで繰り返す。 そして最後の余りを先頭に下から順に並べる。 1990年生まれなので1990からスタートする。 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 A.0b1111000110 誕生月は10月なので0d10を2進法表示にするには、 先程同様、10進数を2で割って、その商をさらに2で割る、 またその商を2で割って…と、余りを出しながら商が0に なるまで繰り返す。 最後の余りを先頭に下から順に並べる。 10 / 2 = 5 ...... 0 5 / 2 = 2 ...... 1 2 / 2 = 1 ...... 0 A.0b010 同じ手順で29日生まれなので、0d29を2進法に変換する。 29 / 2 = 14 ...... 1 14 / 2 = 7 ...... 0 7 / 2 = 3 ...... 1 3 / 2 = 1 ...... 1 A.0b1101 よって、2進数表示の場合は、0b1111000110、 0b010、0b1101という3つの答えとなる。 16進数表示 (0d19、0d90、0d10、0d29:(10進数表示)) 10進数から16進数へ変換するには、10進数を16で割って、 その商をさらに16で割る、またその商を16で割って…と、 余りを出しながら商が0になるまで繰り返す。 そして最後の余りを先頭に下から順に並べる。 同じく1990年生まれなので、0d1990を16進数に変換する。 1990 / 16 = 124 ...... 6 124 / 16 = 7 ...... 12 7 / 16 = 0 ...... 7 A.0x7C6 16進数だと、12をCと置き換える事ができる。なので 0x7C6となる。 10進数、2進数、16進数対応表 10進数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2進数 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 16進数 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 同じく10月生まれなので、0d10を16進数0x??に変換する。 10 / 16 = 0 ...... 10 A.0xA 10は16進数でAと置き換える事ができるので、 0xAとなる。 同じく29日生まれなので、0d29を0x??に変換する。 いきなり16進数変換出来なかったので、先に 2進数変換してから16進数変換にする。 29 / 2 = 14 ...... 1 14 / 2 = 7 ...... 0 7 / 2 = 3 ...... 1 3 / 2 = 1 ...... 1 2進数表示にすると0b1101となる。これを上記に 記載した対応表に照らし合わせ16進数表示をし てみる。 1101は16進数でDとなる。 よって答えは0xDとなる。 A.0xD よって16進数では、0x7C6、0xA、0xDの3つの 答えが出た。 1.B 第5回 配列の構造で学習した「ASCII コード表」を活用し、 自分のアルファベットを当てはめた。 笹木郁哉(SASAKI FUMIYA)の通り当てはめる。 S ...... 0x53 A ...... 0x41 S ...... 0x53 A ...... 0x41 K ...... 0x4b I ...... 0x49 F ...... 0x46 U ...... 0x55 M ...... 0x4d I ...... 0x49 Y ...... 0x59 A ...... 0x41 自分の名前を16進数表記すると (0x53、0x41、0x53、0x41、0x4b、0x49、 0x46、0x55、0x4d、0x49、0x59、0x49)となること が分かる。 2. A 山形自動車道上り起点の村田JCTから山形自動車道下り 終点酒田みなとICまでのおかれているインターチェンジ の名称と番号、それらと接続している道路、東北自動車 道でもあり山形自動車道の起点となる村田JCTからの 距離。 B 山形自動車道 #IC #施設名 #接続路線名 #起点から 番号 (km) 26 村田JCT 東北自動車道 0.0 1 宮城川崎IC 国道286号(川崎バイパス) 10.4 古関PA 18.2 2 笹谷IC 国道286号 22.3 3 関沢IC 国道286号 28.1 4 山形蔵王IC/PA 国道286号 35.6 5 山形北IC 国道13号(山形バイパス) 41.9 緊急車緊急退出路 6 山形JCT 東北中央自動車道 46.6 7 寒河江IC 国道112号(寒河江バイパス) 52.8 7ー1 寒河江SA 国道458号 55. 7ー1 寒河江スマートIC 国道458号 55.9 8 西川IC 国道112号 67.0 西川TB 本線料金所 67.2 月山湖PA 81.3 9 月山IC 国道112号(月山道路) 83.5 基本計画区間(月山道路) 10 湯殿山IC 国道112号(月山道路) 104.5 庄内あさひBS 113.6 11 庄内あさひIC 県道44号余目温海線 114.4 櫛引PA 117.5 12 鶴岡IC/鶴岡料金所 国道7号 128.3 鶴岡JCT 日本海東北自動車道(計画中) 130.1 14 庄内空港IC 県道33号線庄内空港立川線 138.6 15 酒田IC/酒田料金所 国道7号 145.7 16 酒田みなとIC 県道59号酒田八幡線 157.6 C. 山形自動車道のルートを調べたり、距離を知ることに より、今後利用する際に便利だと思った。 D. a. egrep "0$" data06.datを実行する。 予想は距離数の末尾が0のものが 検索される。 b. egrep "^山" data06.dat を実行する。山という漢字がついたものが検索される。 E.pan{c109079}% egrep "酒 " dataa06.dat [~/Ruby] 15 酒田IC/酒田料金所 国道7号 145.7 16 酒田みなとIC 県道59号酒田八幡線 157.6 pan{c109079}% egrep "国道" data06.dat [~/Ruby] 1 宮城川崎IC 国道286号(川崎バイパス) 10.4 2 笹谷IC 国道286号 22.3 3 関沢IC 国道286号 28.1 4 山形蔵王IC/PA 国道286号 35.6 5 山形北IC 国道13号(山形バイパス) 41.9 7 寒河江IC 国道112号(寒河江バイパス) 52.8 7ー1 寒河江SA 国道458号 55.9 7ー1 寒河江スマートIC 国道458号 55.9 8 西川IC 国道112号 67.0 9 月山IC 国道112号(月山道路) 83.5 10 湯殿山IC 国道112号(月山道路) 104.5 12 鶴岡IC/鶴岡料金所 国道7号 128.3 15 酒田IC/酒田料金所 国道7号 145.7 pan{c109079}% egrep "[ぁ-ん]" data06.dat [~/Ruby] #IC #施設名 #接続路線名 #起点から(km) 庄内あさひBS 113.6 11 庄内あさひIC 県道44号余目温海線 114.4 16 酒田みなとIC 県道59号酒田八幡線 157.6 pan{c109079}% egrep "[亜-腕]" data06.dat [~/Ruby] 山形自動車道 #IC #施設名 #接続路線名 #起点から(km) 番号 26 村田JCT 東北自動車道 0.0 1 宮城川崎IC 国道286号(川崎バイパス) 10.4 古関PA 18.2 2 笹谷IC 国道286号 22.3 3 関沢IC 国道286号 28.1 4 山形蔵王IC/PA 国道286号 35.6 5 山形北IC 国道13号(山形バイパス) 41.9 緊急車緊急退出路 6 山形JCT 東北中央自動車道 46.6 7 寒河江IC 国道112号(寒河江バイパス) 52.8 7ー1 寒河江SA 国道458号 55.9 7ー1 寒河江スマートIC 国道458号 55.9 8 西川IC 国道112号 67.0 西川TB 本線料金所 67.2 月山湖PA 81.3 9 月山IC 国道112号(月山道路) 83.5 基本計画区間(月山道路) 10 湯殿山IC 国道112号(月山道路) 104.5 庄内あさひBS 113.6 11 庄内あさひIC 県道44号余目温海線 114.4 櫛引PA 117.5 12 鶴岡IC/鶴岡料金所 国道7号 128.3 鶴岡JCT 日本海東北自動車道(計画中) 130.1 14 庄内空港IC 県道33号線庄内空港立川線 138.6 15 酒田IC/酒田料金所 国道7号 145.7 16 酒田みなとIC 県道59号酒田八幡線 157.6 pan{c109079}% egrep -i "酒田" data06.dat [~/Ruby] 15 酒田IC/酒田料金所 国道7号 145.7 16 酒田みなとIC 県道59号酒田八幡線 157.6 E と F 今回作ったプログラムで正規表現を使う場面が なかったが、復習という形で書く。 使うアルファベットの文字がlだかrだか 分からないときは、そのわからない所に .(ピリオド)を打って検索すると出てくる。 [亜ー腕]という検索方法でも算出した。 このようにいろんな正規表現をためした所、 うまく実行出来た。 3.感想 今回はいつも以上に時間がかかったが、前回に引続き 個人的にはいいレポートを仕上げることが出来た。 とても、内容が難しくてついていくのがやっとだが 継続して真剣に取り組んでいきたいです。 共同学習者 奥山広大 阿部祐樹 協力してくれた先輩 大沼拓海さん 参考文献 基礎プログラミング I 第5回 配列の構造 「ASCII コード表」 http://roy/~madoka/2010/r1/05/05_01_theme_01_asciicode.html 2進数、16進数と10進数 http://www.asahi-net.or.jp/~ax2s-kmtn/ref/bdh.html 山形自動車道 http://ja.wikipedia.org/wiki/%E5%B1%B1%E5%BD%A2%E8%87%AA%E5%8B%95%E8%BB%8A%E9%81%93#.E3.82.A4.E3.83.B3.E3.82.BF.E3.83.BC.E3.83.81.E3.82.A7.E3.83.B3.E3.82.B8.E3.81.AA.E3.81.A9 正規表現のレポートの体裁について http://roy/~madoka/2010/rpt/egrep.html