XXXX語XX XXXX系 c106XXXX XXXXXXXX 1,0b100101は 10 0101 2 5なので 0x25となる。 0d1111は、2進法に直すと 1111/2=555...1 555/2=277...1 277/2=138...1 138/2=69...0 69/2=34...1 34/2=17...0 17/2=8...1 8/2=4...0 4/2=2...0 2/2=1...0 1/2=0...1 となり 手計算 irsv{c106071}% ./binary.rb [~/Ruby] 2 進数を計算します 1 桁目から入力し、終了したら q を押して下さい 1 桁目の数字は何ですか?1 2 桁目の数字は何ですか?1 3 桁目の数字は何ですか?1 4 桁目の数字は何ですか?0 5 桁目の数字は何ですか?1 6 桁目の数字は何ですか?0 7 桁目の数字は何ですか?1 8 桁目の数字は何ですか?0 9 桁目の数字は何ですか?0 10 桁目の数字は何ですか?0 11 桁目の数字は何ですか?1 12 桁目の数字は何ですか?q 10 進数に直すと 1111 になります 0b10001010111を16進法に直す 100 0101 0111 4 5 7なので 0x457 となる。 2、A: 該当するデータ一行を表示するプログラ厶をつくる ansewer1 #!/usr/koeki/bin/ruby #講義ノートのegrep.rbを参考 while data06 = gets #egrep.rbのstationをdata06に変更 if /o$/i =~ data06 #egrep.rbのa,aとstationをo$,data06に変更 print data06 #egrep.rbのstationをdata06に変更 end end 予想 /o$/とプログラ厶することで、データの行尾がoなのは 天地人(上) 火坂雅志/著 日本放送出版協会 2006 年9月 歴史小説 tentizin zyo だけが該当すると思う。 結果 irsv{c106071}% ./answer1.rb data06.dat [~/Ruby] 天地人(上) 火坂雅志/著 日本放送出版協会 2006年9月 歴史小説 tentizin zyo answer2 #!/usr/koeki/bin/ruby while data06 = gets if /a+b/i =~ data06 #answer1.rbを参考に//の中をa+bに変更 print data06 end end 予想 /a+b/はaが出現しなければならず、その出現は何回でもよい場合を検索するので、それに該当するのは 超バカの壁 養老孟司/著 新潮社 2006年1月 新書 tyobakanokabe のみだと思う。 結果 irsv{c106071}% ./answer2.rb data06.dat [~/Ruby] 超バカの壁 養老孟司/著 新潮社 2006年1月 新書 tyobakanokabe answer3 #!/usr/koeki/bin/ruby while data06 = gets if /^ヘ/i =~ data06 print data06 end end 予想 /^ヘ/なら先頭の文字「ヘ」から始めるデータが検索されるので、 ヘヴンリー・ブルー 村山由佳/著 集英社 2006年8月 一般文芸 hebunriburu が該当すると思う。 結果 irsv{c106071}% ./answer3.rb data06.dat [~/Ruby] ヘヴンリー・ブルー 村山由佳/著 集英社 2006年8月 一般文芸 hebunriburu D:文字列を入力して調べる方法に変更したプログラム 作成したプログラム #!/usr/koeki/bin/ruby STDERR.print "検索パターン : " pattern = STDIN.gets.chomp request = Regexp.new(pattern, true, "e") #講義ノートのreaddata.rbを参考 open("data06.dat","r") do |candidate| #open-endを付け加え、stationをdata06に変更 while data06 = candidate.gets #stationをdata06に変更 if request =~ data06 #stationをdata06に変更 # print data06 #stationをdata06に変更 if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~ data06 #stationをdata06に変更、項目が5つなので\s+(\S+)をつけ足す printf("%sの著者は%sで、出版社は%sです。発行日とジャンルは%s %sとなっています。\n",$1,$2,$3,$4,$5) #駅を消して、定型文と$1~5を入れた。 end end end end 実行した結果 irsv{c106071}% ./input_b.rb [~/Ruby] 検索パターン : o$ 天地人(上)の著者は火坂雅志/著で、出版社は日本放送出版協会です。発行日とジャンルは2006年9月 歴史小説となっています。 結果の考察 行尾が[o]であるデータが該当し、定型文に沿って表示されたと考えられる。 参考文献 講義ノート 感想 一番頑張ったことは、DとEの課題の条件を合わせて作ってみたことです。辿り着 くまで、悪戦苦闘しましたが時間をかけて、なんとかできました。初めは、わか らなくても何度も試行錯誤を繰り返していくうちに理解していく自分にうれし くなりました。