第9回 ことえらび レポート課題 氏名 鈴木智也 学籍番号: c110129 語学クラス : 英語6 コース 地域共創 筆記問題 A、ラジオボタンとは、1つだけ選ぶ方法である。例えば、 ◯20代 ◯30代 ◯40代 の中でお好みのものにチェックをいれるようにする。とこのように表示される。 但しプログラムとしては という形を作って置く。 inputタイプにはラジオボタン(複数から1つを選択する)要 素を置く。nameは同じ変数で統一させておく。1つがチェックされると他の選択 肢はクリアされてしまう。よってvalue表示内においた文字が最終的に決定され るしくみである。 B、チェックボタンとは、いくつか選べる方法である。例えば、 プログラムの形としては はえぬき 栄養あるで- 牛の肉 である。 実際には ◯米 ◯野菜 ◯肉 と表示がなされる チェックボタンはnameを違う変数にすることで、複数選択できる。 2プログラム問題 A-1、リンクアドレス http://roy.e.koeki-u.ac.jp/~c110129/advertise2/rubycgi/fork.html A-2、プログラム本体 #!/usr/koeki/bin/ruby require 'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-JP\n\n") number = 0 open("number.txt","r") do |read| while data = read.gets if /(\d+)/ =~ data number = $1.to_i end end end print("\n") print("\n") print("いらっしゃい\n") print("\n") print("\n") printf("

No. %d のお客様

\n", number) print("

私のページへようこそ

\n") print("\n") print("\n") number += 1 open("number.txt","w") do |write| write.printf("%d\n",number) end A-3、プログラムの各部の説明 #!/usr/bin/env rubyはhtml文書で書いたディレクトリをRubyで取りこむ requireはプログラムで必要な外部との連絡をする際に用いる記述方法である。 CGI.newは変数をhash値として取り出す。 print("Content-print("Content-type: text/html; charset=EUC-JP\n\n") type: text/html; charset=EUC-JP\n\n")が日本語コードで入力を可能にする。 arv= cgi["arrive"]をhtml内の表示をうけcgi用として出発の地点を示している。 openメソッドで指定したファイルを開く。open("number.txt","r")を開かせてい る。 ファイルは書き込む時モードを変数で代入しておく。number.txtの後に"r"の ようにする。ファイルの変数名で文字を代入する。 while data= read.getsでファイルの読み取りを行っている。 if文でもし〜ならという意味を含む。 /d+は0〜9の数字を1回以上繰り返したものが選ばれる。 つまり数字と思われるものを選択させる。 /正規表現/ =~ 文字列 =~は正規表現にマッチするという比較演算子である。 $1は前段の/(\d+)のカッコ内の定められた部分を後で取り出すことが出来る これを後方参照というものである 正規表現で記述した際の()の順番に応じて数字をあとから取り出すことがで きる。数字の値は文字列でできる print部分はカット number += 1は後方参照で取り出した数字にプラス1足した数を他のWebで表示させてい る。 openメソッドで指定したファイルをひらいている 後の"w"はファイルの変数名と指定し、実行し、writeでwebに書かせる %dは変数numberの値を書かせる A-4、実行結果 ページ1 基礎プログラミングII:カウンタ ようこそ私のページへ いままで訪れた人数はこちらから閲覧: ページ2 No. 7 のお客様 私のページへようこそ B-1 リンクアドレス http://roy/~c109073/advertise2/rubycgi/keisan.html B-2 プログラム本体 #!/usr/koeki/bin/ruby require 'cgi' cgi =CGI.new("html4") print("Content-type: text/html; charset=EUC-jp\n\n") kazu= cgi[kingaku] kazu2=cgi[kingaku2] kazu3=cgi[kingaku3] print("\n") print("\n") print("金額の合計です。\n") print("\n") print("\n") print("

簡単でしたよね!

\n") print("\n") print("\n") kingaku1=gets.chomp!.to_i kingaku2=gets.chomp!.to_i kingaku3=gets.chomp!.to_i while true if kingaku3 == "+" total == kingaku.to_i + kingaku2.to_i printf("合計は %d 円\n",total) end if kingaku3 == "-" total == kingaku.to_i - kingaku2.to_i printf("合計 %d 円\n",total) end if kingaku3 == "*" total == kingaku.to_i * kingaku2.to_i printf("合計は %d 円\n",total) end if kingaku3 == "/" total == kingaku.to_i / kingaku2.to_i printf("合計は %d 円\n",total) end B-3プログラムの各部の説明 requireはプログラムで必要な外部との連絡をする際に用いるため使用した。CGI.new は変数をHash値として取り出すようにする。 print("Content-type: text/html; charset=EUC-jp\n\n")は日本語コード入力を 可能とするため用いた。kazu=[変数]としてkingakuをruby内で表示できるように する作業を行う。#!/usr/bin/env rubyでhtml文書をruby内のディレクトリに取 りこむことができたので条件判断と呼ばれるif文を用いて金額をそれぞれ求めて いきます。ただしここで重要なことは算術演算子と、とりわけ割る式の値には、 小数点がついてしまうため、to_iの形で整数に変換するという作業をする必要が ある。 算術演算式とは、+や-などの記号をよぶ。これは、日常的に使用する演算子とは 異る演算子を使用する。 B-4 プログラム結果 Tgifの解説 リンクアドレス http://roy.e.koeki-u.ac.jp/~c110129/advertise2/char_r2_c110129.png ◯Tgifの名前 めざせ日本代表 ◯工夫 私が今回重点的に使ったのが、フリーハンドと円弧モードです。 freeハンドをよりやりやすくするためにグリッドの間隔をちいさくし、実際手で 書いているような絵にしあげました。 できるだけ人本来の姿を表したいとfreeで多くの時間をさきました。 そうした細かい部分をも取り入れたところが、多くの人と違う点だと思います。 obj形式:char_r2_c110129.obj png形式:http://roy.e.koeki-u.ac.jp/~c110129/advertise2/char_r2_c110129.png 感想 私は今回の課題を通して、ディレクトリどうしのつながりを計算によって知るこ とができたと感じている。CGIをもちいることで、htmlに反映されて計算が行わ れることがすごいと思いました。 Tgifでの作業を通してこんなにも機能が多く備わっていることを知るきっかけに もなったし、さらに良い作品を作りたいと感じた。 参考文献 神田直弥 http://roy/~naoya/ruby/index.html 西村まどか http://roy/~madoka/2011/r2/ 広瀬雄二 http://roy/~yuuji/2011/index.shtml