第 9 回 ことえらび レポート課題 氏名:菊池綾 学籍番号:c1100644 語学クラス:英語6 コース(系):政策マネジメント 1. 筆記問題 A. ラジオボタンのしくみ: ラジオボタンは、選択肢の中から1つだけ選ばせるもののことである。 2つ目のボタンをクリックしても、1つ目のチェックが外れて2つ目に移動するた め、必然的にチェックはひとつとなるようなボタンである。 この仕組みを作るためには、html 文書内で input タグに radio を入れ、設定する 必要がある。たとえば次のようなものになる。

自由席 指定席 スーパーシート

type="radio" : ラジオボタンの設定 name="seat" : ラジオボタンの B. チェックボックスのしくみ: チェックボックスは、選択肢の中から複数を選ばせるもののことである。 ラジオボタンとは違い、複数にチェックを入れても前のものはチェックされたま まになる。 この仕組みを作るためには、html 文書内で input タグに checkbox を入れ、設定す る必要がある。たとえば次のようなものになる。 豪華和食バイキング 土産物クーポン はえぬきプレゼント 喫煙 3. 画像 作成したファイル : char_r2_c110064.png(char_r2_c110064.obj) タイトル : 3D RUBY. 解説 : Ruby プログラムが、パソコンの画面を飛びだして、立体(3D)になって動 きだす、というコンセプト。丸がプログラムを表している。 影のついた赤いものが最終形態。羽と尾が生えている。 図形、テキスト、曲線等をなるべく組み合わせた形のものを作ろうと思った。 影の付け方に変化をつけて、段々と画面から出てくる(近づいてくる)ように見え るように工夫した。ロゴも目立つようにポイントを上げた。 2. プログラム問題ホームページ http://roy/~c110064/adcertise2/rubycgi/fork.html A.カウンタープログラム 1. リンク: http://roy/~c110064/advertise2/rubycgi/counter.rb 2. 題名 : カウンター 意図 : ページのアクセス数を表示するために作成した。 3. プログラム: #!/usr/koeki/bin/ruby ## 処理の部分 ## require 'cgi' # CGI を使う宣言をする cgi = CGI.new("html4") # CGI という変数に CGI を作るバージョンは4 print("Content-type: text/html; charset=EUC-jp\n\n") # 受け取った結果を使用する宣言をする num = cgi["number"] # num を CGI から受け取る。 count = 0 # 変数 count の初期値は 0 open("count.txt" , "r") do |g| # count.txt を読みこみモード("r")で開き(open)、 # g という名前に置き換える while num = g.gets # while で繰り返し。g に置き換えたデータが全て無くなるまで num に代入。 if /(\d+)/ =~ num # もしデータが数字(\d)だったら count = $1.to_i # countにデータを代入。 # 正規表現で切り取った数字($1)を整数として出力。 end # if の end end # while の end end # open の end ## html の部分 ## print("\n") # html 始め print("\n") # head 始め print("訪問カウンター\n") # ホームページのタイトル print("\n") # ホームページのタイプなどをリンクしている print("\n") # head 終わり print("\n") # body 始め print("

訪問カウンター

\n") # ホームページの見出し print("

\n") # 見出し3の始め print("
\n") # 改行 printf("いままで訪れた人数: %d人\n",count) # 代入した結果を表示 print("
\n") print("
\n") print("

\n") # 見出し3の終わり print("\n") # body 終わり print("\n") # html 終わり count += 1 # 1ずつ足していく open("count.txt" , "w") do |f| # count.txt を読みこみモード(w)で開き f という名前に置き換える f.printf("%d\n",count) # 結果を表示 end # open の end 4. 実行結果 ●1回目● pan{c110064}% ./counter.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) number="1" Content-type: text/html; charset=EUC-jp 訪問カウンター

訪問カウンター


いままで訪れた人数: 3人

●2回目● pan{c110064}% ./counter.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) number="1" Content-type: text/html; charset=EUC-jp 訪問カウンター

訪問カウンター


いままで訪れた人数: 4人

pan{c110064}% [~/public_html/advertise2/rubycgi] 5. 考察 実行する度に人数が増えていることが分かる。 このことから、プログラムは正しく動いていると思われる。 このプログラムは、アクセスすることでプログラムが実行され、 openメソッドによって予め作っておいたテキストファイル(count.txt)のデータ を読みこみ、その値をcountに代入することでデータを引き継ぎ、さらに加算し ていくことが出来るようになっている。 また、それをopenメソッドで再びテキストファイルに書きこむことで、前のデー タに新しいデータが上書きされ、その数が次回実行された際に表示される数字に なる。 3. 感想 プログラム問題Dの一次関数をグラフ化するものも途中まで手を着けたが、良く 分からなくなってしまったので完成できなかった。(添付:lineplot.rb) 定義域の設定と式に代入する値がごちゃごちゃになってしまっていた。 以前作ってktermで実行出来たものを参考にしたのだが、(添付:def_oneparam_bar.rb) こちらも式の設定の段階でうまく行かなくなっている気がする。勉強不足で原因 がつきとめられなかった。 これができれば、あとはhtmlでラジオボタン等を用いて数を選択してもらい、 その数を代入させてグラフを表示することが出来るようになるはずである。 他に誰も完成させた人がいないようだったので、完成させられなかったのが残念 だ。 4. 参考文献 齋藤陽香さんのレポート http://roy/~madoka/2011/r2/09/rpt/c110088.txt 第 4 回 (繰り返しは引っ張りだそう) 「直線グラフ」 西村まどか http://roy/~madoka/2011/r2/04/r2_04_10_appendix_02_straightline.html 第 9 回 「ことえらび」 西村まどか http://roy/~madoka/2011/r2/09/