第 9 回 ことえらび レポート課題
氏名:佐藤 千香
学籍番号:C1101069
語学クラス:英語6
コース(系):地域共創コース
1、筆記問題
A、
ラジオボタンのしくみ
ラジオボタンとは複数の選択肢から 1 つだけ選んでもらうという方法である。
いちご
ばなな
りんご
という形で作成できる。
food はラジオボタンの名前
fruit は変数
いちご は選択肢となる。
B、
チェックボックスのしくみ
チェックボックスはラジオボタンと違い、複数の選択肢を選択できる。
ねこ
いぬ
とり
という形で作成できる。
animal はラジオボタンの名前
cat は変数
ねこ は選択肢となる。
C、題名:「トラオ」
解説: わが家のペットであるトラ猫を描いた。ほぼ丸と三角でできている。
顔だけではもの足りなかったので、手もつけてみた。色を重ねること
によって肉球を表現した。
掲載ホームページ:http://roy/~c110106/advertise2/rubycgi/fork.html
参考文献:ウェブページ
西村 まどか
基礎プログラミングI 第 12 回 「自由課題コンペティション / 画像作成」
http://roy.e.koeki-u.ac.jp/~madoka/2011/r1/12/
基礎プログラミングII 第 9 回 「ことえらび」
http://roy.e.koeki-u.ac.jp/~madoka/2011/r2/09/
2、プログラム問題
掲載ホームページ:http://roy/~c110106/advertise2/rubycgi/fork.html
A、
a、題名と意図
題名:「カウンター」
意図:ページを訪れた人数を把握するためのもの
b、プログラム
#!/usr/koeki/bin/ruby
require 'cgi' # cgi の使用を宣言
cgi = CGI.new("html4") # html文書とする
print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードの使用
number = 0 # number の値を 0 とする
open("counter.txt","r") do |read| # counter.txtを読みこむ
while data = read.gets # 変数 data にデータを入れる
if /(\d+)/ =~ data # if 文でデータが数字 1 桁の場合
number = $1.to_i # その数字を整数として取り入れる
end # if に対する end
end # while に対する end
end # open do に対する end
# 以下は WEB ページに出力される部分
print("\n")
print("
\n")
print("カウンター\n")
print("")
print("\n")
print("\n")
print("ようこそ\(^0^)/!!
\n")
printf("あなたは %d 番目のお客様です!!
\n", number)
print("\n")
print("\n")
number += 1 # number に 1 を足していく
open("counter.txt","w") do |write| # counter.txt に書きこむ。
write.printf("%d\n",number) # write に number を代入する
end # open do に対する end
c、実行結果
ようこそ(^0^)/!!
あなたは 27 番目のお客様です!!
ようこそ(^0^)/!!
あなたは 28 番目のお客様です!!
ようこそ(^0^)/!!
あなたは 29 番目のお客様です!!
d、考察
実行する度に数値が増えているのでこのプログラムは正しいといえる。
B、
掲載ページ:http://roy/~c110106/advertise2/rubycgi/keisan.html
a、題名と意図
題名:「計算プログラム」
意図:入力され数値の計算を行う
b、プログラム
●送信結果を表示する部分
#!/usr/koeki/bin/ruby
require 'cgi' # cgi の使用を宣言。
cgi = CGI.new("html4") # html 文書とする
print("Content-type: text/html; charset=EUC-jp\n\n") # 日本語コードを使用する
a = cgi["number1"] # a に number1 の値を代入する
b = cgi["number2"] # b に number2 の値を代入する
keisan=cgi["keisan"]
print("\n")
print("\n")
print("\t計算結果\n")
print("")
print("\n")
print("\n")
print("計算結果
")
printf("%d %s %d",a,keisan,b)
if keisan == "÷" # 計算記号が ÷ の場合
s = a.to_f / b.to_f # 数値1(小数)を数値2(小数)で割る
printf("= %10.1f",s) # 結果表示。10桁で、少数は第一位まで表示
elsif keisan == "−" # 計算記号が - の場合
s = a.to_i - b.to_i # 数値1から数値2を引く
printf("= %d",s) # 結果表示
elsif keisan == "+" # 計算記号が + の場合
s = a.to_i + b.to_i # 数値1と数値2を足す
printf("= %d",s) # 結果表示
else # それ以外の場合
s = a.to_i * b.to_i # 数値1に数値2をかける。
printf("= %d",s) # 結果表示
end # if に対する end
print("
\n")
print("\n")
print("\n")
●入力部分
計算機
計算機
c、実行結果
200 ÷ 12= 16.7
123 + 456= 579
123456 − 789= 122667
1234 × 5678= 7006652
d、考察
bc -l で確かめてみた。
pan{c110106}% bc -l [~]
200/12
16.66666666666666666666
123+456
579
123456-789
122667
1234*5678
7006652
答えは全て等しかったので、このプログラムは正しいといえる。
3、感想
まだまだCGIには慣れることができない。しかしCGIを使えるようになって可能
性が大いに広がったと思う。時間があればもっと複雑なものを作りたいと思っ
た。授業も折り返し地点を過ぎたので、最後まで頑張りたい。
4、参考文献:ウェブページ
西村 まどか
基礎プログラミングII
第 8 回 「ことはじめ」
http://roy.e.koeki-u.ac.jp/~madoka/2011/r2/08/
第 9 回 「ことえらび」
http://roy.e.koeki-u.ac.jp/~madoka/2011/r2/09/
5、添付