第 9 回 ことえらび レポート課題 氏名:見川英駿 学籍番号:c1101856 語学クラス:中国語3 コース(系):地域共創コース 1.筆記問題 A.ラジオボタンの説明 複数の選択肢から1つだけを選択する場合に用いられる。ラジオボタンの表示方 式はほぼ共通で、ボタンは丸印で表現され、選択されているボタンについては丸 の中に塗りつぶされた丸が入っている。 B.チェックボックスの説明 小さな正方形の中にチェック記号を入れたり外したりするこ とにより「はい」「いいえ」の意思表示をするのに使う。 チェックボックスはラジオボタンと違い、複数の選択肢からあてはまるものをす べて選ぶ場合に使用される。 C.キャラクター解説 「人人」 私がTgifで書いたキャラは人参がモデルになっています。なぜ人参にしたかというと、 嫌いな人が多いからです。その嫌いなものも克服して食べる!という考えで、プ ログラミングの苦手意識も克服するという思いで書きました。工夫した点はキャ ラの愛くるしさをどうすれば出せるか、可愛らしさを目標に顏のパーツに力を入 れました。 2.プログラミング問題 A.プログラム掲載ページ ************************************************ http://roy/~c110185/advertise2/rubycgi/fork.html ************************************************ 「アクセス数測定機」 [作成意図] 閲覧者のアクセス数を数えるプログラムを作成したかったから。 [カウントプログラム] (count.rb) #!/usr/bin/env ruby require 'cgi' #CGIを使用するための宣言 cgi = CGI.new("html4") #HTML上でCGIを使用 print("Content-type: text/html; charset=EUC-JP\n\n") #日本語表記 arv = cgi["arrive"] number = 0 #カウンタの初期値を0とする open("number.txt","r") do |read| #number.txtを読み込み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") print("\n") printf("

あなたは %d 番目の訪問者です!

\n", number) print("

訪問ありがとうございますm(_ _)m

\n") print("\n") print("\n") number += 1 #1ずつ足す open("number.txt","w") do |write| write.printf("%d\n",number) #numberに数字を書き、表示させる end ------------------------------------------------------------------------------ number.txtをktermで chmod o+w number.txt と入力して属性を変更することで カウントされるようになる。ファイル所有者だけでなく、閲覧者もテキストに書込み 可能にする手立てを取る。 ------------------------------------------------------------------------------ [実行結果] pan{c110185}% ./count.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) Content-type: text/html; charset=EUC-JP いらっしゃーい

あなたは 32 番目の訪問者です!

訪問ありがとうございますm(_ _)m

B. 「四則演算電卓」 [作成意図] 電卓機能をウェブ上で使えるようにしたかったため作成した。 [計算プログラム] (keisan.rb) #!/usr/koeki/bin/ruby require 'cgi' #CGIを使用するための宣言 cgi = CGI.new("html4") #HTML上でCGIを使用 print("Content-type: text/html; charset=EUC-jp\n\n") #日本語表記 suji1 = cgi["suji1"] #四則演算を行うためsujiを3つ用意する suji2 = cgi["suji2"] # ※3つ用意することで四則演算をまかなえる suji3 = cgi["suji3"] print("\n") print("\n") print("計算プログラム\n") print("\n") print("\n") print("\n") if suji3 == "tasu" #もし足すならば... n = suji1.to_i + suji2.to_i elsif suji3 == "hiku" #もし引くならば... n = suji1.to_i - suji2.to_i elsif suji3 == "kakeru" #もし掛けるならば... n = suji1.to_i * suji2.to_i else #それ以外(割る)ならば... n = suji1.to_f / suji2.to_f #小数が出てくるため to_f end print("

計算結果

\n") if suji3 == "tasu" #足し算結果 printf("

%d + %d = %d

\n",suji1 ,suji2 ,n) elsif suji3 == "hiku" #引き算結果 printf("

%d - %d = %d

\n",suji1 ,suji2 ,n) elsif suji3 == "kakeru" #掛け算結果 printf("

%d * %d = %d

\n",suji1 ,suji2 ,n) else #割り算結果 printf("

%d / %d = %f

\n",suji1 ,suji2 ,n.to_f) end print("\n") print("\n") [計算プログラムHTML] (keisan.html)


× ÷


[実行結果] pan{MIKAWA Hidetoshi}% ./keisan.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) suji1=10 suji2=5 suji3="hiku" Content-type: text/html; charset=EUC-jp 計算プログラム

計算結果

10 - 5 = 5

[確かめ算] pan{c110185}% bc -l [~/public_html/advertise2/rubycgi] 10 - 5 5 これによりプログラム内での計算結果は正しいことがわかった。 [感想] 一つ一つの設問に時間が大部かかってしまった。今回はとことん調べて作れた気 がする。Tgifのキャラは可愛くできたんじゃないかと思う。Tgifは前期触れてこ なかった所なので今回の課題でいろいろ調べられて良かった。 参考にしたページが多くて、さまざまなやり方を知った。 [参考文献] ●一般のウェブページから● Tgifの使い方 http://www.ecl.hiroshima-u.ac.jp/seminar/seminar04/tgif/index.html ●西村まどか先生のページから● 前年の先輩のページ http://roy/~madoka/2010/r2/09/rpt/c109074.txt 第8回ページ http://roy/~madoka/2011/r2/08/ 第9回ページ http://roy/~madoka/2011/r2/09/rpt/rpt.html [共同学習者] 五十嵐兼一 くん 宮原絵美里 さん [添付]