添付を忘れていたファイルがあるので再送します。
感想も書き足しました。
第9回 基礎プログラミング II レポート課題
氏名:吉田瑞恵
学籍番号:C108203
語学クラス:英語(?)
コース(系):社会
1.
A.ラジオボタンは、
zzz
で作成できる。
type="radio" でラジオボタンを作る宣言をする。
xxxはプログラムに使われる値で、使用者には見えない。
zzzは使用者が見ることができる名前である。
◯zzz のように表示される。
◎zzz と選択され、送信されると、yyyがプログラムに送られる。
ラジオボタンの場合、一つしか選択できない。
B.チェックボックスは、
ccc
で作成できる。
type="checkbox" でチェックボックスを作る宣言をする。
選択・送信されるとbbbがcgiに送られる。
ラジオボタンと違い、複数の選択肢を選択することができる。
2.A,B,Dを作成
A.「カウンター」
設置ぺージ:http://roy/~c108203/rubycgi/fork.html
意図:ボタンをクリックしてもらうことで、何人サイトにアクセスしたか知りた
いと思ったため。また、授業で扱われたカウンターの構造を理解したいので作成した。
入力部分(http://roy/~c108203/rubycgi/fork.htmlより)
カウンター
# cgiフォームを作る文終了。
# body終了
# html終了
送信結果 calc.rb
#!/usr/koeki/bin/ruby
require 'cgi' # cgiを使う宣言。
cgi = CGI.new("html4") # html4を使用。
print("Content-type: text/html; charset=EUC-jp\n\n")
num1 = cgi["number1"]
num2 = cgi["number2"]
keisan=cgi["keisan"] # calc.htmlから受け取る値。
print("\n") # html 開始
print("\n") # head 開始
print("\t計算結果\n") #上部に表示されるタイトル
print("")
# fork.css を使う。
print("\n") # head 終了
print("\n") # body 開始
print("計算結果
")
# タイトルのように表示。
printf("%d %s %d",num1,keisan,num2)
# 2番見出しで入力された数値、計算記号を表示
if keisan == "w1" # 計算記号が / の場合
s = num1.to_i / num2.to_i # 商を出す
a = num1.to_i % num2.to_i # あまりを出す
printf(" = %dあまり%d",s,a) # 商 と あまり を表示。
elsif keisan == "w2" # 計算記号が ÷ の場合
s = num1.to_f / num2.to_f # 数値1 を少数として取り込んだものを
# 数値2 を少数として取り込んだもので割る。
printf("= %10.1f",s) # 結果表示。10桁で、少数は第一位まで。
elsif keisan == "h" # 計算記号が - の場合
s = num1.to_i - num2.to_i # 数値1から数値2を引く
printf("= %d",s) # 結果表示
elsif keisan == "t" # 計算記号が + の場合
s = num1.to_i + num2.to_i # 数値1と数値2を足す
printf("= %d",s) # 結果表示
else # それ以外、計算記号が * の場合
s = num1.to_i * num2.to_i # 数値1に数値2をかける。
printf("= %d",s) # 結果表示
end # if文 終了
print("
\n") # 2番見出し終了
print("\n") # body 終了
print("\n") # html 終了
実行結果
roy{c108203}% ./calc.rb [~/public_html/rubycgi]
(offline mode: enter name=value pairs on standard input)
num1="56"
keisan="t"
num2="3542"
Content-type: text/html; charset=EUC-jp
計算結果
計算結果
56 + 3542
= 3598
考察
roy{c108203}% ./calc.rb [~/public_html/rubycgi]
(offline mode: enter name=value pairs on standard input)
num1="100"
keisan="w1"
num2="6"
Content-type: text/html; charset=EUC-jp
計算結果
計算結果
100 / 6
= 16あまり4
bc -lではあまりはでないので、手計算で確かめた
16
_____
6|100
6
-----
40
36
----
4
また、割った数 * 商 + あまり = 割られた数なのでこれをbc -lで計算した。
roy{c108203}% bc -l [~/public_html/rubycgi]
6*16+4
100
なので計算は正しい
roy{c108203}% ./calc.rb [~/public_html/rubycgi]
(offline mode: enter name=value pairs on standard input)
num1="100"
keisan="w2"
num2="3"
Content-type: text/html; charset=EUC-jp
計算結果
計算結果
100 ÷ 3
= 33.3
これをbc -lで確かめ算すると
roy{c108203}% bc -l [~/public_html/rubycgi]
100/3
33.33333333333333333333
小数点2位で四捨五入なので33.3
よって計算は正しくできているといえる。
はじめ、
roy{c108203}% ./calc.rb [~/public_html/rubycgi]
で実行されるか確かめるとき、
num1 = "100"
keisan = "w2"
num2 = "3"
と空白を入れてしまい計算が出来ず、悩んだ。
今後はこの様な単純ミスで詰まることはないようにしたい。
また、web上でも実行したところ
計算結果
13231 ÷ 5 = 2646.2
とできたので、このプログラムは正常に起動しているといえる。
D.cssきせかえプログラ厶「誕生石は何色?」
設置ページ:http://roy/~c108203/rubycgi/kisekae.html
意図:cssきせかえプログラムということで、単に好きな色を選んでもらうより、
自分の生まれた月を選び、誕生石の色を知ってもらう方が面白いのではないかと
考えたため作成。
着せ替えcss
# fork.cssを使う。