第 9 回 ことえらび レポート課題
氏名:細田 洋平
学籍番号:c1101773
語学クラス:英語6
コース(系):政策マネジメントコース
1.A
ラジオボタンは、複数ある選択肢の中から一つを選択する仕組みである。
授業中に作成した seat.rb を例に解説を行う。
自由席
指定席
スーパーシート
input type="radio" で、ラジオボタンの設置を宣言。
この場合、
name = ラジオボタン名(今回で言う seat )
value = "変数名(自由席、指定席)" > 選択肢(自由席、指定席)
また、"変数名" と" > " の間に checked を入れることで、作成したときあらか
じめ選択コマンドをそこに置くことが出来る。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.B
チェックボタンは、複数の選択肢とチェックできるボックスがまとめられたもの
となっている。
ラジオボタンは選択肢の中から一つの項目を選択するのに対し、チェックボタン
は複数の項目を選択することが出来る。
豪華和食バイキング
土産物クーポン
はえぬきプレゼント
喫煙
name = チェックボックス名(dinner,gift)
value = "変数名(夕食、土産)" > 選択肢(豪華和食バイキング、喫煙)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.
ホームページ
http://roy.e.koeki-u.ac.jp/~c110177/advertise2/fork.html
基礎プログラミング
********** 基礎プログラミング **********
ホームページに戻る
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.A カウンタープログラム
第9回 レポート課題の カウンタ例 を参考に、ファイル名を変更した
#!/usr/koeki/bin/ruby
require 'cgi' # CGI の使用を宣言
cgi = CGI.new("html4") # HTMLで CGI を使用する
print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語表記
number = 0 # 最初の数値を 0 に設定する
open("mydb/count.dat","r") do |read|
while data = read.gets
if /(\d+)/ =~ data
number = $1.to_i # 整数で表示させる
end
end
end
print("\n")
print("\n")
print("\n")
print("いらっしゃいませ\n")
print("\n")
print("\n")
printf("いらっしゃいませ。あなたは %d番目 の入場者です
\n",number)
print("ごゆっくりどうぞ
\n")
print("\n")
print("\n")
number += 1 # そのつど数値を 1 足す
open("mydb/count.dat","w") do |write|
write.printf("%d\n",number)
end
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*実行結果*
pan{c110177}% ./counter.rb [~/public_html/advertise2/rubycgi]
(offline mode: enter name=value pairs on standard input)
Content-type: text/html; charset=EUC-JP
いらっしゃいませ
いらっしゃいませ。あなたは 471番目 の入場者です
ごゆっくりどうぞ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*考察*
データはきちんと読み込んだのでプログラムには問題ないと思われる。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*keisann.html*
計算
計算プログラム
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*keisann.rb*
#!/usr/koeki/bin/ruby
require'cgi' # CGI の使用を宣言
cgi = CGI.new("html4") # HTMLで CGI を使用する
print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語表記
kazu1 = cgi["kazu1"]
kazu2 = cgi["kazu2"]
kazu3 = cgi["kazu3"]
print("\n")
print("\n")
print("計算プログラム
\n")
print("\n")
print("\n")
print("\n")
if kazu3 == "tasu" # もし 足し算 なら
s = kazu1.to_i + kazu2.to_i # この計算を行う
elsif kazu3 == "hiku" # もし 引き算なら
s = kazu1.to_i - kazu2.to_i # この計算を行う
elsif kazu3 == "kakeru" # もし 掛け算 なら
s = kazu1.to_i * kazu2.to_i # この計算を行う
else kazu3 == "waru" # もし割り算なら
s = kazu1.to_f / kazu2.to_f # この計算を行う
end
print("計算結果
\n")
if kazu3 == "tasu" # もし 足し算 を選択したら
printf("%d + %d = %d
\n",kazu1,kazu2,s)
elsif kazu3 == "hiku" # もし 引き算 を選択したら
printf("%d - %d = %d
\n",kazu1,kazu2,s)
elsif kazu3 == "kakeru" # もし 掛け算 を選択したら
printf("%d * %d = %d
\n",kazu1,kazu2,s)
else kazu3 == "waru"
printf("%d / %d = %f
\n",kazu1,kazu2,s.to_f)
end
print("\n")
print("\n")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*実行結果*
pan{c110177}% ./keisann.rb [~/public_html/advertise2]
(offline mode: enter name=value pairs on standard input)
kazu1="5"
kazu2="5"
kazu3="tasu"
Content-type: text/html; charset=EUC-JP
計算プログラム
計算結果
5 + 5 = 10
pan{c110177}% ./keisann.rb [~/public_html/advertise2]
(offline mode: enter name=value pairs on standard input)
kazu1="10"
kazu2="5"
kazu3="hiku"
Content-type: text/html; charset=EUC-JP
計算プログラム
計算結果
10 - 5 = 5
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*失敗例*
pan{c110177}% ./keisann.rb [~/public_html/advertise2]
(offline mode: enter name=value pairs on standard input)
kazu1="2"
kazu2="5"
kazu="kakeru"
Content-type: text/html; charset=EUC-JP
計算プログラム
計算結果
2 / 5 = 0.400000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pan{c110177}% ./keisann.rb [~/public_html/advertise2]
(offline mode: enter name=value pairs on standard input)
kazu1="5"
kazu2="2"
kazu3="kakeru"
Content-type: text/html; charset=EUC-JP
計算プログラム
計算結果
5 * 2 = 10
pan{c110177}% ./keisann.rb [~/public_html/advertise2]
(offline mode: enter name=value pairs on standard input)
kazu1="10"
kazu2="2"
kazu3="waru"
Content-type: text/html; charset=EUC-JP
計算プログラム
計算結果
10 / 2 = 5.000000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*考察*
足し算 引き算 割り算 に関しては正常に起動したが、1回目の かけ算 で何らかのミスが
あったのではないか。
elsif kazu3 == "kakeru" # もし 掛け算 を選択したら
printf("%d * %d = %d
\n",kazu1,kazu2,s)
%d * %d となっているにも関らず、実際に実行してみたら答えは割られていた。
だが、2回目以降の計算は正しく計算されていたため、さほど問題にはならない
のではないだろうか。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*color.html*
Color 変更プログラム
*色* 変更プログラム
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.D
#!/usr/koeki/bin/ruby
require 'cgi' # CGI の使用 を宣言
cgi = CGI.new("html4") # HTML での CGI 使用を宣言
print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語表記
color = cgi["color"] # color に cgi color を代入
print("\n")
print("\n")
print(" *色* 変更プログラム\n")
if color == "aka" # もし選択したのが 赤 なら
print("\n")
elsif color == "orenzi" # もし選択したのが オレンジ なら
print("\n")
elsif color == "ao" # もし選択したのが 青 なら
print("\n")
elsif color == "midori" # もし選択したのが 緑 なら
print("\n")
elsif color == "glay" # もし選択したのが グレー なら
print("\n")
else color == "mizuiro" # もし選択したのが 水色 なら
print("\n")
end
print("\n")
print("\n")
print("*色* 変更プログラム
\n")
print("*色* が変化するよ!
\n")
print("\n")
print("\n")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*実行結果*
pan{c110177}% ./color.rb [~/public_html/advertise2]
(offline mode: enter name=value pairs on standard input)
color == "aka"
Content-type: text/html; charset=EUC-JP
*色* 変更プログラム
*色* 変更プログラム
*色* が変化するよ!
pan{c110177}% ./color.rb [~/public_html/advertise2]
(offline mode: enter name=value pairs on standard input)
color == "orenzi"
Content-type: text/html; charset=EUC-JP
*色* 変更プログラム
*色* 変更プログラム
*色* が変化するよ!
pan{c110177}% ./color.rb [~/public_html/advertise2]
(offline mode: enter name=value pairs on standard input)
color == "ao"
Content-type: text/html; charset=EUC-JP
*色* 変更プログラム
*色* 変更プログラム
*色* が変化するよ!
pan{c110177}% ./color.rb [~/public_html/advertise2]
(offline mode: enter name=value pairs on standard input)
color == "glay"
Content-type: text/html; charset=EUC-JP
*色* 変更プログラム
*色* 変更プログラム
*色* が変化するよ!
pan{c110177}% ./color.rb [~/public_html/advertise2]
(offline mode: enter name=value pairs on standard input)
color == "mizuiro"
Content-type: text/html; charset=EUC-JP
*色* 変更プログラム
*色* 変更プログラム
*色* が変化するよ!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*考察*
kterm で実行するとなると、どの色を選択しても
と言う風に color6.css が出てきてしまう。
だが今回作成したページからリンクで実行するページではちゃんと色分けされ
て表示されるので、一概に間違っているとは言えず、原因が分からないままとなっ
てしまった。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*キャラクタ*
char_r2_c110177.png.png
*題名*
「マスク・ド・ルビ緒」
*作成方法*
円と、直線を湾曲させる方法を使った。
*工夫*
先輩の作成した画像に、同系色を重ねて作っていたものがあったので、似た傾向
でモザイクを作成したくなったので今回チャレンジしてみた。
全体的な色合いに関してはそこまで凝ってはいないが、顔を覆うようにモザイクを作成す
るのに力を入れた。
一つ一つ色の組み合わせを考えてつけたので時間を要した。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*感想*
今回も長い時間を必要としたが、友だちと協力しながら行うことで上手くできた
と思う。
ただ、ウェブ上ではうまく表示されるのにktermではうまく実行されないなど、
多少気にかかる程度のミスもあったので、今後の課題で、一度でも全くミスの無
いプログラムを作成したいと思う。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*参考文献*
基礎プログラミング II 第 9 回 (ことえらび) 「ラジオボタンの作り方」 講義ノート目次
http://roy/~madoka/2011/r2/09/r2_09_04_theme_04_radio.html
基礎プログラミング II 第 9 回 (ことえらび) 「チェックボックスの作り方」 講義ノート目次
http://roy/~madoka/2011/r2/09/r2_09_05_theme_05_checkbox.html
作成者 : 西村まどか 先生
07/11の授業内容:自由製作課題&trr
http://roy/~naoya/ruby/12.html
作成者 : 神田直弥 先生