第 9 回 ことえらび レポート課題 氏名:宮城晃司 学籍番号:c1101879 語学クラス:中国語3 コース(系):社会福祉コース 1.筆記問題 A. ラジオボタンはボタンを選択して、選びたい選択肢の ボタンを押すことによって、1つだけ選択できる仕組みである。 プログラムとしては、 選択肢1 選択肢2 という感じで作成できる。 B. チェックボックスとは、複数の選択肢から複数を選択する場合に使用する。 複数の選択肢それぞれにinput要素を用意する。 同じグループのチェックボックスに属性のものには共通のname属性を指定する。 同じ項目を選択するたびに、onとoffに入れ替わる。 C. 作品名「でっかい雪だるま」 主に輪っかを駆使して作成しました。 http://roy/~c110187/advertise2/char_r2_c110187.png 2.プラグラム問題 まずは土台となるページ↓の概要からです。 ページ http://roy.e.koeki-u.ac.jp/~c110187/rubycgi/fork.html pngを載せたページ http://roy/~c110187/advertise2/ (fork.html) カウンター

プログラミングII

カウンター

計算プログラム

著作権

このプログラムは東北公益文科大学、宮城晃司が
著作権を保有しています。
このプログラムの入手、実行、改変は自由です。
このプログラムに対する意見、感想などは下記の
アドレスへお願いします。

c110187@e.koeki-u.ac.jp

我がホームページへ

A.カウンター プログラム (count.rb ) #!/usr/koeki/bin/ruby require 'cgi' # cgiを使う宣言 cgi = CGI.new("html4") #html4で使用 print("Content-type: text/html; charset=EUC-JP\n\n") number = 0 # numberの初期値は0 open("number.txt","r") do |read| # number.txtを読みこむ。 while data = read.gets if /(\d+)/ =~ data # データが数字一つだけの場合 number = $1.to_i # その数字を整数として取り入れる。 end # if end # while文終了 end # open do文終了 print("\n") # html文 開始 print("\n") # head文 開始 print("カウンター\n") # ウィンドウに表示されるタイトル print("") # fork.css を 使う。 print("\n") # head文 終了 print("\n") # body文 開始 printf("

あなたで %d 人目 です。

\n", number) # 一番の見出しで人数を表示 print("

また来てねー☆

\n") # ここまでは2番の見出しでメッセージ print("\n") print("\n") number += 1 # numberに1足す open("number.txt","w") do |write| # dat内のcounter.txtに書きこむ。 write.printf("%d\n",number) # 書きこむ内容は number。 end # open do 文 終了 実行結果 pan{MIYAGI Koji}% ./count.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) Content-type: text/html; charset=EUC-JP カウンター

あなたで 372 人目 です。

また来てねー☆

考察 今回は前回と似ている部分があるなと思った。最初にCGIを使う宣言をして、 HTMLで使用して"Content-type: text/html; charset=EUC-JP\n\n") このコマン ドを駆使して日本語表記にする。KCODEと似ているので少々戸惑った。指定され た数値をそのまま使ったのでとても高い数値になっている。実際使っても1ずつ 増えていったので正しく起動していると言える。 B.CGI計算プログラム (keisan.html) keisan

計算プログラム


    数字を入れよう☆:

    数字を入れよう△:

    + - × /

    (keisan.rb) #!/usr/koeki/bin/ruby require 'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-jp\n\n") suji1 = cgi["suji1"] suji2 = cgi["suji2"] suji3 = cgi["suji3"] print("\n") print("\n") print("計算プログラム\n") print("\n") print("\n") print("\n") if suji3 == "tasu" s = suji1.to_i + suji2.to_i elsif suji3 == "hiku" s = suji1.to_i - suji2.to_i elsif suji3 == "kakeru" s = suji1.to_i * suji2.to_i else suji3 == "waru" s = suji1.to_f / suji2.to_f end print("

    計算結果

    \n") if suji3 == "tasu" printf("

    %d + %d = %d

    \n",suji1 ,suji2 ,s) elsif suji3 == "hiku" printf("

    %d - %d = %d

    \n",suji1 ,suji2 ,s) elsif suji3 == "kakeru" printf("

    %d * %d = %d

    \n",suji1 ,suji2 ,s) else suji3 == "waru" printf("

    %d / %d = %f

    \n",suji1 ,suji2 ,s.to_f) end print("\n") print("\n") 実行結果 pan{MIYAGI Koji}% ./keisan.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) suji1="3" suji2="5" suji3="tasu" Content-type: text/html; charset=EUC-jp 計算プログラム

    計算結果

    3 + 5 = 8

    考察 このプログラムは最初全然わからなかったので、友達や先輩のレポートを参考に しながら自分なりに着色して作った。 pan{c110187}% ./keisan.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) suji1="4" suji2="2" suji="waru" Content-type: text/html; charset=EUC-jp 計算プログラム

    計算結果

    4 / 2 = 2.000000

    試しに割ったが、正しく起動しているようだ。今回はelseやelsifなど、前期で ならった内容が多かった。まだまだ把握しきれてないところがあるので、しっか り復習をしたい。 参考文献 先輩のレポート http://roy/~madoka/2010/r2/09/rpt/c109067.txt 基礎プログラミング II 第 9 回 (ことえらび) 「ラジオボタンの作り方」 http://roy/~madoka/2011/r2/09/r2_09_04_theme_04_radio.html 基礎プログラミング II 第 9 回 (ことえらび) 「チェックボックスの作り方」 http://roy/~madoka/2011/r2/09/r2_09_05_theme_05_checkbox.html 友達 感想 今回はさすがに骨が折れる課題だった。CGIは内容が難しいかったのでもうほん とパソコンと友達になるくらいの勢いだった。Tgifは少しは楽な気持ちでやれた が、少し手間がかかった。今度からはきちんと理解ができるようにしたい。 協力者 佐藤汰紀