第9回 基礎プログラミング II レポート課題
氏名:大島 藍
学籍番号:C1090331
語学クラス:中国語
コース(系):福祉コース
1、筆記問題
A、
ラジオボタンは とすることでラジオボタンを作
ることができる。ラジオボタンはクリックすることで選択することができる。
B、
チェックボタンはとすることでチェックボタン
を作ることが出来る。チェックボタンはクリックすることで選択することで出来
るが、ラジオボタンと違っていくつか選ぶことができる。
2、プログラム問題
リンク先
A、
http://roy/~c109033/advertise2/rubycgi/fork.html
CGIの題名とその意図
・CGIの題名
カウント
・その意図
数字を数えるから
・表示部分
#!/usr/koeki/bin/ruby
require 'cgi' # require で cgi が使えるようにする
cgi = CGI.new("html4") # cgi という名前で CGI をつくる バージョンは4
print("Content-type: text/html; charset=EUC-jp\n\n")
# 受け取ったデータを使う宣言をする
count = 0 # 最初は0人から始めるので0を代入
open("ninzu.txt" , "r") do |t|
# ninzu.txtを読みこみモードで開きrという名前に置き換える
while ninzu = t.gets # データがなくなるまで繰り返す
if /(\d+)/ =~ ninzu # もしデータが数字だったら
count = $1.to_i # countにデータを代入
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",count)
# いままで訪れた人の表示
print("
\n") # 改行
print("
\n") # 改行
print("
\n") # ホームページの見出しの終わり
print("\n") # body の終わり
print("\n") # html の終わり
count += 1 # countを1人訪れたので1足す
open("ninzu.txt" , "w") do |u|
# ninzu.txtを書きこみモードで開きkという名前で置き換える
u.printf("%d\n",count) # dat/count.txtに今のcountを書きこむ
end # openのend
・各部の説明
open で現在のデータの数字を conut にいれる。
print("来店数 : %d\n",count)で来店数を表示する。
最後の open で count に 1 を足した数を書く込む。
・実行結果
来店数
来店数
いままで訪れた人: 5
B、
・リンク先
http://roy/~c109033/advertise2/rubycgi/keisan.html
・CGIの題名とその意図
・CGIの題名
計算プログラム
・その意図
自動で表示してくれるプログラムを作った。
・入力部分
計算プログラム
計算プログラム
入力する文字は5文字以内で数字でお願いします!
・送信部分
#!/usr/koeki/bin/ruby
require 'cgi' # require で cgi が使えるようにする
cgi = CGI.new("html4") # cgi という名前で CGI をつくる バージョンは 4
print("Content-type: text/html; charset=EUC-jp\n\n")
# 受け取ったデータを使う宣言をする
kazu1 = cgi["kazu1"] # 受け取ったデータをkazu1に代入
kazu2 = cgi["kazu2"] # 受け取ったデータをkazu2に代入
kazu3 = cgi["kazu3"] # 受け取ったデータをkazu3に代入
print("\n") # html の始め
print("\n") # タイトル、文章へヘッダ情報を記述する
print("計算プログラム\n") # ホームページのタイトル
print("\n")
# ホームページの色やタイプなどをリンクしている
print("\n") # head の終わり
print("\n") # body の始め
if kazu3 == "tasu" # もしkazu3がtasuだったら
s = kazu1.to_i + kazu2.to_i # kazu1とkazu2を整数に直して足し、sに代入
elsif kazu3 == "hiku" # もしkazu3がhikuだったら
s = kazu1.to_i - kazu2.to_i # kazu1とkazu2を整数に直して引き、sに代入
elsif kazu3 == "kakeru" # もしkazu3がkakeruだったら
s = kazu1.to_i * kazu2.to_i # kazu1とkazu2を整数に直して掛けて、sに代入
else # もしそれ以外だったら
s = kazu1.to_f / kazu2.to_f # kazu1とkazu2を少数に直して割り、sに代入
end # ifのend
print("計算結果
\n") # ホームページの見出し
if kazu3 == "tasu" # もしkazu3がtasuだったら
printf("%d + %d = %d
\n",kazu1 ,kazu2 ,s)
elsif kazu3 == "hiku" # もしkazu3がhikuだったら
printf("%d - %d = %d
\n",kazu1 ,kazu2 ,s)
elsif kazu3 == "kakeru" # もしkazu3がkakeruだったら
printf("%d * %d = %d
\n",kazu1 ,kazu2 ,s)
else # もしそれ以外だったら
printf("%d / %d = %f
\n",kazu1 ,kazu2 ,s.to_f)
end # ifのend
print("\n") # body の終わり
print("\n") # html の終わり
・各部の説明
入力部分
数値:
数値:
+
-
×
/
ここで相手に数字とどんな計算をさせるか、入力さっせてもらっている。
送信部分
kazu1 = cgi["kazu1"]
kazu2 = cgi["kazu2"]
kazu3 = cgi["kazu3"]
相手から入力されたものをそれぞれ代入していく。
if文で場合わけをして、それぞれを計算し、結果を表示する。
・実行結果
kazu1=5
kazu2=3
kazu3="hiku"
Content-type: text/html; charset=EUC-jp
計算プログラム
計算結果
5 - 3 = 2
あっているか確かめ算をした。
roy{c109033}% bc -l [~]
5-3
2
確かめ算をすると 2 になった。プログラムで実行すると結果も 2 になったので
このプログラムは正しく機能しているといえる。
D、
・リンク先
http://roy/~c109033/advertise2/rubycgi/iro.html
・CGIの題名とその意図
・CGIの題名
いろ
・その意図
cssを変えてホームページを変えられないか考えた。
・入力部分
計算プログラム
計算プログラム
・送信結果の部分
#!/usr/koeki/bin/ruby
require 'cgi' # require で cgi が使えるようにする
cgi = CGI.new("html4") # cgi という名前で CGI をつくる バージョンは 4
print("Content-type: text/html; charset=EUC-jp\n\n")
# 受け取ったデータを使う宣言をする
iro = cgi["iro"] # 受け取ったデータをiroに代入
print("\n") # html の始め
print("\n") # タイトル、文章へヘッダ情報を記述する
print("いろ\n") # ホームページのタイトル
if iro == "pink" # もしiroがpinkだったら
print("\n")
# iro1のcssを使う
elsif iro == "ao" # もしiroがaoだったら
print("\n")
# iro2のcssを使う
elsif iro == "tya" # もしiroがtyaだったら
print("\n")
# iro3のcssを使う
else # それ以外だったら
print("\n")
# iro4のcssを使う
end # ifのend
print("\n") # headの終わり
print("\n") # bodyの始め
print("模様替えプログラム
\n") # ホームページの見出し
print("
\n") # 改行
print("色が変わるよ
\n") # ホームページの見出し
print("\n") # body の終わり
print("\n") # html の終わり
・実行結果
kazu1=5
kazu2=3
kazu3="tasu"
Content-type: text/html; charset=EUC-jp
計算プログラム
計算結果
5 + 3 = 8
実行結果が正しかったので正しく動いているといえる。
・tgif
char_r2_c109033.png
・感想
CGIがとても難しかった。今回はCのグラフで表示させるプログラムを途中まで
やったが、分からなかったので出来なかった。グラフ表示させるやつが難しい
と思った。今回の課題をやっていて ssh roy とやるのを忘れていてなかなか出
来なくて大変だった。でも、C以外だが、プログラムが出来てよかった。次回の
課題も頑張ってやりたいと思う。
・参考文献
西村まどか
http://roy/~madoka/2010/r2/09/09_04_theme_02_radio.html
基礎プログラミング II 第9回 CGIことえらび 「ラジオボタンの作り方」
西村 まどか
http://roy/~madoka/2010/r2/09/09_06_theme_04_textfield.html
基礎プログラミング II 第9回 CGIことえらび 「テキストフィールドの作り方」
西村まどか
http://roy/~madoka/2010/r2/09/09_08_theme_06_hashfile.html
基礎プログラミング II 第9回 CGIことえらび 「ファイルを使ってみよう」
・共同学習者
横山 広樹 / 佐竹 聡美