第6回 基礎プログラミング I レポート課題 氏名:大島 藍 学籍番号:C1090331 語学クラス:中国語 コース(系):福祉コース 1、筆記問題 A、 2進数だから2で割る。 私の誕生日は1990年9月13日です。 2/19 2/ 9…1 2/ 4…1 2/ 2…1 1…0 よって、0d19 = 0b10111である。 2/90 2/45…0 2/22…1 2/11…0 2/ 5…1 2/ 2…1 1…0 よって、0d90 = 0b1011010である。 2/ 9 2/ 4…1 2/ 2…0 1…0 よって、0d9 = 0b1001である。 2/13 2/ 6…1 2/ 3…0 2/ 1…1 よって、0d13 = 0b1101である。 10進数で表示されたものを16進数に直すには、10進数を2進数に直した後16進数 に直す。すでに2進数に直してあるのでそれを使う。直しかたは、2進数を右から 四つずつ区切っていく。1990は二つに分けたので 19 の2進数は 1 0111 にな り、90 の2進数は 101 1010 9月の2進数 1001 になり、13日の2進数は 1101 にな る。 2進数 10進数 16進数 0001 1 1 0010 2 2 0011 3 3 0100 4 4 0101 5 5 0110 6 6 0111 7 7 1000 8 8 1001 9 9 1010 10 A 1011 11 B 1100 12 C 1101 13 D 1110 14 E 1111 15 F 上の表より、1 0111 は 1 7 になる。101 1010 は 5 A になる。1001 は 9 にな る。1101 は D になる。なので、誕生日を16進数で表すと、17 5A 年 9 月 D 日 になる。 B、 oosima ai を 16 進法表示で表すと ASCII コードより o = 0x6f o = 0x6f s = 0x73 i = 0x69 m = 0x6d a = 0x61 a = 0x61 i = 0x69 になるなで、0x6f、0x6f、0x73、0x69、0x6d、0x61、0x61、0x69 と表すことができる。 2、プログラム問題 作成したデータ内容の説明 ・バスケについて書きたかったのでデータをまとめた。名前、ポジション、在籍 数、ナンバーについてまとめた。 data06.dat 名前 ポジション 在籍数 ナンバー アントニオ・マクダイス F/C 15年在籍 34 ティム・ダンカン F 13年在籍 21 マヌー・ジノビリー G 11年在籍 20 リチャード・ジェファーソン F 9年在籍 24 トニー・パーカー G 9年在籍 9 ロジャー・メイソン G/F 8年在籍 8 キース・ポーカンス G 7年在籍 10 マット・ポナー F/C 7年在籍 15 イアン・マヒーミ C 5年在籍 28 ジェージ・ヒル G 2年在籍 3 マリーク・ヘアストーン G 2年在籍 1 デュワン・プレアー F/C 1年在籍 45 ギャレット・テンブル G 1年在籍 2 アロンジ・ギー G 1年在籍 23 カーティス・ジュレルス G 1年在籍 5 data06_a.dat 名前 ポジション 在籍数 ナンバー 1 ティム・ダンカン F 13年在籍 21 2 マヌー・ジノビリー G 11年在籍 20 3 リチャード・ジェファーソン F 9年在籍 24 4 トニー・パーカー G 9年在籍 9 5 ロジャー・メイソン G/F 8年在籍 8 6 キース・ポーカンス G 7年在籍 10 7 マット・ポナー F/C 7年在籍 15 8 イアン・マヒーミ C 5年在籍 28 9 ジェージ・ヒル G 2年在籍 3 10 マリーク・ヘアストーン G 2年在籍 1 11 デュワン・プレアー F/C 1年在籍 45 12 ギャレット・テンブル G 1年在籍 2 13 アロンジ・ギー G 1年在籍 23 14 カーティス・ジュレルス G 1年在籍 5 ・目的 NBAの選手について調べることができる。スパーズは日本人で初めてNBA入りした、 田臥勇太のいたチームなので興味があった。 ・パターン a、egrep "G" data06.datを実行すると予想では、Gの選手がでてくる。 pan{c109033}% egrep "G" data06.dat [~/Ruby] マヌー・ジノビリー G 11年在籍 20 トニー・パーカー G 9年在籍 9 ロジャー・メイソン G/F 8年在籍 8 キース・ポーカンス G 7年在籍 10 ジェージ・ヒル G 2年在籍 3 マリーク・ヘアストーン G 2年在籍 1 ギャレット・テンブル G 1年在籍 2 アロンジ・ギー G 1年在籍 23 カーティス・ジュレルス G 1年在籍 5 b、egrep 'F' data06.datを実行すると予想では、Fの選手がでてくる。 pan{c109033}% egrep 'F' data06.dat [~/Ruby] ティム・ダンカン F 13年在籍 21 リチャード・ジェファーソン F 9年在籍 24 ロジャー・メイソン G/F 8年在籍 8 マット・ポナー F/C 7年在籍 15 デュワン・プレアー F/C 1年在籍 45 c、egrep "[^名-籍]" data06.datを実行すると予想では、名と籍のつく選手がで てくる。 pan{c109033}% egrep "[^名-籍]" data06.dat [~/Ruby] 名前 ポジション 在籍数 ナンバー アントニオ・マクダイス F/C 15年在籍 34 ティム・ダンカン F 13年在籍 21 マヌー・ジノビリー G 11年在籍 20 リチャード・ジェファーソン F 9年在籍 24 トニー・パーカー G 9年在籍 9 ロジャー・メイソン G/F 8年在籍 8 キース・ポーカンス G 7年在籍 10 マット・ポナー F/C 7年在籍 15 イアン・マヒーミ C 5年在籍 28 ジェージ・ヒル G 2年在籍 3 マリーク・ヘアストーン G 2年在籍 1 デュワン・プレアー F/C 1年在籍 45 ギャレット・テンブル G 1年在籍 2 アロンジ・ギー G 1年在籍 23 カーティス・ジュレルス G 1年在籍 5 d、egrep "^[1-2]" data06_a.datを実行すると予想では、1〜2と表示した選手が でてくる。 pan{c109033}% egrep "^[1-2]" data06_a.dat [~/Ruby] 1 ティム・ダンカン F 13年在籍 21 2 マヌー・ジノビリー G 11年在籍 20 10 マリーク・ヘアストーン G 2年在籍 1 11 デュワン・プレアー F/C 1年在籍 45 12 ギャレット・テンブル G 1年在籍 2 13 アロンジ・ギー G 1年在籍 23 14 カーティス・ジュレルス G 1年在籍 5 e、egrep "[名-籍]" data06.datを実行すると予想では、名前と籍がつく選手がでて くる。全部に籍がついているから全部の名前とポジションと在籍数とナンバーが でてくる。 pan{c109033}% egrep "[名-籍]" data06.dat [~/Ruby] 名前 ポジション 在籍数 ナンバー アントニオ・マクダイス F/C 15年在籍 34 ティム・ダンカン F 13年在籍 21 マヌー・ジノビリー G 11年在籍 20 リチャード・ジェファーソン F 9年在籍 24 トニー・パーカー G 9年在籍 9 ロジャー・メイソン G/F 8年在籍 8 キース・ポーカンス G 7年在籍 10 マット・ポナー F/C 7年在籍 15 イアン・マヒーミ C 5年在籍 28 ジェージ・ヒル G 2年在籍 3 マリーク・ヘアストーン G 2年在籍 1 デュワン・プレアー F/C 1年在籍 45 ギャレット・テンブル G 1年在籍 2 アロンジ・ギー G 1年在籍 23 カーティス・ジュレルス G 1年在籍 5 f、egrep "[ァ-ン]" data06.datを実行すると予想では、在籍数とナンバーに1のつく選 手がでてくる。 pan{c109033}% egrep "[ァ-ン]" data06.dat [~/Ruby] 名前 ポジション 在籍数 ナンバー アントニオ・マクダイス F/C 15年在籍 34 ティム・ダンカン F 13年在籍 21 マヌー・ジノビリー G 11年在籍 20 リチャード・ジェファーソン F 9年在籍 24 トニー・パーカー G 9年在籍 9 ロジャー・メイソン G/F 8年在籍 8 キース・ポーカンス G 7年在籍 10 マット・ポナー F/C 7年在籍 15 イアン・マヒーミ C 5年在籍 28 ジェージ・ヒル G 2年在籍 3 マリーク・ヘアストーン G 2年在籍 1 デュワン・プレアー F/C 1年在籍 45 ギャレット・テンブル G 1年在籍 2 アロンジ・ギー G 1年在籍 23 カーティス・ジュレルス G 1年在籍 5 g、egrep "[0-9]" data06.datを実行すると予想では、在籍数とナンバーに0〜9のつく選 手がでてくる。 pan{c109033}% egrep "[0-9]" data06.dat [~/Ruby] アントニオ・マクダイス F/C 15年在籍 34 ティム・ダンカン F 13年在籍 21 マヌー・ジノビリー G 11年在籍 20 リチャード・ジェファーソン F 9年在籍 24 トニー・パーカー G 9年在籍 9 ロジャー・メイソン G/F 8年在籍 8 キース・ポーカンス G 7年在籍 10 マット・ポナー F/C 7年在籍 15 イアン・マヒーミ C 5年在籍 28 ジェージ・ヒル G 2年在籍 3 マリーク・ヘアストーン G 2年在籍 1 デュワン・プレアー F/C 1年在籍 45 ギャレット・テンブル G 1年在籍 2 アロンジ・ギー G 1年在籍 23 カーティス・ジュレルス G 1年在籍 5 h、 egrep "3|イ" data06.datを実行すると予想では、在籍数とナンバーに3とイのつく選 手とイのつく選手がでてくる。 pan{c109033}% egrep "3|イ" data06.dat [~/Ruby] アントニオ・マクダイス F/C 15年在籍 34 ティム・ダンカン F 13年在籍 21 ロジャー・メイソン G/F 8年在籍 8 イアン・マヒーミ C 5年在籍 28 ジェージ・ヒル G 2年在籍 3 アロンジ・ギー G 1年在籍 23 i、 egrep "[5]$" data06.datを実行すると予想では、在籍数とナンバーに5のつく選 手がでてくる。 pan{c109033}% egrep "[5]$" data06.dat [~/Ruby] マット・ポナー F/C 7年在籍 15 デュワン・プレアー F/C 1年在籍 45 カーティス・ジュレルス G 1年在籍 5 j、egrep "^ア" data06.datを実行すると予想では、アのつく選手がでてくる。 pan{c109033}% egrep "^ア" data06.dat [~/Ruby] アントニオ・マクダイス F/C 15年在籍 34 アロンジ・ギー G 1年在籍 ・考察 egrep"[^ ]"data06.dat のやり方ではなく、egrep"^[]"data06.dat にしてプログラムを実行 することがわかった。パターンcで egrep"[^ ]"data06.datでも実行結果がでたのは自分の作ったファ イルの中に 名-籍 を表すものがはいっているからだと思った。また、在籍数などにも数 字が使われているため、 文字を変えても egrep"[^ ]"data06.dat に表示される ことがわかった。作成していく中で egrep"^[ ]"data06.dat で文字を使うと全 て表示されることがわかったので、実行結果を全て変えなくてはいけない状況(パターンd)だっ たので途中でわかったことを Ruby/data06_a.dat というプログラムを作成して、 もう1つのデータを作った。 ・利用した正規表現 egrep "" data06.dat →""の中に文字をいれるとそこにいれたものを検索する。 egrep '' data06.dat →''の中に文字をいれるとそこにいれたものを検索する。 egrep "[^名-籍]" data06.dat →"[^ ]"でやってもプログラムの中に文字があるから結果がでるけど、[^ ]は間 違い。 egrep "^[1-2]" data06.dat →1-2までの数字がでる。 egrep "[名-籍]" data06.dat →"[]"の中に文字をいれたものを検索する。 egrep "[ァ-ン]" data06.dat →上記と同じ egrep "[0-9]" data06.dat →上記と同じ egrep "3|イ" data06.dat →""の中に文字をいれると3とイを検索する。 egrep "[5]$" data06.dat →最後の文字だけ検索する。 egrep "^ア" data06.dat →"^"の中に文字をいれると、いれた文字の頭文字から始まるものを検索する。 ・感想 プログラミングをやっていく中でいろいろわかってきた。間違ったものを作成し たけど、その間違ったものを解決するためにいろいろ考えてデータをもう1つ作 成した。それで解決できてよかった。次の講義もがんばりたい。 ・参考文献 基礎プログラミング I 第 5 回 「配列の構造」 ASCII コード表 (講義ノート) 西村まどか先生 http://roy/~madoka/2010/r1/05/05_01_theme_01_asciicode.html 基礎プログラミング I 第6回 正規表現と検索 「1 文字違い」(講義ノート) 西村まどか先生 http://roy/~madoka/2010/r1/06/06_06_theme_04_onecharacter.html サンアントニオ・スパーズ -NBA- http://www.nba.co.jp/teams/spurs/roster/ 共同学習者 青木 千紗 、 横山 広樹、 久保田 瑛一郎 協力してくれた先輩 工藤 智也さん