第 9 回 ことえらび レポート課題 
氏名:下妻 匡哉
学籍番号:c1101164
語学クラス:英語(6)
コース(系):地域共創コース
1.筆記問題
 A. ラジオボタンとは、入力者が、表示されている複数の選択肢から1つのみを選
   択する方法である。
    zzz で表示される。
   input type="radio" でラジオボタンをつくることを示し、name="xxx"はラジ
   オボタンプログラムの名前、zzz は入力者が見る部分で 、value="yyy"の部
   分が処理される。
    選択肢の脇にあるチェックボタンにチェックをいれることで、1つのみを
   選択するしくみである。
 B. チェックボックスは、基本的にはラジオボタンと同じシステムであるが、複
   数の選択も出来る点が異なる。
    @@@ で表示される。
   input type="checkbox" でチェックボックスをつくることを示し、
   name="###" はチェックボックスプログラムの名称、@@@ は入力者が見る部分、
   入力結果により value="***" の部分が処理される。
 C.http://roy/~c110116/advertise2/rubycgi/char_r2_c110116.png.png
  詳しくは後述。
--------------------------------------------------------------------------------
2.プログラム問題
 B.CGI計算機プログラム
  リンク: http://roy/~c110116/advertise2/rubycgi/fork.html
  (1)考えた設定
    使用者が数値を入力し、それの計算方法を選択すると、計算結果が表示され
    る、というプログラムを作成した。
  (2)作成したHTML・プログラム
  HTML:calc.html
     # html スタート
     # head スタート
CGI計算機プログラム     # タブに表示されるタイトル
           # css 使用の宣言
     # body スタート
CGI計算機プログラム
         # 最初の見出しをタイトルとして表示
       # スペース
入力する文字は8桁以内の数字でお願いします
           # 説明文
    # form 終わり
    # body 終わり
    # head 終わり
    # html 終わり
  プログラム:calc.rb
#!/usr/koeki/bin/ruby
require 'cgi'          # CGI を使う。
cgi = CGI.new("html4") # CGI をHTML文書に使う。
print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードの定義。
kazu1 = cgi["kazu1"]   # kazu1 は cgi["kazu1"] という CGI にする
kazu2 = cgi["kazu2"]   # kazu2 は cgi["kazu2"] という CGI にする
kazu3 = cgi["kazu3"]   # kazu3 は cgi["kazu3"] という CGI にする
 # 以下、HTML文書
print("\n")
print("\n")
print("計算プログラム\n")
print("\n\n")
print("\n")
if kazu3 == "tasu"     # もし kazu3 の選択が tasu だったら
  a = kazu1.to_i + kazu2.to_i   # kazu1 と kazu2 の数値を 実数にして足す
elsif kazu3 == "hiku"  # もし kazu3 の選択が hiku だったら
  a = kazu1.to_i - kazu2.to_i   # kazu1 と kazu2 の数値を 実数にして引く
elsif kazu3 == "kakeru"   # もし kazu3 の選択が kakeru だったら
  a = kazu1.to_i * kazu2.to_i   # kazu1 と kazu2 の数値を 実数にして掛ける
elsif kazu3 == "waru"  # kazu3 の選択が waru だったら
  a = kazu1.to_i / kazu2.to_i   # kazu1 と kazu2 の数値を 実数にして割る
end                    # if文のend
print("計算結果
\n")
if kazu3 == "tasu"     # もし kazu3 の選択が tasu だったら
  printf("%d + %d = %d\n", kazu1, kazu2, a)
        # 入力された数値の足算の計算式が表示される
elsif kazu3 == "hiku"  # もし kazu3 の選択が hiku だったら
  printf("%d - %d = %d\n", kazu1, kazu2, a)
        # 入力された数値の引算の計算式が表示される
elsif kazu3 == "kakeru"   # kazu3 の選択が kakeru だったら
  printf("%d * %d = %d\n", kazu1, kazu2, a)
        # 入力された数値の掛け算の計算式が表示される
elsif kazu3 == "waru"  # もし kazu3 の選択が hiku だったら
  printf("%d / %d = %d\n", kazu1, kazu2, a)
        # 入力された数値の割り算の計算式が表示される
end     # if文のend
print("")
print("\n")
print("")
  (3)もとにしたプログラム
    プログラムseat.html , seat.rb と info.html を参考にし、組み合わせて
    適切な形にした。
  (4)実行結果
pan{c110116}% ./calc.rb                      [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
kazu1="2"
kazu2="4"
kazu3="tasu"
Content-type: text/html; charset=EUC-JP
計算プログラム
計算結果
2 + 4 = 6
                                                                        
  (5)考察
    bc -l で確かめ算をすると、
pan{c110116}% bc -l                          [~/public_html/advertise2/rubycgi]
2 + 4
6
quit
    となった。よって、このプログラムは正常に作動しているといえる。
 D.彩色変更プログラム
   リンク: http://roy/~c110116/advertise2/rubycgi/fork.html
   (1)考えた設定
     使用者がラジオボタンの色を選択すると、cssファイルから色を読み込み、
     所定の欄の色が変わる、というプログラムを作成した。
   (2)作成したHTML・プログラム
   HTML: color.html   
     # html スタート
     # head スタート
彩色変更プログラム     # タブに表示されるタイトル
           # css 使用の宣言
    # head 終わり
     # body スタート
彩色変更プログラム
           # 最初の見出しをタイトルとして表示
    # form 終わり
    # body 終わり
    # html 終わり
   プログラム: color.rb
#!/usr/koeki/bin/ruby
require 'cgi'          # CGI を使う。
cgi = CGI.new("html4") # CGI をHTML文書に使う。
print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードの定義。
color = cgi["color"]   # color は cgi["color"] という CGI にする
 # 以下、HTML文書
print("\n")
print("\n")
print("彩色変更プログラム\n")
if color == "red"      # もし color の選択が red だったら
  print("\n")
                       # color1.css が使用される
elsif color == "orange"# もし color の選択が orange だったら
  print("\n")
                       # color2.css が使用される
elsif color == "yellow"# もし color の選択が yellow だったら
  print("\n")
                       # color3.css が使用される
elsif color == "green" # もし color の選択が green だったら
  print("\n")
                       # color4.css が使用される
elsif color == "blue"  # もし color の選択が blue だったら
  print("\n")
                       # color5.css が使用される
elsif color == "indigo"# もし color の選択が indigo だったら
  print("\n")
                       # color6.css が使用される
elsif color == "purple"# もし color の選択が purple だったら
  print("\n")
                       # color7.css が使用される
end                    # if文のend
print("\n")
print("\n")
print("彩色変更プログラム
\n")
print("ここの色が変化します!
\n")
print("")
print("")
   (3)もとにしたプログラム
      ベースはcalc.html と calc.rb で、これを合うように大幅に改造した。
   (4)実行結果
pan{c110116}% ./color.rb                     [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
color="red"
Content-type: text/html; charset=EUC-JP
彩色変更プログラム
彩色変更プログラム
ここの色が変化します!
  (5)考察
     全ての色が起動するか確かめる。
・赤色
pan{c110116}% ./color.rb                     [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
color="red"
Content-type: text/html; charset=EUC-JP
彩色変更プログラム
彩色変更プログラム
ここの色が変化します!
              
・橙
pan{c110116}% ./color.rb                     [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
color="orange"
Content-type: text/html; charset=EUC-JP
彩色変更プログラム
彩色変更プログラム
ここの色が変化します!
          
・黄
pan{c110116}% ./color.rb                     [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
color="yellow"
Content-type: text/html; charset=EUC-JP
彩色変更プログラム
彩色変更プログラム
ここの色が変化します!
             
・緑
pan{c110116}% ./color.rb                     [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
color="green"
Content-type: text/html; charset=EUC-JP
彩色変更プログラム
彩色変更プログラム
ここの色が変化します!
                                                
・青
pan{c110116}% ./color.rb                     [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
color="blue"
Content-type: text/html; charset=EUC-JP
彩色変更プログラム
彩色変更プログラム
ここの色が変化します!
・藍
pan{c110116}% ./color.rb                     [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
color="indigo"
Content-type: text/html; charset=EUC-JP
彩色変更プログラム
彩色変更プログラム
ここの色が変化します!
         
・紫
pan{c110116}% ./color.rb                     [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
color="purple"
Content-type: text/html; charset=EUC-JP
彩色変更プログラム
彩色変更プログラム
ここの色が変化します!
                            
    このように、全ての色が起動したので、このプログラムは正常に作動してい
    るといえる。
--------------------------------------------------------------------------------
3.Tgif で作ったキャラクター(char_r2_c110116.png.png)
 リンク:http://roy/~c110116/advertise2/rubycgi/char_r2_c110116.png.png
題名(名前):マリーモ
解説:これは自分を模したキャラクターである。昨年髪を切った時、友達から
    「お前マリモみたいじゃね?」となり、生み出されたのが所以。
工夫した点:最初は眼鏡をかけていたが、自分は今コンタクトにしているので、
	   コンタクトバージョンにしてみた。
OBJ形式へのリンク:http://roy/~c110116/advertise2/rubycgi/char_r2_c110116.obj
--------------------------------------------------------------------------------
4.感想
  今回は、相変わらず友達に教えてもらったり教えたりしなければ完成できず、
  大変で難しかった。しかし、前回に大きく躓いたり、理解できずに苦戦した分
  の積み重ねがあったので、それが生きた。
  Tgif の方は、前期に少ししかやらず、あまり理解できていなかったので、い
  い復習になったと思う。
--------------------------------------------------------------------------------
5.参考文献
基礎プログラミングII 第 9 回 ことえらび
http://roy/~madoka/2011/r2/09/
「ラジオボタンの作り方」
http://roy/~madoka/2011/r2/09/r2_09_04_theme_04_radio.html
「テキストフィールドの作り方」
http://roy/~madoka/2011/r2/09/r2_09_06_theme_06_textfield.html
 以上作者:西村 まどか
http://roy/~naoya/rubyII/8.html
神田 直弥
基礎プログラミングII 第 6 回 「再帰」
http://www.finitojapan.com/cltable.html
カラーコード - CGIレンタルサービス
http://www.colordic.org/colorsample/2076.html
藍色 あいいろ #165e83
-------------------------
東北公益文科大学
公益学部  2年 下妻 匡哉
C110116@f.koeki-u.ac.jp
-------------------------