第9回 基礎プログラミング I レポート課題 氏名:酒井 春香 学籍番号:c109074A 語学クラス:英語3 コース:政策マネ 1、筆記問題 A、0x13 + 0x24 = 0x?? まず、16進数を10進数に直してみると 0x13 = 1 × 16 + 3 × 1 = 19 より 0d19 0x24 = 2 × 16 + 4 × 1 = 36 より 0d36 したがって、0x13 + 0x24 = 0d19 + 0d36 = 0d55 ここで、0d55を16進数に直すと 55 / 16 = 3 余り 7 3 / 16 = 0 余り 3 出てきた余りを下から並べて 0x37 B、0x23 + 0x1e = 0x?? まず、16進数を10進数に直してみると、 0x23 = 2 × 16 + 3 × 1 = 35 より 0d35 0x1e = 1 × 16 + 14 × 1 = 30 より 0d30 したがって、 0x23 + 0x1e = 0d35 + 0d30 = 0d65 ここで、0d65を16進数に直すと 65 / 16 = 4 余り 1 4 / 16 = 0 余り 4 出てきた余りを下から並べて 0x41 C、0xaa - 0x33 = 0x?? まず、16進数を10進数に直してみると 0xaa = 10 × 16 + 10 × 1 = 170 より 0d170 0x33 = 3 × 16 + 3 × 1 = 51 より 0d51 したがって、 0xaa - 0x33 = 0d170 - 0d51 = 0d119 ここで、0d119を16進数に直すと 119 / 16 = 7 余り 7 7 / 16 = 0 余り 7 出てきた余りを下から並べて 0x77 2、プログラム問題 A、 実用部門にエントリーします。 公開先URL http://roy/~c109074/advertise/ B、 a、考えた設定 岩手の温泉について検索できるプログラム。 b、作成したプログラム 1)onsen.rb #!/usr/koeki/bin/ruby STDERR.print("\n岩手の日帰り温泉を検索します!\n") while true #while文の中を繰り返す STDERR.print("\n検索方法は?(終了はend)\n") STDERR.print("1:市町村 2:最寄りIC : ") choise = gets.chomp #市町村か最寄りICを #キーボード入力で選択させる if choise == "end" #while文から抜け出す break end if choise == "1" #もし1を選んだ場合 STDERR.print("\n市町村名をどうぞ\n") STDERR.print("検索:") pattern = STDIN.gets.chomp #変数 pattern にキーボード入力で取ってきた #調べたい文字列をしまう request = Regexp.new(pattern, true, "e") #変数 request に調べたい文字列を #代入する open("onsen.dat","r") do |city| #onsen.datを開く while line = city.gets #1行ずつ取ってくる if /(\S+)\s+(\S+)\s+(\S+)\s+(\d+)/ =~ line if request =~ $2 if /(\S+)\s+(\S+)\s+(\S+)\s+(\d+)/ =~ line printf("温泉名は%s %s \n",$1,$2) #名前と市町村名だけを表示 end end end end end elsif choise =="2" #もし2を選んだ場合 STDERR.print("\n最寄りICをどうぞ\n") STDERR.print("検索:") pattern = STDIN.gets.chomp #変数 pattern にキーボード入力で取ってきた #調べたい文字列にしまう request = Regexp.new(pattern, true, "e") #変数 request に調べたい #文字列を代入 open("onsen.dat", "r") do |ic| #onsen.datを開く while line = ic.gets #1行ずつ取り出す if /(\S+)\s+(\S+)\s+(\S+)\s+(\d+)/ =~ line if request =~ $3 if /(\S+)\s+(\S+)\s+(\S+)\s+(\d+)/ =~ line printf("温泉名は %s %sIC\n",$1,$3) #名前と最寄りICだけを表示 end end end end end else #もしそれ以外の場合 print("\n間違ってますよ!やり直してください。\n") end print("\nこの中から行ってみたい温泉を選んでね\n。") STDERR.print("温泉施設:") pattern = STDIN.gets.chomp #変数 pattern にキーボード入力で取ってきた #調べたい文字列をしまう request = Regexp.new(pattern, true, "e") #変数 request に調べたい文字列を #代入する open("onsen.dat", "r") do |onsen| #onsen.datを開く while line = onsen.gets #1行ずつ取っていく if request =~ line if /(\S+)\s+(\S+)\s+(\S+)\s+(\d+)/ =~ line if request =~ $1 if /(\S+)\s+(\S+)\s+(\S+)\s+(\d+)/ =~ line printf("温泉名は %s %s 最寄り%sIC 入浴料%d円 \n",$1,$2,$3,$4) end end end end end end print("\n岩手の温泉巡りが楽しくなることを心から願っています☆\n") print("\nご利用ありがとうございました。\n") end 2)onsen.dat #温泉名 #市町村 #最寄りIC #入浴料 盛南温泉 開運の湯 盛岡市 盛岡 630 喜盛の湯 盛岡市 盛岡 580 けんじワールド 銀河温泉 雫石町 盛岡 800 ゆこたんの森 森の湯 雫石町 盛岡 600 網張温泉 ありね山荘 雫石町 盛岡 500 仙女の湯 雫石町 盛岡 300 ぬくもりの里 NUC 雫石町 盛岡 500 温泉館 雫石町 盛岡 500 道の駅雫石あねっこ 雫石町 盛岡 500 お山の湯 滝沢村 滝沢 550 朝朱の湯 一戸町 一戸 500 煌星の湯 一戸町 一戸 600 あづまね温泉 ききょう荘 紫波町 紫波 500 花巻温泉 花巻市 花巻 390 ぎんがの湯 花巻市 花巻 550 東和温泉 花巻市 花巻 600 夏油高原温泉 北上市 北上江釣子 800 瀬美温泉 北上市 北上江釣子 500 つなとり温泉 景勝園 北上市 北上江釣子 500 舞鶴の湯 奥州市 前沢 500 焼石クアパーク ひめかゆ 奥州市 水沢 500 国見平温泉 はごろもの湯 奥州市 前沢 350 黒滝温泉 のぞみの湯 奥州市 前沢 350 みちのく城祉温泉 金ヶ崎町 水沢 600 悠久の湯 平泉温泉 平泉町 平泉 500 桃の湯 一関市 一関 1680 べっぴんの湯 久慈市 九戸 400 焼走りの湯 八幡平市 松尾八幡平 500 森乃湯 八幡平市 松尾八幡平 500 あずみの湯 八幡平市 松尾八幡平 500 c、もとにしたプログラムからの変更点 授業に作成したstd_regexp.rbをもとに、検索パターンの選択のためにif文を加 えた。 d、実行結果 1)市町村名で検索 pan{c109074}% ./onsen.rb [~/public_html/advertise] 岩手の日帰り温泉を検索します! 検索方法は?(終了はend) 1:市町村 2:最寄りIC : 1 市町村名をどうぞ 検索:雫石町 温泉名は銀河温泉 雫石町 温泉名は森の湯 雫石町 温泉名はありね山荘 雫石町 温泉名は仙女の湯 雫石町 温泉名はNUC 雫石町 温泉名は温泉館 雫石町 温泉名は道の駅雫石あねっこ 雫石町 この中から行ってみたい温泉を選んでね 温泉施設:。銀河温泉 温泉名は 銀河温泉 雫石町 最寄り盛岡IC 入浴料800円 岩手の温泉巡りが楽しくなることを心から願っています☆ ご利用ありがとうございました。 検索方法は?(終了はend) 1:市町村 2:最寄りIC : end 2)最寄りICで検索 pan{c109074}% ./onsen.rb [~/public_html/advertise] 岩手の日帰り温泉を検索します! 検索方法は?(終了はend) 1:市町村 2:最寄りIC : 2 最寄りICをどうぞ 検索:盛岡 温泉名は 開運の湯 盛岡IC 温泉名は 喜盛の湯 盛岡IC 温泉名は 銀河温泉 盛岡IC 温泉名は 森の湯 盛岡IC 温泉名は ありね山荘 盛岡IC 温泉名は 仙女の湯 盛岡IC 温泉名は NUC 盛岡IC 温泉名は 温泉館 盛岡IC 温泉名は 道の駅雫石あねっこ 盛岡IC この中から行ってみたい温泉を選んでね 温泉施設:。開運の湯 温泉名は 開運の湯 盛岡市 最寄り盛岡IC 入浴料630円 岩手の温泉巡りが楽しくなることを心から願っています☆ ご利用ありがとうございました。 検索方法は?(終了はend) 1:市町村 2:最寄りIC : end 3)関係のない文字を入力した場合 pan{c109074}% ./onsen.rb [~/public_html/advertise] 岩手の日帰り温泉を検索します! 検索方法は?(終了はend) 1:市町村 2:最寄りIC : 3 間違ってますよ!やり直してください。 この中から行ってみたい温泉を選んでね 温泉施設:。end 岩手の温泉巡りが楽しくなることを心から願っています☆ ご利用ありがとうございました。 検索方法は?(終了はend) 1:市町村 2:最寄りIC : end e、考察 1) データを数えてみると雫石町の温泉施設は7つなので、このプログラムは正しく 起動したといえる。 2) データを数えてみると盛岡ICの最寄りの温泉施設は9つなので、このプログラム は正しく起動といえる。 3) 検索パターンのところで他の文字を入れると、意図したとおりの文章が出てきた。 よって、このプログラムは正しく起動したといえる。 しかし、終了のendは検索パターンのところでしか有効ではないので、少し使い づらいのかなと思った。 f、参考文献 西村まどか先生のホームページ 「データ取り出しプログラム」 http://roy/~madoka/2010/r1/07/07_02_theme_01_egrep.html 「キーボードから検索文字を入力したい」 http://roy/~madoka/2010/r1/07/07_04_theme_03_stdin.html 「繰り返す文字列を探したい」 http://roy/~madoka/2010/r1/07/07_06_theme_05_repetation.html 「空白を利用してデータを取りだすには」 http://roy/~madoka/2010/r1/07/07_07_theme_06_tab.html 「データを読みこむようにするには」 http://roy/~madoka/2010/r1/07/07_09_theme_08_fileread.html 「広告用ホームページ」 http://roy/~madoka/2010/r1/09/09_12_theme_09_software.html 山本直美先生のホームページ 「ホームページ作成(代表的なタグ)」 http://roy/~yamamoto/text09/k0htmltag.html 「色の見本帳」 http://www.bcap.co.jp/bcap/kaisetu/iro/ 岩手県の日帰り温泉?デイ温泉ドットコム http://www.day-onsen.com/kensaku.aspx?waku=1&kodawari=0&ryokin=0&id=3&page=3 3、感想 今回は自由課題だったので、何をしようかすごく悩みました。今回は、htmlで ページを作って、自分で考えたプログラムを貼るなど、色々な工夫が出来た オリジナルのページが出来ておもしろかった。時間はかかったけど、楽しくで きた。 また、これまでの復習ができて理解もより深まったと思う。 もっとデータを増やしていけばもっともっと良くなると思った。 *共同学習者 佐竹 聡美 *協力してくれた先輩 藤田 水輪さん / 海藤 美紀さん