第 8 回 ことはじめ レポート課題 氏名:細田 洋平 学籍番号:c1101773 語学クラス:英語6 コース(系):政策マネジメントコース 1.A あらかじめ用意された複数の選択肢の中から、特定のものだけを選択して呼 び出す、という点で似ているのではないかと思った。 1.B .htacces というディレクトリの中に .html や .rb を作ることで CGI とし て機能する。 .html は選択肢を、 .rb はその結果を表示する。 1.C これは、前回の授業で作った ticket.rb を利用して解説を行う。 # .rb に結果を送信させる # リセットさせる 1.D 授業の講義ノートを使用して解説を行う。 require 'cgi' # CGI を使う cgi = CGI.new("html4") # CGI を HTML 文書に使う print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードの定義 arv = cgi["arrive"] # arrive を arv に省略して入力し、arrive = arv とい うことを覚え込ませる。 # これにより html を使用できるようになる。 2.A 元にしたプログラム : 授業で作成した ticket.rb ・def を追加した ・変数の変更 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #!/usr/koeki/bin/ruby require 'cgi' # CGI を使う cgi = CGI.new("html4") # CGI を html文書に使う data = Hash.new # データの Hash を使う print("Content-type: text/html; charset=EUC-jp\n\n") # 日本語コードの定義 def ryokin(s,t) # s = 出発点(start) 、t = 到着点(totilyaku) if s > t # もし出発点の値が到着点の値より大きい場合 120 + (s - t) / 2 * 20 # 120(基本料金) + (start - totilyaku) / 2km * 20円 elsif s < t # もし出発点の値が到達点の値より小さい場合 120 + (t - s) / 2 * 20 # 120(基本料金) + (totilyaku - start) / 2km * 20円 end end def kyori(st,ar) # st = 出発点(start)、ar = 到着点(arrive) if st > ar # もし出発点の値が到着点の値より大きい場合 st - ar # 出発点までの距離 - 到着点までの距離 elsif st < ar # もし出発点の値が到着点の値より小さい場合 ar - st # 到着点までの距離 - 出発点までの距離 end end str = cgi["start"] # CGI から取ってくるうち、start の部分を str とする arv = cgi["arrive"] # CGI から取ってくるうち、arrive の部分を arv とする open("ticket.dat", "r") do |station| while line = station.gets if/(\S+)\s+(\S+)/ =~ line data[$1] = $2.to_i # 2番目のデータを整数に。= data[$1] end end end syuppatu = data[str] # データから取り出した出発駅の部分を syuppatu totilyaku = data[arv] # データから取り出した到着駅の部分を totilyaku print("\n") print("\n") print("\tチケット\n") print("\n") print("\n") printf("

\t出発駅:%s -- 到着駅:%s

\n", str, arv) printf("

\t料金: %d [円]

\n", ryokin(syuppatu,totilyaku)) printf("

\t走行距離: %d [km]

\n", kyori(syuppatu,totilyaku)) print("

\n") print("\n") print("\n") ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * html「ticket.html」 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ オンライン券売機

乗車発券システム

「 酒田〜鶴岡 間 」







このプログラムは、東北公益文科大学 細田 洋平 が著作権を保有しています。

プログラムの入手・変更は、自由に行っても構いません。

なお、このプログラムの取り扱いによって生じた問題については一切責任を 負いませんのでご了承下さい。

このプログラムに対する感想・意見・苦情など言いたいことがありましたら、

c110177@e.koeki-u.ac.jp


トップページへ

* 実行結果 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 出発駅:酒田 -- 到着駅:砂越 料金: 180 [円] 走行距離: 7 [km] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pan{HOSODA Yohei}% bc -l [~/public_html/rubycgi] 120 + (7 - 0) / 2 * 20 190.00000000000000000000 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 出発駅:酒田 -- 到着駅:西袋 料金: 260 [円] 走行距離: 15 [km] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pan{c110177}% bc -l [~/public_html/rubycgi] 120 + (15 - 0) / 2 * 20 270.00000000000000000000 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * 考察 * プログラムでの計算と、確かめ算の結果が一致しなかったのが疑問点だった。 プログラムも起動するが、どうしても10ずれてしまい、解決策が発見できなかっ た。 始めは if やその他のみで計算を行おうとしていたが上手く実行できず、defを 入れることで各々分けて計算を行えるようになった。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2.B * ロゴを掲載したアドレス * http://roy/~c110177/advertise2/logo_r2_c110177.png 2.C * pdfファイルを掲載したページ * http://roy/~c110177/advertise2/koukoku.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ * 感想 * 前回に続いて難しい課題だった。最初は課題の内容が理解できず、個人広告ペー ジ云々については全く分からなかった。 また、計算が合わなかったのがやはり悔しく感じられる。友達に助けられなが ら何とか完成までこぎつけた、という感じだった。 来週以降の課題は出来るだけ時間をかけず、効率良く取り組むことを意識して取 り組みたい。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * 参考文献 * 基礎プログラミング II 第 8 回 (ことはじめ) 「Ruby で CGI を作る宣言」 講義ノート目次 http://roy/~madoka/2011/r2/08/r2_08_09_theme_09_declare.html 基礎プログラミング II 第 8 回 (ことはじめ) 「基本の CGI ホームページの作りかた」 講義ノート目次 http://roy/~madoka/2011/r2/08/r2_08_06_theme_06_firstcgi.html