第9回 基礎プログラミング II レポート課題 氏名:宮川史礼 学籍番号:C1071948 語学クラス:英語1 コース(系):社会系 1.筆記問題 A.ラジオボタンの仕組み スーパー 先ず、inputタグの中にtype="radio"と設定し、ラジオボタンを使えるようにす る。〜.rbにCGI変数を渡すためにnameとvalueが必要となる。 上記の場合、name="seat"とはラジオボタンの名前がseatで、value="super"とは、 〜.rbに渡すCGI変数の値がsuperであるということになる。 B.チェックボックスの仕組み 豪華和食バイキング つや姫詰め放題 先ず、inputタグの中にtype="text"と設定し、チェックボタンを使えるようにす る。〜.rbにCGI変数を渡すためにnameとvalueが必要となる。 上記の場合、name="dinner"、name="rice"とは、チェックボックスの名前である。 〜.rbに渡すCGI変数の値は、それぞれ夕食、米となる。 チェックボックスの場合は、nameがそれぞれ違っている。それは、使うチェック ボックスを区別するためである。 2.プログラム問題 URL http://roy/~c107194/advertise2/rubycgi/fork.html BにDの要素を加えたプログラムをつくった。 プログラム本体 ・html部分 計算機

計算機

・rb部分 #!/usr/bin/env ruby require 'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-JP\n\n") keisan = cgi["keisan"] kazu1 = cgi["kazu1"].to_f kazu2 = cgi["kazu2"].to_f print("\n") print("\n") print("計算結果\n") if /足し算/e =~ keisan print("") elsif /引き算/e =~ keisan print("") elsif /かけ算/e =~ keisan print("") elsif /割り算/e =~ keisan print("") end print("\n") print("\n") print("

計算結果

\n") print("

\n") if /足し算/e =~ keisan printf("%d+%d=%0.2f\n",kazu1,kazu2,kazu1+kazu2) elsif /引き算/e =~ keisan printf("%d-%d=%0.2f\n",kazu1,kazu2,kazu1-kazu2) elsif /かけ算/e =~ keisan printf("%d*%d=%0.2f\n",kazu1,kazu2,kazu1*kazu2) elsif /割り算/e =~ keisan printf("%d/%d=%0.2f\n",kazu1,kazu2,kazu1/kazu2) end print("

\n") print("\n") print("\n") 実行結果 足し算の場合 roy{c107194}% ./keisan.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) kazu1=7 kazu2=2 keisan="足し算" Content-type: text/html; charset=EUC-JP 計算結果

計算結果

7+2=9.00

引き算の場合 roy{c107194}% ./keisan.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) kazu1=8 kazu2=1 keisan="引き算" Content-type: text/html; charset=EUC-JP 計算結果

計算結果

8-1=7.00

かけ算の場合 roy{c107194}% ./keisan.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) kazu1=9 kazu2=4 keisan="かけ算" Content-type: text/html; charset=EUC-JP 計算結果

計算結果

9*4=36.00

割り算の場合 roy{c107194}% ./keisan.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) kazu1=56 kazu2=4 keisan="割り算" Content-type: text/html; charset=EUC-JP 計算結果

計算結果

56/4=14.00

感想 今回のレポート課題に関して、実際に取り組んだ上で思うところがあるとしたら、 前期も含めて今までこなしてきた課題の中ではいちばん難易度が高かったという ことだろう。というか正直に言うと、自分がやってきたという実感でだが記録 が塗り替えられたといったところだろうか(協力してくれた智也君もだいぶ問題の 解釈にてこずってしまったようだったし)、必要条件を意識したプログラムに 関しても、考え出すのにかなり時間がかかった。本当に難しかった。 参考文献 基礎プログラミング II 第9回 CGIことえらび 「ラジオボタンの作り方」 http://roy/~madoka/2010/r2/09/09_04_theme_02_radio.html 基礎プログラミング II 第9回 CGIことえらび 「チェックボックスの作り方」 http://roy/~madoka/2010/r2/09/09_05_theme_03_checkbox.html 協力してくれたTA 工藤智也