第 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") ●入力部分 計算機

計算機

数字1:

計算記号は?

÷

+

-

×

数字2:

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、添付