情報科学概論 Aクラス 宿題 2002.5.14

コマンドライン引数として24時間表示の時間における時と分を与えたとき,午前 午後の半日表示の時間に変更して以下のような表示を行うスクリプトをエディタ で作成し,ファイル名を s0240**-5-14.rb (自分の学生番号-日付.拡張 子) として保存した後, 電子メールの添付書類として提出すること.添付書類をつける方法は,メニュー バー 「添付」をクリックし,出てくくるダイアローグで自分の作成したファイル を指定するだけで良い.なお,変数を使用する際には,変数名は自分の 氏名にちなんだものとすること.

たとえば,以下のように入力すると,

$ ruby time.rb 15 5

下図のような表示を返すこと.

注意点としては,午前であれば,末尾が a.m. に変わる.また,分の値が9以下であれば0をその 前に補い,常に分を二桁で表示させる.なお,時間として25以上の数字を入れた り分に60以上の数字を入れることは意味がないが,ここでは特別エラーなどを返 さなくても良いこととする.ただし,入力はまともな数字を使うことを前提としよう. また,出力には printf 文を使用すること.


解答例


hour = ARGV[0].to_i
min = ARGV[1].to_i

if hour < 12
  str = "a.m."
else
  str = "p.m."
  hour -= 12
end

if min < 10
  zero = "0"
else
  zero =""
end

printf "It is %d:%s%d %s\n", hour, zero, min, str


情報科学概論 Bクラス 宿題 2002.5.14

コマンドライン引数としてxおよびy座標を与えたとき,それが, y = sin xよりもy座標を基準に上にあるか下にあるかを 判断し,上方にあれば above,ちょうど関数上にあれば on,下にあれば below と表示するスクリプトをエディタ で作成し,ファイル名を s0240**-5-14.rb (自分の学生番号-日付.拡張 子) として保存した後, 電子メールの添付書類として提出すること.添付書類をつける方法は,メニュー バーから「添付」をクリックし,出てくるダイアローグで自分の作成したファイル を指定するだけで良い.なお,変数を使用する際には,変数名は自分の 氏名にちなんだものとすること.

実行例としては,たとえば,

$ ruby sin.rb 0 0

のように実行すると,結果として on が返ってくるが,

$ ruby sin.rb 1 1

であれば above のようになるものを想定している.注意点としては, 基本的に数値を浮動小数として扱った方が良いことがある.


解答例


include Math

x = ARGV[0].to_f
y = ARGV[1].to_f

if y > sin(x)
  result = "above"
elsif y == sin(x)
  result = "on"
else
  result = "below"
end

puts result


Back