第 9 回 ことえらび レポート課題 氏名:樋口貴士 学籍番号:C1101715 語学クラス:中国語3 コース(系):地域共創コース 1.筆記問題 A. ラジオボタンは選択肢の中から1つだけを選択できる。 例として、ライブのチケットの席を選ぶときに使える。 S席 A席 B席 type="radio" # ラジオボタンの設置。 name="ラジオボタンの名前" # 使うラジオボタンを区別するためにある。 value="CGI 変数の値" # ユーザが選択するとこの値がプログラムに送られる。 結果 html では以下のようになる。 ◯S席 ◎A席 ◯B席 A席が初めから◎になっているのは checked によって自動的に既定値に設定して いるから。 B. チェックボックスは選択肢の中から複数、選択できる。 例として、飲食店などのメニューを選ぶときに使える。 チーズインハンバーグ つやひめ ワカメスープ ドリンクバー type="checkbox" # チェックボックスの設置。 name="チェックボックスの名前" # 使うチェックボックスを区別するためにある。 value="CGI 変数の値" # ユーザが選択するとこの値がプログラムに送られる。 結果 html では以下のようになる。 □チーズインハンバーグ ■つやひめ □ワカメスープ □ドリンクバー つやひめが ■ になっているのは checked で既定値を設定しているため。 チェックボックスは複数選択できるので ■チーズインハンバーグ ■つやひめ □ワカメスープ ■ドリンクバー のようにできる。 ここがラジオボックスとの大きな違いである。 C.作成した Tgif のページ http://roy/~c110171/advertise2/ 画像の題名及び解説は 2番のプログラム問題 F.に記載した。 2.プログラム問題 A.B.D.の問題を作成した。 ◯プログラムを設置したページは http://roy/~c110171/advertise2/rubycgi/fork.html A. counter.rb 「カウンタ」のURL http://roy/~c110171/advertise2/rubycgi/counter.rb B. ◯CGI の題名 「サイトにカウント」 ◯作成意図 サイトに来てくれた人の数を知りたいと思い作成した。 C.入力部分と送信結果の表示する部分 #!/usr/bin/env ruby require 'cgi' # CGI を使う。 cgi = CGI.new("html4") # CGI を HTML文章に使う。 print("Content-type: text/html; charset=EUC-JP\n\n") #日本語コードの定義。 arv = cgi["arrive"] # Ruby に CGI でもらってきた値を代入。 # CGI での arrive は arv 。 t = Time.now # 現在の時間の意味。 p yy =t.year # 年 p mm = t.month # 月 p dd = t.day # 日付 p hr = t.hour # 時間 p mn= t.min # 分 count = 0 # 初期値は 0 とする。 open("counter.txt","r") do |read| # ファイルを開く 読み込み専用なので r。 while data = read.gets if /(\d+)/ =~ data # データが数字の場合 count = $1.to_i # 数字を正数として取り入れる。 end # if の終わり。 end # while の終わり。 end # open の終わり。 print("\n") print("
\n") print("\n") print("数値 1 と 数値 2 に 数字を入力して計算してね。
まで入力できるよ★
%d + %d = %d
\n",kazu1 ,kazu2 ,s) elsif kazu3 == "hiku" # 引き算の結果を表示する。 printf("%d - %d = %d
\n",kazu1 ,kazu2 ,s) elsif kazu3 == "kakeru" # 掛け算の結果を表示する。 printf("%d * %d = %d
\n",kazu1 ,kazu2 ,s) else kazu3 == "waru" # 割り算の結果を表示する。 printf("%d / %d = %f
\n",kazu1 ,kazu2 ,s.to_f) end print("\n") print("\n") d.各部の解説 keisan.html のmaxlength="12" は 半角で 12 文字まで入力と意味。 数値を入力したら action="./keisan.rb" で keisan.rb で結果を送信させる。 keisan.rb では 数値1 数値2 数値3(答え)を求めるために 4つの式 足し算・引 き算・掛け算・割り算の式をつくり keisan.html で入力された 数字の答えを 導き出す。 e.実行結果 pan{HIGUCHI Takashi}% ./keisan.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) kazu1=100000000000 kazu2=100000000000 kazu3="tasu" Content-type: text/html; charset=EUC-jp100000000000 + 100000000000 = 200000000000
◯考察 pan{HIGUCHI Takashi}% bc -l [~/public_html/advertise2/rubycgi] 100000000000+100000000000 200000000000 bc -l で確認しても計算の答えが正しく 12桁まで入力出来るのでこのプログラムは 正しいといえる。 D. a.[色変えのURL」 http://roy/~c110171/advertise2/rubycgi/color.html b. ◯CGI の題名 「色変えくん」 ◯作成意図 Web上でボタンを作成し、選んだボタンによって 色を変えれるのか気になり作成した。 C.入力部分と送信結果の表示する部分 color.html☆色が変わるよ☆
☆さあ! 4つの色に変身するんだ☆
◯作成したプログラム 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"] # Ruby に CGI でもらってきた値を代入。 print("\n") print("\n") print("何に変身したかな
\n") print("\n") print("\n") d.各部の解説 color.html でラジオボタンを作成し選んだ結果を color.rb に送る。選んだ結果によって色が変わるので 今回はラジオボタンが4つあるので color.css を別々に4つ作成した。 e.実行結果 pan{c110171}% ./color.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) Content-type: text/html; charset=EUC-jp何に変身したかな
◯考察 color.html 内で選んだ結果のとおりに color.rb で 正しく表示されているので このプログラムは正しいといえる。 ラジオボタンさえ増やせば 何通りものプログラムが作れると思った。 F. 作成基礎プログラミングのキャラクタした Tgif char_r2_c110171.png 題名 「癒しぃライオンちゃん」 解説 プログラミングで疲れた時にこのライオンちゃんを 見ると癒しに包まれる。 作った方法 線で終点まで囲み色をつけ、 円を使い、テキストで名前を入力した。 工夫した点 もうすぐクリスマスなので 背景をクリスマスの色にした。 G.感想 今回は今までで1番、レポートを作成する時間がかかり、 大変だったが出来た時の喜びが大きかった。 ラジオボタンなどを使い自分でホームページ上にリンクを つくり、選択したものによって結果が変わるので楽しかった。 これからはもっと高度なプログラムを作れるように頑張りたい。 参考文献 基礎プログラミングI 第 12 回 自由課題コンペティション / 画像作成 http://roy/~madoka/2011/r1/12/ 基礎プログラミングII 第 8 回 ことはじめ http://roy/~madoka/2011/r2/08/ 第 9 回 ことえらび http://roy/~madoka/2011/r2/09/ 著者は全て 西村 まどか