第6回 基礎プログラミング I レポート課題 氏名:佐藤 裕康 学籍番号:c1090911 語学クラス:英語1 コース(系):政策マネジメント 1.A 私の誕生日は1990年12月10日なので、これを2進数、10進数に変換する。 なので、1990年を0d19と0d90 12月10日を0d12と0d10とする。 2進数に表すには、これを前回のように2で割っていき、余りと商で計算する。 0d19の場合(#の後ろは余りになります。) 19 / 2 = 9 #1 9 / 2 = 4 #1 4 / 2 = 2 #0 2 / 2 = 1 #0 1 / 2 = 0 #1 となったので、これを下から読むと10011なので 0d19は0b10011となります。 この要領で他もやると、 0d90を変換 90 / 2 = 45 #0 45 / 2 = 27 #1 27 / 2 = 13 #1 13 / 2 = 6 #1 6 / 2 = 3 #0 3 / 2 = 1 #1 1 / 2 = 0 #1 0d90 = 0b1101110 0d12を変換 12 / 2 = 6 #0 6 / 2 = 3 #0 3 / 2 = 1 #1 1 / 2 = 0 #1 0d12 = 0b1100 0d10を変換 10 / 2 = 5 #0 5 / 2 = 2 #1 2 / 2 = 1 #0 1 / 2 = 0 #1 od10 = 0b1010 となったので、2進数は以下の通りとなる。 0d19=0b10011 0d90=0b1101110 0d12=0b1100 0d10=0b1010 これを16進数にするには、先程の2進数を使用する。 下4桁で分けて、数字を16進数にする。 0b10011なので、「0011」「0001」となる。 0011は16進数で3 0001は16進数で1 となる。 この要領で他もやっていく。 0b1101110は「1110」「0110」 1110 = 14 = e 0110 = 6 0b1100 1100 = 12 = c 0b1010 1010 = 10 = a となったので、16進数に表示すると 31e6年 c月 a日 となる。 B. 私の名前のアルファベットは SATO HIROYASU なので、これを先日のアスキーコー ド表にあてはめていく。 S = 0x53 A = 0x41 T = 0x54 O = 0x4f H = 0x48 I = 0x49 R = 0x52 O = 0x4f Y = 0x59 A = 0x41 S = 0x53 U = 0x55 となりました。 2.A 結構前にスバルで作られていた1500cc2WDモデルの車について。 B. グレード シフト 型 式 I's SELECT MT GG2A53G I's SELECT AT GG2A53R I's SELECT II MT GG2B54G I's SELECT II AT GG2B54R I's MT GG2A54G I's MT GG2B54G I's AT GG2A54R I's AT GG2B54R I's sport MT GG2A5GG I's sport MT GG2B5GG I's sport AT GG2A5GR I's sport AT GG2B5GR I's sport Limited MT GG2B5GG I's sport Limited AT GG2B5GR 15i MT GG2C54G 15i MT GG2D54G 15i AT GG2C54R 15i AT GG2D54R 15i 50th Anniversary MT GG2D54G 15i 50th Anniversary AT GG2D54R 15iナビエディション MT GG2C54G 15iナビエディション AT GG2C54R 15i-S MT GG2C5GG 15i-S MT GG2D5GG 15i-S AT GG2C5GR 15i-S AT GG2D54R 15i MT GD2D44G 15i AT GD2D44R 15i 50th Anniversary MT GD2D44G 15i 50th Anniversary AT GD2D44R C.このモデルの中で、MTやATのシフト、セダンやワゴンの区別、グレードを検索 したり。 D、検索パターンを考えた。 検索パターンa. egrep "MT" data06.datを実行する。 予想ではシフトがMTのものがでてくる。 実行した結果。 pan{c109091}% egrep "MT" Ruby/data06.dat [~] I's SELECT MT GG2A53G I's SELECT II MT GG2B54G I's MT GG2A54G I's MT GG2B54G I's sport MT GG2A5GG I's sport MT GG2B5GG I's sport Limited MT GG2B5GG 15i MT GG2C54G 15i MT GG2D54G 50th Anniversary MT GG2D54G 15iナビエディション MT GG2C54G 15i-S MT GG2C5GG 15i-S MT GG2D5GG 15i MT GD2D44G 50th Anniversary MT GD2D44G pan{c109091}% [~] 結果の考察:予想どおりの結果になっていたようなのでよかったです。 検索パターンb. egrep "GD" Ruby/data06.dat を実行する。予想では型式にGDがつくセダンの車がでてくる。 実行した結果。 pan{c109091}% egrep "GD" Ruby/data06.dat [~] 15i MT GD2D44G 15i AT GD2D44R 50th Anniversary MT GD2D44G 50th Anniversary AT GD2D44R pan{c109091}% [~] 結果の考察:予想どおりになっているようです。 検索パターンc. egrep "R$" Ruby/data06.dat を実行する。 予想では、型式の最後にRがつくATの車がでてくる。 実行した結果。 pan{c109091}% egrep "R$" Ruby/data06.dat [~] I's SELECT AT GG2A53R I's SELECT II AT GG2B54R I's AT GG2A54R I's AT GG2B54R I's sport AT GG2A5GR I's sport AT GG2B5GR I's sport Limited AT GG2B5GR 15i AT GG2C54R 15i AT GG2D54R 50th Anniversary AT GG2D54R 15iナビエディション AT GG2C54R 15i-S AT GG2D54R 15i AT GD2D44R 50th Anniversary AT GD2D44R pan{c109091}% [~] 結果の考察:文字列の最後を検索する場合も上手くいっていてよかった。 利用した正規表現 " " = "の中の文字を検索する。 $ = 最後の部分のみ検索する。$の前に文字をいれるようにする。 3.感想。 今回のプログラム課題は自分で設定を考えるものだったので、好きな車にしまし たが、設定が悪かったか、上手くデータファイルを作ることができず、検索が少 なくなってしまったのが残念でした。 課題の設定はきちんと考えてこれからは作りたいと思いました。 しかし、今回の課題は時間はかかってしまったものの難なく進むことができて、 とても充実した課題だったと思います。 次の課題も頑張りたいです。 参考文献 Rubyプログラミング基礎講座 広瀬雄二 100ページ第8講 「何回か繰り返されている文字を探したい」 http://roy/~madoka/2010/r1/06/06_04_theme_02_repetation.html ASCII コード表 http://roy/~madoka/2010/r1/05/05_01_theme_01_asciicode.html