第 9 回 ことえらび レポート課題
氏名:夏井 知恵子
学籍番号:c1101655
語学クラス:英語クラス6
コース:政策マネジメント
1.筆記問題
A.ラジオボタンとは、選択肢の中から1つだけ回答を選ぶしくみである。
ラジオボタンの作り方は今回の講義で使用したものを例に挙げると、
自由席
となる。type="radio"とすることでラジオボタンを使うことを宣言する。
また、name="seat"の"seat"はCGIスクリプトに引き渡す時にnameの違う
複数のラジオボタンと区別するために使う名称である。
value="自由席"の"自由席"はCGI変数の値である。これが選択された場合、
プログラムに送られる。
参考文献
http://roy/~madoka/2011/r2/09/r2_09_04_theme_04_radio.html
基礎プログラミング II 第 9 回 (ことえらび) 「ラジオボタンの作り方」
西村まどか
B.チェックボックスはラジオボタンとは違い、複数の選択肢を選択することが可
能である。
チェックボックスの作り方は今回の講義で使用したものを例に挙げると、
つや姫
となる。type="checkbox"とすることでチェックボックスを使うことを宣言する。
name="rice"の"rice"とは、CGIスクリプトに引き渡す時にnameの違う
複数のチェックボックスと区別するために使う名称である。
value="米"の"米"はCGI変数の値である。これが選択された場合、プログラムに
送られる。
参考文献
http://roy/~madoka/2011/r2/09/r2_09_05_theme_05_checkbox.html
基礎プログラミング II 第 9 回 (ことえらび) 「チェックボックスの作り方」
西村まどか
C.基礎プログラミングキャラクタ(char_r2_c110165.png)
キャラクタ名 : 微笑む葡萄
キャラクタ解説:葡萄は実をたくさんつけるので、私もこのプログラミングの授
業を通して、多くのことを身に付けられればという願いを込めて作成した。
葡萄に顏を付けたのは単に可愛さを出したかったからである。
作った方法:円や四角形を描くツールを使って描いた。
工夫した点:複製を使ってぶどうの実に色を付けた点。
基礎プログラミングキャラクタ掲載ページ
http://roy/~c110165/advertise2/char_r2_c110165.png
2.プログラム問題
<>
i. 考えた設定
自分のwebサイトに訪れた人数を数えるプログラム。
ii. 作成したプログラム(counter.rb)
#!/usr/bin/env ruby
require 'cgi' # CGI の使用を宣言
cgi = CGI.new("html4") # CGI に変数を入れる。バージョン4
print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードの定義
number = 0 #初期値を0と設定
open("number.txt","r") do |read| # openで "number.txt" を開いて "r" でデータを読みこむ。
while data = read.gets # 読みこんだデータを "read" にしまう。
if /(\d+)/ =~ data # data 変数に number.txt からデータを持って来る。
number = $1.to_i
end # ifの終わり
end # whileの終わり
end # open do の終わり
print("\n") # 以下htmlで表示される部分
print("\n")
print("カウンター\n") # タイトル
print("\n")
# counter.css というスタイルシートを使う
print("\n") #
print("\n") # 以下、本文
print("
Welcome!!\n")
printf("
あなたは %d 人目 のお客様です
\n", number) #人数を表示
print("\n")
print("\n")
number += 1 # numberに1足す
open("number.txt","w") do |write| # counter.txtに書きこむ。
write.printf("%d\n",number) # 書きこむ内容は number に代入。
end # open do 終わり
---入力部分---(counter.html)
カウンタ #タイトル
#fork.cssというスタイルシートを使用する
#本文開始
ここに訪れた人の人数が分かります。
iii.もとにしたプログラム
基礎プログラミング II 第 9 回 「ことえらび」 レポート課題 のカウンタ例を
参考にプログラムを作成した。
iv.実行結果
Ktermで実行してみると
pan{c110165}% ./counter.rb [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
Content-type: text/html; charset=EUC-JP
カウンター
Welcome!!
あなたは 7 人目 のお客様です
もう一度実行してみると
pan{c110165}% ./counter.rb [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
Content-type: text/html; charset=EUC-JP
カウンター
Welcome!!
あなたは 8 人目 のお客様です
v.考察
ivの実行結果からも分かるように、実行の回数を重ねると人数が増えている。
よって、カウンタのプログラムは正しく作動している。
なぜ、カウンタが動くかというと、counter.rb で指定されたテキストファイル
が counter.rbの実行する度に1を足したものに書き換えられているからである。
この書き換えをWEB上の第三者でも可能にするために、テキストファイルの属性
をKterm上で chmod o+w number.txt と入力し -rw-r--rw-と変更した。
この操作により、カウンタが動くことが可能となる。
vi.参考文献
基礎プログラミング II 第 9 回 (ことえらび) 「ファイルを使ってみよう」
http://roy/~madoka/2011/r2/09/r2_09_08_theme_08_hashfile.html
西村まどか
vii. このプログラムの掲載ページ
http://roy/~c110165/advertise2/rubycgi/fork.html
<>
i. 考えた設定
web上で四則演算が出来るプログラム。
ii. 作成したプログラム(keisan.rb)
#!/usr/bin/env ruby
$KCODE = 'e' # 日本語を使う宣言
require 'cgi' # CGI の使用を求める
cgi = CGI.new("html4") # CGI という Hash をつくり、
# HTMLで入力されたものが cgi に代入される
# これらを HTML 文書で使う
print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードにする
s1 = cgi["suti1"] # s1 に CGI でもらった値 suti1 を代入する
s2 = cgi["suti2"] # s2 に CGI でもらった値 suti2 を代入する
k = cgi["keisan"] # k に CGI でもらった値 keisan を代入する
print("\n") #以下 html で表示される部分
print("\n")
print("計算結果\n")
print("\n")
# keisan という css を使う
print("\n")
print("\n")
if k == "tasu" # k が "tasu" だったら
a = s1.to_i + s2.to_i # s1 + s2 をする
elsif k == "hiku" # k が "hiku" だったら
a = s1.to_i - s2.to_i # s1 - 2 をする
elsif k == "kakeru" # k が "kakeru" だったら
a = s1.to_i * s2.to_i # s1 * s2 をする
else # k が 上記以外 だったら
a = s1.to_f / s2.to_f # s1 / s2 をする
end
print("
計算結果
\n") # 以下、計算結果の表示
if k == "tasu" # k が "tasu" だったら
printf("
%d + %d = %d
\n",s1 ,s2 ,a) #上で計算された結果を表示する
elsif k == "hiku" # k が "hiku" だったら
printf("
%d - %d = %d
\n",s1 ,s2 ,a) #上で計算された結果を表示する
elsif k == "kakeru" # k が "kakeru" だったら
printf("