5 月 30 日のレポートについて XXXX語 XXXX系 c106XXXX XXXXXXXX 1、 A、2進数を16進数にするには、まず、10進数に直す。 0d100101 = 1×2の5乗 + 0×2の4乗 + 0×2の3乗 + 1×2の2乗 + 0×2の1乗 + 1×2の0乗 = 32 + 0 + 0 + 4 + 0 + 1 = 37 次に、10進数を16進数に直す。16で割って行く。 0b 37 = 0x?? 37 ÷ 16 = 2 余り 5 2 ÷ 16 = 0 余り 2 余りを並べると、25となる。 その後、授業で習った10進数の表を見て対応させる。 したがって、16の2倍 + 2 つまり、0d100101 = 0x 25 となる。 B、0d1111 = 0x?? Bの問題はすでに10進数なので、そのまま商が 0 になるまで、16で割っていく。 そして、余りを並べていく。 1111 ÷ 16 = 69 余り 7 69 ÷ 16 = 4 余り 5 4 ÷ 16 = 0 余り 4 したがって、0x 457 となる。 2、 A、 ●主に鶴岡にある、おいしい飲食店の紹介。 ●作ったデータ● 新に data07.dat を作成した。 三川町横山 鼓や(つづみや) 海鮮べっこう丼 月 鶴岡みどり町 みどり食堂 チャーハン 不定休 鶴岡双葉町 Thunder Bird(雷鳥) 串焼き 月 鶴岡東新齋町 あむちゃ房 花かご パフェ 月 鶴岡ほなみ町 すたみな太朗 ケーキ 無休 鶴岡昭和町 Bistro HoBaRi ステーキ 不定休 鶴岡馬場町 パンハウス庄内 クッキー 無休 鶴岡錦町 ビアードパパスィーツ シュークリーム 無休 鶴岡平京田 ファイヤーボール 冷やパスタ 月 鶴岡日吉町 おばこ食堂 冷やラーメン 不定休 鶴岡道形町 定食屋 山菜料理 不定休 鶴岡日吉町 信濃屋 豆ロール なし ●何処にあるか、何と言う店なのか、おすすめのもの、定休日が調べられる。 ●検索パターン a、 #!/usr/koeki/bin/ruby while mise = gets # 変数にデータを gets する if /鶴?み/e =~ mise # while -end の条件 print mise end end "/ /e" でEUC で探す、と言う意味。また、 ? で、?の前の文字はあっても 無くてもいいが、? 以降は、み を指定したため、鶴岡ほなみ町、鶴岡みどり 町が検索されると予想できる。 b、#!/usr/koeki/bin/ruby while mise = gets # 変数にデータを gets する if / *堂/e =~ mise # while -end の条件 print mise end end * の後に、必ず 堂 とつくものが出なければならないので、みどり食堂と、 おばこ食堂 のみが検索されると考えられる。 c、#!/usr/koeki/bin/ruby while mise = gets # 変数にデータを gets する if /鶴岡[平日]/e =~ mise # while -end の条件 print mise end end [ ]で括られた中の文字が一致すればいいので、日吉町、平京町のみが検索 されると考えられる。 d、#!/usr/koeki/bin/ruby while mise = gets # 変数にデータを gets する if / (パフェ) /e =~ mise # while -end の条件 print mise end end ( )の中の文字が優先して検索される。 パフェと入力したのは、1ヶ所だけなので、花かご の パフェが検索される と考えられる。 ●実行結果 a、irsv{c106029}% ./answer1.rb data07.dat [~/Ruby] 三川町横山 鼓や(つづみや) 海鮮べっこう丼 月 鶴岡みどり町 みどり食堂 チャーハン 不定休 鶴岡ほなみ町 すたみな太朗 ケーキ 無休 b、irsv{c106029}% ./answer2.rb data07.dat [~/Ruby] 鶴岡みどり町 みどり食堂 チャーハン 不定休 鶴岡日吉町 おばこ食堂 冷やラーメン 不定休 c、irsv{c106029}% ./answer3.rb data07.dat [~/Ruby] 鶴岡平京田 ファイヤーボール 冷やパスタ 月 鶴岡日吉町 おばこ食堂 冷やラーメン 不定休 鶴岡日吉町 信濃屋 豆ロール なし d、irsv{c106029}% ./answer4.rb data07.dat [~/Ruby] 鶴岡東新齋町 あむちゃ房 花かご パフェ 月 ●考察 d で、( )の後に、月 とくっつけて検索したところ、月の後ろに空白のスペースがあった ため、検索されなかった。そのため、( ) の後に、空白スペースを入力した ところ、検索された。 ●利用した正規表現 a、? (puestion mark) : 直前の文字が 0 または 1 回出現し、直前の文字は記 号も可。 b、* (asterisk) :直前の文字が出現してもしなくてもよいが、出現は何回でも良い場合。 c、[ ] (break) :[ ]で括られた文字のどれかが一致するものを取り出す。 d、( ) (parenthesis) : ( )内で括られた条件を先に探す。 E、 ●データファイル #!/usr/koeki/bin/ruby STDERR.print "検索パターン : " # open - end ファイル名を指定 pattern = STDIN.gets.chomp # r (read) 読み込むためのモード request = Regexp.new(pattern, true, "e") open("data07.dat","r") do |candidate| while mise = candidate.gets if request =~ mise # print mise if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ mise printf("%s\n" , $1) end end end end \S+ : 空白文字以外の文字列が 1 個以上並んでいるものを探す \s+ : 空白文字が 1 個以上並んでいるものを探す ●検索パターン データの名前を入れずに、検索できるようにしたので、日吉と入力すると、鶴岡 日吉町 が検索される。 ◯実行結果 irsv{c106029}% ./input_b.rb [~/Ruby] 検索パターン : 日吉 鶴岡日吉町 鶴岡日吉町 B、 =~ の部分を、!~ にすると、入力した物以外が表示される。 ◯データ a、#!/usr/koeki/bin/ruby while mise = gets if /鶴?み/e !~ mise print mise end end b、#!/usr/koeki/bin/ruby while mise = gets if / *堂/e !~ mise print mise end end c、#!/usr/koeki/bin/ruby while mise = gets if /鶴岡[平日]/e !~ mise print mise end end d、#!/usr/koeki/bin/ruby while mise = gets if / (パフェ) /e !~ mise print mise end end ◯検索結果 a、 irsv{c106029}% ./answer_b1.rb data07.dat [~/Ruby] 鶴岡双葉町 Thunder Bird(雷鳥) 串焼き 月 鶴岡東新齋町 あむちゃ房 花かご パフェ 月 鶴岡昭和町 Bistro HoBaRi ステーキ 不定休 鶴岡馬場町 パンハウス庄内 クッキー 無休 鶴岡錦町 ビアードパパスィーツ シュークリーム 無休 鶴岡平京田 ファイヤーボール 冷やパスタ 月 鶴岡日吉町 おばこ食堂 冷やラーメン 不定休 鶴岡道形町 定食屋 山菜料理 不定休 鶴岡日吉町 信濃屋 豆ロール なし b、 irsv{c106029}% ./answer_b2.rb data07.dat [~/Ruby] 三川町横山 鼓や(つづみや) 海鮮べっこう丼 月 鶴岡双葉町 Thunder Bird(雷鳥) 串焼き 月 鶴岡東新齋町 あむちゃ房 花かご パフェ 月 鶴岡ほなみ町 すたみな太朗 ケーキ 無休 鶴岡昭和町 Bistro HoBaRi ステーキ 不定休 鶴岡馬場町 パンハウス庄内 クッキー 無休 鶴岡錦町 ビアードパパスィーツ シュークリーム 無休 鶴岡平京田 ファイヤーボール 冷やパスタ 月 鶴岡道形町 定食屋 山菜料理 不定休 鶴岡日吉町 信濃屋 豆ロール なし c、 irsv{c106029}% ./answer_b3.rb data07.dat [~/Ruby] 三川町横山 鼓や(つづみや) 海鮮べっこう丼 月 鶴岡みどり町 みどり食堂 チャーハン 不定休 鶴岡双葉町 Thunder Bird(雷鳥) 串焼き 月 鶴岡東新齋町 あむちゃ房 花かご パフェ 月 鶴岡ほなみ町 すたみな太朗 ケーキ 無休 鶴岡昭和町 Bistro HoBaRi ステーキ 不定休 鶴岡馬場町 パンハウス庄内 クッキー 無休 鶴岡錦町 ビアードパパスィーツ シュークリーム 無休 鶴岡道形町 定食屋 山菜料理 不定休 d、 irsv{c106029}% ./answer_b4.rb data07.dat [~/Ruby] 三川町横山 鼓や(つづみや) 海鮮べっこう丼 月 鶴岡みどり町 みどり食堂 チャーハン 不定休 鶴岡双葉町 Thunder Bird(雷鳥) 串焼き 月 鶴岡ほなみ町 すたみな太朗 ケーキ 無休 鶴岡昭和町 Bistro HoBaRi ステーキ 不定休 鶴岡馬場町 パンハウス庄内 クッキー 無休 鶴岡錦町 ビアードパパスィーツ シュークリーム 無休 鶴岡平京田 ファイヤーボール 冷やパスタ 月 鶴岡日吉町 おばこ食堂 冷やラーメン 不定休 鶴岡道形町 定食屋 山菜料理 不定休 鶴岡日吉町 信濃屋 豆ロール なし ◯考察 日本語検索時の、 e と、kterm での dat のデータのつけ忘れで、検索できなく なるので、気を付ける。 ◯感想 B の問題の解き方の !~ を使うということが、発見できたのが、今回は大きな成 長だった。演習問題にヒントは隠されているのだと思った。 友達に教えてもらったり、調べたり大変だったけど、成長できた気がして、楽し かった。