第9回 基礎プログラミング II レポート課題
氏名:佐竹聡美
学籍番号:c1090816
語学クラス:英語1
コース:社会福祉
1、筆記問題
A.ラジオボタンの仕組み
ラジオボタンとは、1つだけ選ぶ方法である。
授業で使ったプログラムを元に説明する。
すーぱー
・typt="radio" は、ラジオボタンを表す。
・name="ラジオボタンの名前" は、 使うラジオボタンを区別するため。"seat"
の部分は属性を表す。
・value="CGI変数の値" は、ユーザーが選ぶとこの値がプログラムに送られる。
"siper"は属性を表す。
・すーぱー は、文字ラベルである。
B.チェックボックスの仕組み
チェックボックスとは、いくつか選べる方法である。
プログラムを元に説明する。
巨人
・typt="checkbox" は、チェックボックスを表す。
・name="の名前" は、 使うチェックボックスを区別するため。"beseball"の部
分は属性を表す。
・value="CGI変数の値" は、ユーザーが選ぶとこの値がプログラムに送られる。
"野球"は属性を表す。
・ "super"は属性を表す。
・"巨人" は、文字ラベルを表す。
2、プログラム問題
A.カウンタ
a.リンクのアドレス
http://roy/~c109081/advertise2/rubycgi/count.rb
b.
題名:訪問者カウント
意図:訪問した人をカウントする。
c.入力結果と送信部分
#!/usr/koeki/bin/ruby
require'cgi'
cgi=CGI.new("html4")
print("Content-type: text/html; charset=EUC-jp\n\n")
# 受け取ったデータを使う宣言をする
kazoeru = 0 # 最初は0人から始めるので0を代入
open("kazoeru.txt" , "r") do |k|
# dat/kazoeru.txtを読みこみモードで開きrという名前に置き換える
while suji = k.gets # データがなくなるまで繰り返す
if /(\d+)/ =~ suji # もしデータが数字だったら
kazoeru = $1.to_i # kazoeruにデータを代入
end # ifのend
end # whileのend
end # openのend
print("\n") # html始め
print("\n") # タイトル、文章へヘッダ情報を記述する
print("訪問した人数\n") # ホームページのタイトル
print("\n")
# ホームページの色やタイプなどをリンク
print("\n") # head の終わり
print("\n") # body の始め
print("訪問した人数
\n") # ホームページの見出し
print("\n") # ホームページの見出しの始まり
print("
\n") # 改行
printf("いままでに訪問した人: %d\n",kazoeru)
# いままでに訪問した人の表示
print("
\n") # 改行
print("
\n") # 改行
print("
\n") # ホームページの見出しの終わり
print("\n") # body の終わり
print("\n") # html の終わり
kazoeru += 1 # kazoeruを1人訪れたので1足す
open("kazoeru.txt" , "w") do |e|
# dat/kazoeru.txtを書きこみモードで開きkという名前で置き換える
e.printf("%d\n",kazoeru) # dat/kazoeru.txtに今のcountを書きこむ
end # openのend
d.解説
print文でホームページをかいている。
訪問すると人数がカウントされ、訪問人数が増える。
e.実行結果
pan{c109081}% ./count.rb [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
Content-type: text/html; charset=EUC-JP
Content-type: text/html; charset=EUC-jp
訪問した人数
訪問した人数
いままでに訪問した人: 10
B.計算
a.リンクのアドレス
http://roy/~c109081/advertise2/rubycgi/keisan.html
b.
題名:計算プログラム
意図:数字を入力することで計算をする
c.入力結果と送信部分
計算プログラム
計算プログラム
入力する文字は7文字以内の数字でお願いします
・解説
print(")までが相手に入力してもらうところ。
#!/usr/koeki/bin/ruby
require 'cgi' # CGI の使用を宣言
cgi = CGI.new("html4") # CGI に変数うぃ入れる
print("Content-type: text/html; charset=EUC-jp\n\n")
# 日本語定義のデータ
suji1 = cgi["suji"]
suji2 = cgi["suji2"]
kigo = cgi["kigo"]
# 以下の部分がHTML文章として表示される
print("\n")
print("\n")
print("計算プログラム\n")
print("\n")
print("\n")
print("\n")
if kigo == "purasu" # purasuを選んだ場合
w = suji1.to_i + suji2.to_i
elsif kigo == "mainasu" # mainasu を選んだ場合
w = suji1.to_i - suji2.to_i
elsif kigo == "kakeru" # kakeru を選んだ場合
w = suji1.to_i * suji2.to_i
else kigo == "waru" # waru を選んだ場合
w = suji1.to_f / suji2.to_f
end
print("計算結果
\n")
if kigo == "purasu"
printf("%d + %d = %d
\n",suji1,suji2,w)
elsif kigo == "mainasu"
printf("%d - %d = %d
\n",suji1,suji2,w)
elsif kigo == "kakeru"
printf("%d × %d = %d
\n",suji1,suji2,w)
else kigo == "waru"
printf("%d ÷ %d = %f
\n",suji1,suji2,w.to_f)
end
print("\n")
print("\n")
d.解説
print文でホームページを書いている。
e.実行結果
pan{c109081}% ./keisan.rb [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
Content-type: text/html; charset=EUC-JP
Content-type: text/html; charset=EUC-jp
計算プログラム
計算結果
./keisan.rb:40:in `printf': invalid value for Integer: "" (ArgumentError)
from ./keisan.rb:40
・リンクのアドレス
http://roy/~c109081/advertise2/rubycgi/fork.html
F.画像
題名:野原のぶた
解説:野原にいるまるまる太ったぶたをイメージして描いた。
作った方法:円を活用した。
工夫した点:正面からのぶたを表現したため、体の部分は描いていないところ。
3、感想
今回の課題は難しく、問題何を問われているかが分からなかった。また、プログ
ラムをどう作成したいいかわからなかった。授業も終盤にきて仕上げのようになっ
てきている。分からないながらもプログラムが実行されたときは本当にプログラ
ミングがすごいと思う。
もう少しでグループワークに入るのでそれまでに自分のホームページをしっかり
完成させておきたいと思う。
参考文献
基礎プログラミング II 第9回 CGIことえらび
・「ラジオボタンの作り方」
http://roy.e.koeki-u.ac.jp/~madoka/2010/r2/09/09_04_theme_02_radio.html
・「チェックボックスの作り方」
http://roy.e.koeki-u.ac.jp/~madoka/2010/r2/09/09_05_theme_03_checkbox.html
・「テキストエリアの作り方」
http://roy.e.koeki-u.ac.jp/~madoka/2010/r2/09/09_07_theme_05_textarea.html
・「ファイルを使ってみよう」
http://roy.e.koeki-u.ac.jp/~madoka/2010/r2/09/09_08_theme_06_hashfile.html
基礎プログラミング I 第12回 自由課題コンペティション / 画像作成
・「描画ソフト」
http://roy.e.koeki-u.ac.jp/~madoka/2010/r1/12/12_02_theme_02_painttool.html
共同学習者
*酒井春香 *横山広樹 *大島藍