第 9 回 ことえらび レポート課題 
氏名:小林愛実
学籍番号:c1100816
語学クラス:英語6
コース(系):政策マネジメント
1、筆記問題
A、ラジオボタンのしくみ
ラジオボタンとは、1 つだけ選ぶ方法である。
ラジオボタンの基本的な形は
△△△
である。
type="radio"  でラジオボタンであることを宣言する。
name="???"  でラジオボタンの名前をつけ、使うラジオボタンを区別する。
value="◯◯◯" でGI 変数の値を入れ、ユーザが選ぶとこの値がプログラムに送られる。
>△△△ はHTMLに表示される部分である。
B、チェックボックスのしくみ
チェックボックスの基本的な形は
△△△
である。
type="checkbox"  でチェックボックスであることを宣言する。
name="???" でェックボックスの名前をつけ、使うチェックボックスを区別する。
value="◯◯◯" でCGI 変数の値を入れ、ユーザが選ぶとこの値がプログラムに
送られる。
>△△△ はHTMLに表示される部分である。
基本的な形は、ラジオボタンと変わらないが大きな違いは、複数の選択肢を選択
することができることである。
2、プログラム問題
ホームページ 
http://roy.e.koeki-u.ac.jp/~c110081/advertise2/rubycgi/fork.html
A-A
カウンタープログラム    
http://roy.e.koeki-u.ac.jp/~c110081/advertise2/rubycgi/fork.rb
A-B
カウンタープログラム  [ fork.rb ]
カウンタープログラムというところをクリックすると、ユーザーが何番目にこの
ページに入ってきたか分かるプログラムを作成した。
A-C,D   作成したプログラムと解説
[ fork.rb ]
#!/usr/bin/env ruby
require 'cgi'                 # CGI を使う
cgi = CGI.new("html4")        # CGI を HTML 文書に使う
print("Content-type: text/html; charset=EUC-JP\n\n")  # 日本語コード指定
number = 0                    # 0から始まる
open("number.txt","r") do |read|      
# openメソッドを使って、number.txtというファイルを開いている。
# モードはrなので読み込み専用となる。
# do |read|の readはファイルに書き込みを行う際の変数として利用している。
 while data = read.gets           # 繰り返しをさせる
  if /(\d+)/ =~ data              # もしデータが数字だったら
   number = $1.to_i               # numberに代入させる
  end                             # if の終わり   
 end                              # while の終わり
end                               # open の終わり
# ここからhtml
print("\n")
print("
\n")
print("いらっしゃいませ\n")
print("")
print("\n")
print("\n")
print("ようこそ
\n")
printf("%d番目のお客さまです。
\n",number)     # numberが表示される
print("\n")
print("\n")
number += 1       # 1ずつ足していく。
open("number.txt","w") do |write| 
  write.printf("%d\n",number) 
  # number.txt に値を書き、数値を表示させる
end           # open の終わり  
A-E 実行結果
*一回目*
いらっしゃいませ
ようこそ
17番目のお客さまです。
*二回目*
いらっしゃいませ
ようこそ
18番目のお客さまです。
<考察>
A-E 実行結果の通り、一回目が
17番目のお客さまです。
と表示され、二回目に
18番目のお客さまです。
と表示された。
このことから、17、18と続けて表示されたため、このプログラムは正しい。
B-A  計算プログラム
http://roy.e.koeki-u.ac.jp/~c110081/advertise2/rubycgi/calc.html
B-B
計算プログラム
数値と書かれたところに数字を入力し、+、-、×、÷の中からどれか一つを選ぶ
と、計算をするプログラムを作成した。
B-C,D  作成したプログラムと解説
[ calc.html ]
計算
# fork.css を使用する
計算プログラム
[ calc.rb ]
#!/usr/bin/env ruby
require 'cgi'                 # CGI を使う
cgi = CGI.new("html4")        # CGI を HTML 文書に使う
print("Content-type: text/html; charset=EUC-JP\n\n")  # 日本語コードの定義
calc1 = cgi["calc1"]
calc2 = cgi["calc2"]
calc3 = cgi["calc3"]
print("\n")
print("\n")
print("計算プログラム\n")
print("")
print("\n")
print("\n")
if calc3 == "tasu"                             # 足算のときは
   answer = calc1.to_i + calc2.to_i            # calc1とcalc2を足す
elsif calc3 == "hiku"                          # 引算のときは
   answer = calc1.to_i - calc2.to_i            # calc1からcalc2を引く
elsif calc3 == "kakeru"                        # 掛け算のときは
   answer = calc1.to_i * calc2.to_i            # calc1とcalc2を掛ける
else calc3 == "waru"                           # 割り算のときは
   answer = calc1.to_f / calc2.to_f            # calc1からcalc2を割る
end                                            # if の終わり
 
print("◎計算結果◎
\n")
if calc3 == "tasu"                                       # もし + を選択したら
  printf("%d + %d = %d
\n",calc1,calc2,answer)   
elsif calc3 == "hiku"                                    # もし -  を選択したら
  printf("%d - %d = %d
\n",calc1,calc2,answer)   
elsif calc3 == "kakeru"                                  # もし × を選択したら
  printf("%d × %d = %d
\n",calc1,calc2,answer)  
else calc3 == "waru"                                     # もし ÷ を選択したら
  printf("%d ÷ %d = %f
\n",calc1,calc2,answer.to_f)
end                                                      # if の終わり
print("\n")
print("\n")
B-E   実行結果
計算プログラム
◎計算結果◎
15 + 3 = 18
<考察>
実行結果が合っているのかbc -lで確かめた。
pan{c110081}% bc -l                          [~/public_html/advertise2/rubycgi]
15+3
18
実行結果と一致する。
-、×、÷も実行してみたがどれも一致したため、このプログラムは正しい。
D-A
きせかえプログラム
http://roy.e.koeki-u.ac.jp/~c110081/advertise2/rubycgi/kisekae.html
D-B
きせかえプログラム   
赤、青、黄、ピンクの4つの中から一つを選ぶと、その選択された色に文字が変
化するプログラムを作成した。
D-C,D   作成したプログラムと解説
[ kisekae.html ]
着せ変えプログラム
   
# fork.cssを使用する
着せ変えプログラム
[ kisekae.rb ]
#!/usr/bin/env ruby
require 'cgi'                 # CGI を使う
cgi = CGI.new("html4")        # CGI を HTML 文書に使う
print("Content-type: text/html; charset=EUC-JP\n\n")  # 日本語コードの定義
iro = cgi["iro"]               # 受け取ったデータをiroに代入
# ここからhtml 
print("\n")              
print("\n")
print("着せ変えプログラム\n")
if iro == "aka"                     # もし赤を選択したら
   print("\n")
   # iro1.css  が使用される                        
elsif iro == "ao"                   # もし青を選択したら
   print("\n")
   # iro2.css が使用される
elsif iro == "kiiro"               # もし黄色を選択したら
   print("\n")
   # iro3.css が使用される
else iro == "pinku"                # もしピンクを選択したら
    print("\n")
   # iro4.css が使用される
end      # if の終わり 
print("\n")
print("\n")
print("着せ変えプログラム
\n")
print("色が変わります
\n")
print("\n")
print("\n")
D-E   実行結果
着せ変えプログラム
着せ変えプログラム
色が変わります
<考察>
全ての色を選択して実行したが、どれも.cssで設定した色に変化したため、
このプログラムは正しい。
F   キャラクター画像
題名 :いちご
解説 :いちごの画像を作成した。
作った方法 :Tgif
工夫した点 :出来るだけポップに見えるようにした。
URL
http://roy.e.koeki-u.ac.jp/~c110081/advertise2/char_r2_c110081.png
http://roy.e.koeki-u.ac.jp/~c110081/advertise2/char_r2_c110081.obj
3、感想
今回の課題は、とても難しかったです。
とくに、カウンタープログラムは何度挑戦しても結果が表示されず、あきらめそ
うになりましたが、友人に教えてもらいできました。
Tgifは使いこなせるまで時間がかかりましたが、納得がいく作品になったと思い
ます。
4、参考文献
西村まどか
基礎プログラミングII
「ことはじめ」
http://roy.e.koeki-u.ac.jp/~madoka/2011/r2/08/
「ことえらび」
http://roy.e.koeki-u.ac.jp/~madoka/2011/r2/09/
神田直弥
「値の型変換」
http://roy/~naoya/ruby/3.html
HTMLタグ 
http://www.tagindex.com/html_tag/form/input_text.html
HTML色見本
http://www.hi-ho.ne.jp/douton/htmlcolor.html
共同作成者
照井さつき
東北公益文化大学
公益学部 公益学科 2年 小林愛実
c110081f.koeki-u.ac.jp