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

Back


宿題においても, 解答用紙 を使用する.この書式で解答を提出すること.

設問

二つの正の整数 r a を乱数として発生させる.r を円Oの半径,a を正方形Sの一辺の長さとするとき,どちらかの 図形がもう一方を内包するかどうかを判定するスクリプトを作成せよ.結果の表 示には printf を用いることとし,次のような3種類の表示形式とす る.

内包とは,下図のような状態を言う.

円Oの半径は1,正方形Sの辺の長さは4
正方形S は 円O を内包する.

または,

円Oの半径は10,正方形Sの辺の長さは6
円O は 正方形S を内包する.

または,

円Oの半径は2,正方形Sの辺の長さは3
お互いに内包しない.

なお,円周率πは Rubyにあらかじめ PI という定数で登録されている.また,平方根は sqrt(数値) のようにすれば求められる関数が用意されている.ただ し,これらを使うには,スクリプトの先頭で,

include Math

というおまじないを必ず入れておくこと.


解答例
include Math

r = rand(10) + 1
s = rand(10) + 1

str1 = "円O"
str2 = "正方形S"

printf "%sの半径は%d,%sの辺の長さは%d\n", str1, r, str2, s

sl = s / sqrt(2)

if r >= sl
  printf "%s は %s を内包する.\n", str1, str2
elsif 2 * r <= s
  printf "%s は %s を内包する.\n", str2, str1
else  
  printf "お互いに内包しない.\n"
end


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

Back


宿題においても, 解答用紙 を使用する.この書式で解答を提出すること.

設問

二つの正の整数 r a を乱数として発生させる.r を円Oの半径,a を正方形Sの一辺の長さとするとき,どちらかの 図形がもう一方を内包するかどうかを判定するスクリプトを作成せよ.結果の表 示には printf を用いることとし,次のような3種類の表示形式とす る.

内包とは,下図のような状態を言う.

円Oの半径は1,正方形Sの辺の長さは4
正方形S は 円O を内包する.

または,

円Oの半径は10,正方形Sの辺の長さは6
円O は 正方形S を内包する.

または,

円Oの半径は2,正方形Sの辺の長さは3
お互いに内包しない.

なお,円周率πは Rubyにあらかじめ PI という定数で登録されている.また,平方根は sqrt(数値) のようにすれば求められる関数が用意されている.ただ し,これらを使うには,スクリプトの先頭で,

include Math

というおまじないを必ず入れておくこと.


解答例
include Math

r = rand(10) + 1
s = rand(10) + 1

str1 = "円O"
str2 = "正方形S"

printf "%sの半径は%d,%sの辺の長さは%d\n", str1, r, str2, s

sl = s / sqrt(2)

if r >= sl
  printf "%s は %s を内包する.\n", str1, str2
elsif 2 * r <= s
  printf "%s は %s を内包する.\n", str2, str1
else  
  printf "お互いに内包しない.\n"
end


Back