第8回 基礎プログラミング II レポート課題 氏名:遠藤孝之 学籍番号:c1090265 語学クラス:中国語 コース(系):環境サイエンス 1. 筆記問題 A.CGIとHashの似ている所は、選択した物に対するものを引き出していく部分 だと思います。 B..htaccessを作成し、データに入力するためにhtmlを作成します。 入力したデータを受け取ってもらうためにプログラム.rbを作成します。 これで、CGIの仕組みとなっている。 C.CGIを渡すには、htmlに "form"というタグを作らなければいけない。
D. #!/usr/bin/koeki/bin/ruby を使うようにして require 'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-jp\n\n") で受け取ったデータを使えるようにし、 そして、CGIの名前をHashに定義して、 最後に、printで、htmlを出力する。 プログラミング問題 A.ticket.rbを改良した。改良点は、走行距離を表示出来る点です。 プログラム #!/usr/koeki/bin/ruby require 'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-jp\n\n") arv = cgi["arrive"] print("\n") print(">\n") print("\n") print("\t庄内急行チケット券売機\n") print("\n") print("

庄内急行 Shonai kyukou<\h1>\n") printf("

庄内急行特急チケット券 酒田 -- %s 間

\n", arv) if/東酒田/=~arv print("

酒田からの距離は、3.5 [km]<\p>\n") elsif/砂越/=~arv print("

酒田からの距離は 6.7 [km]<\p>\n") elsif/北余目/=~arv print("

酒田からの距離は 9.9 [km]<\p>\n") elsif/余目/=~arv print("

酒田からの距離は 12.6 [km]<\p>\n") elsif/西袋/=~arv print("

酒田からの距離は 16.1 [km]<\p>\n") elsif/藤島/=~arv print("

酒田からの距離は 21.4 [km]<\p>\n") elsif/鶴岡/=~arv print("

酒田からの距離は 29.4 [km]<\p>\n") end print("\n") print("\n") 元にしたプログラム(ticket.rb) #!/usr/koeki/bin/ruby require 'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-jp\n\n") arv = cgi["arrive"] print("\n") print(">\n") print("\n") print("\tチケット\n") print("\n") print("

\n") printf("酒田 -- %s\n", arv) print("

") print("\n") print("\n") 実行結果 pan{c109026}% ./ticket2.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive="東酒田" Content-type: text/html; charset=EUC-jp > 庄内急行チケット券売機

庄内急行 Shonai kyukou

庄内急行特急チケット券 酒田 -- 東酒田 間

酒田からの距離は、3.3 [km]

pan{c109026}% ./ticket2.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive="砂越" Content-type: text/html; charset=EUC-jp > pan{c109026}% ./ticket2.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive="砂越" Content-type: text/html; charset=EUC-jp > 庄内急行チケット券売機

庄内急行 Shonai kyukou

庄内急行特急チケット券 酒田 -- 砂越 間

酒田からの距離は 6.7 [km]

pan{c109026}% ./ticket2.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive="北余目" Content-type: text/html; charset=EUC-jp > 庄内急行チケット券売機

庄内急行 Shonai kyukou

庄内急行特急券 酒田 -- 北余目 間

酒田からの距離は 9.9 [km]

pan{c109026}% ./ticket2.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive="余目"^D Content-type: text/html; charset=EUC-jp > 庄内急行チケット券売機

庄内急行 Shonai kyukou

庄内急行特急券 酒田 -- 余目 間

酒田からの距離は 12.6 [km]

pan{c109026}% ./ticket2.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive="西袋" Content-type: text/html; charset=EUC-jp > 庄内急行チケット券売機

庄内急行 Shonai kyukou

庄内急行特急チケット券 酒田 -- 西袋 間

酒田からの距離は 16.1 [km]

pan{c109026}% ./ticket2.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive="藤島" Content-type: text/html; charset=EUC-jp > 庄内急行チケット券売機

庄内急行 Shonai kyukou

庄内急行特急チケット券 酒田 -- 藤島 間

酒田からの距離は 21.4 [km]

pan{c109026}% ./ticket2.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) arrive="鶴岡" Content-type: text/html; charset=EUC-jp > 庄内急行チケット券売機

庄内急行 Shonai kyukou

庄内急行特急チケット券 酒田 -- 鶴岡 間

酒田からの距離は 29.4 [km]

考察 プログラムはちゃんと起動し、実行されました。 これによりこのプログラムは正しいと言える。 B.ホームページに載るようにしました。 C.リンク先に載るようにしました。 感想 CGIはとても難しく理解するのはまだ先かなと思いました。しかし、使えるよう に友人達と一緒に頑張って行きます。 4:参考文献 http://roy/~madoka/2010/r2/08/08_04_theme_03_declare.html 「CGIを使用することを宣言しよう」 http://roy/~madoka/2010/r2/08/08_05_theme_04_form.html 「利用者にデータを入力させる部品」 共同学習者:池田博哉 横山広樹