第 9 回 ことえらび レポート課題 
氏名:渡辺 龍
学籍番号:c1102057
語学クラス:中国語 3クラス
コース(系):地域共創コース
1.筆記問題 
A.ラジオボタンの説明
ラジオボタンとは、複数の選択肢の中からどれかを選択させる場合に使用。
ラジオボタンを使用する場合は、それぞれにinput要素をつける必要がある。
ラジオボタンのnameを統一することによって同じグループが出来る。
☆例☆
 input type="radio" = ラジオボタンを作成する。
 name="???" = 使用するラジオボタン区別する。
 value="???" = 選択したものがプログラムに送られる。
B.チェックボックスの説明
 input type="checkbox"
 name="???"
 value="???"
の三つを使用すると作成できる。
type="checkbox" でチェックボックスを作成する。
選択・送信されるとvalueがcgiに送られる。
ラジオボタンと違いは、複数の選択肢を選択出来るという点である。
C.PNG画像 (カピバラ署名付き) 
題名および解説 : カピバラ のんびりカピバラ
作った方法 : まるを多用。
工夫した点 : なるべく可愛く作った。
/public_html/advertise2/rubycgi/char_r2_c110205.png
2.プログラム問題
A カウントプログラム [houmon.rb]
*プログラムのリンク先*
http://roy.e.koeki-u.ac.jp/~c110205/advertise2/rubycgi/fork.html
(1)考えた設定
自分のホームページに来た人数を知る。
また来た人数などは表示される。
(2) open メソッドで使用するデータ
[houmon.txt]
データの中身
↓↓
468
(3)作成したプログラム[houmon.rb]
#!/usr/koeki/bin/ruby  
require 'cgi'   # CGI の使用を宣言。                        
cgi = CGI.new("html4") # 新たな CGI を作成。                  
                       # html文書に CGI を使用することを定義。
print("Content-type: text/html; charset=EUC-jp\n\n")
# 受け取ったデータを日本語に変換し使用。
houmon = 0    # 関数 houmon の定義。
              # 初期値は 0とする。            
open("houmon.txt" , "r") do |x|  
# houmon.txt を読み込む。引用したデータは x に代入される。        
  while kazu = x.gets    # 繰り返し作業。関数 kazu に get でデータの代入。
                         # kazu には houmon.txt のデータが入る。
    if /(\d+)/ =~ kazu   # 条件指定。              
      houmon = $1.to_i   # to_i は整数。houmon にデータを代入。                
    end                  # if の end               
  end                    # while の end
end                      # open の end
# 下記のものは public_html にて表示。
print("\n")                       
print("
\n")                       
print("訪問者人数\n")      
print("\n")
print("\n")                      
print("\n")                       
print("訪問者人数
\n")            
print("\n")
print("
\n")
printf("あなたで訪れた人数は: %d人目です\n",houmon) # houmon を代入。
print("
\n")
print("時間がありましたら計算プログラムの方も是非御利用ください!!\n")       
print("
\n")
print("
\n")
print("
\n")                        
print("\n")                      
print("\n")                     
houmon += 1   # プラス1していく。                           
open("houmon.txt" , "w") do |y|    
 # houmon.txt を読み込む。引用したデータは y に代入される。 
  y.printf("%d\n",houmon)  # houmon を代入。        
end # open の end
(4) 実行結果
pan{WATANABE Ryu}% ./houmon.rb               [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
Content-type: text/html; charset=EUC-jp
訪問者人数
訪問者人数
あなたで訪れた人数は: 468人目です
時間がありましたら計算プログラムの方も是非御利用ください!!
(5)考察
プログラムの計算で正確に+1されているか?
(1回目の実行結果)
pan{WATANABE Ryu}% ./houmon.rb               [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
Content-type: text/html; charset=EUC-jp
訪問者人数
訪問者人数
あなたで訪れた人数は: 468人目です
時間がありましたら計算プログラムの方も是非御利用ください!!
(2回目の実行結果)
pan{c110205}% ./houmon.rb                    [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
Content-type: text/html; charset=EUC-jp
訪問者人数
訪問者人数
あなたで訪れた人数は: 469人目です
時間がありましたら計算プログラムの方も是非御利用ください!!
結果 : 正確に+1されていた。
B.計算プログラム  [keisan.rb]
*プログラムのリンク先*
http://roy.e.koeki-u.ac.jp/~c110205/advertise2/rubycgi/fork.html
(1)考えた設定
加算・減算・乗算・除算
以上の4つのどれかを選択し計算して結果を出すプログラム。
(2)使用したhtml [keisan.html]
計算プログラム
計算プログラム
(3)作成したプログラム[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")
# 受け取ったデータを日本語に変換し使用。
kazu1 = cgi["kazu1"]  # 関数 kazu1 に cgi["kazu1"] を代入。
kazu2 = cgi["kazu2"]  # 関数 kazu2 に cgi["kazu2"] を代入。
kazu3 = cgi["kazu3"]  # 関数 kazu3 に cgi["kazu3"] を代入。
print("\n")                  
print("\n")                 
print("計算プログラム\n")       
print("\n")
print("\n")                  
print("\n")                  
if kazu3 == "tasu"            # 条件指定。もし足すなら。
  k = kazu1.to_i + kazu2.to_i # それぞれの関数計算。
elsif kazu3 == "hiku"         # 条件指定。もし引くなら。
  k = kazu1.to_i - kazu2.to_i # それぞれの関数計算。
elsif kazu3 == "kakeru"       # 条件指定。もし掛けるなら。      
  k = kazu1.to_i * kazu2.to_i # それぞれの関数計算。 
else                          # 条件指定。もしそれ以外なら。
  k = kazu1.to_f / kazu2.to_f # それぞれの関数計算。
end
print("実行結果
\n")    
if kazu3 == "tasu"            # 条件指定。もし足すなら。  
  printf("%d + %d = %d
\n",kazu1 ,kazu2 ,k) # それぞれの関数計算。
elsif kazu3 == "hiku"         # 条件指定。もし引くなら。  
  printf("%d - %d = %d
\n",kazu1 ,kazu2 ,k) # それぞれの関数計算。
elsif kazu3 == "kakeru"       # 条件指定。もし掛けるなら。  
  printf("%d * %d = %d
\n",kazu1 ,kazu2 ,k) # それぞれの関数計算。 
else                          # 条件指定。もしそれ以外なら。  
  printf("%d / %d = %f
\n",kazu1 ,kazu2 ,k.to_f)
   # それぞれの関数計算。
end    # 条件指定をとじる(if.elsif.else) end                         
print("\n")              
print("\n")
(4)実行結果
pan{c110205}% ./keisan.rb                    [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
kazu1=6
kazu2=3  
kazu3="tasu"    
Content-type: text/html; charset=EUC-jp
計算プログラム
実行結果
6 + 3 = 9
(5)考察
他の計算は実行出来るのか?
実行結果は当たっているのか?
かけ算の場合
pan{c110205}% ./keisan.rb                    [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
kazu1=4     
kazu2=5
kazu3="kakeru"
Content-type: text/html; charset=EUC-jp
計算プログラム
実行結果
4 * 5 = 20
実行は出来た。
次に確かめ算で実行結果が正確かを確かめる。
確かめ算
pan{c110205}% bc -l                          [~/public_html/advertise2/rubycgi]
4*5
20
quit
結果 : 計算結果は正確であった。また他の計算にも何の支障は無かった。
D.着せ変えプログラム[kisekae.rb]
*プログラムのリンク先*
http://roy.e.koeki-u.ac.jp/~c110205/advertise2/rubycgi/fork.html
(1)考えた設定
背景色を選択肢から選び変更するプログラム。
(2)使用したhtml [kisekae.html]
色変えプログラム
色変えプログラム
色を選択して下さい
(3)作成したプログラム [kisekae.rb]
#!/usr/koeki/bin/ruby
require 'cgi'            # CGI の使用を宣言。                
cgi = CGI.new("html4")   # html文書に CGI を使用することを定義。
print("Content-type: text/html; charset=EUC-jp\n\n")
# 受け取ったデータを日本語に変換し使用。
color = cgi["color"]     # 引用したデータを color に代入。 
print("\n")     
print("\n")    
print("色変えプログラム\n")   
if color == "aka"     # 条件指定。aka だった場合。
  print("\n")
print("真っ赤かの炎だぜ!!\n") 
elsif color == "ao"   # 条件指定。ao だった場合。 
  print("\n")
  print("海に行きたくなる色だね!!\n")
elsif color == "siro" # 条件指定。siro だった場合。
  print("\n")
  print("真白だね!!\n")
else                  # それ以外の場合。
  print("\n")
  print("森の中に居るみたいだね!!\n")
end                  
print("\n")    
print("\n")   
print("
\n")    
print("さあ次は何色にする?
\n")   
print("\n")   
print("\n")   
(4)実行結果
pan{c110205}% ./kisekae.rb                   [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
Content-type: text/html; charset=EUC-jp
色変えプログラム
森の中に居るみたいだね!!
さあ次は何色にする?
(5)使用した css
color1.css
color2.css
color3.css
color4.css
3.感想
今回はボーナス点を逃してしまった。しかし納得のいく結果をいくつか出せたの
で後悔はしていない。次回からは更に気を引き締めて頑張っていきたい。
4.参考文献
西村先生の講義ノート
基礎プログラミング II 第 8 回 「ことはじめ」
http://roy/~madoka/2011/r2/08/
基礎プログラミング II 第 9 回 「ことえらび」
http://roy/~madoka/2011/r2/09/
5.協力者
細田 洋平 君
菊池 綾 さん
6.添付