Back
情報科学概論 Aクラス 宿題 2003.5.27 解答例
x が自分の学生番号の下二桁を10で割った小数から0.2ずつ2増えるまでのsin2
x の値をターミナルにグラフ化して表示することを行う.表示結果は以
下のようになるようにし,メールの添付書類として提出すること.
例えば,学生番号の下二桁が99だとすると,sin(9.9)からsin(11.9)まで引数
の値を0.2ずつ増やす.コマンドを次のように動作させると
$ ruby Ruby-taskA-5-27-s034099.rb
9.9 ********
10.1 ***************
10.3 ***********************
10.5 ******************************
10.7 ************************************
10.9 ***************************************
11.1 ***************************************
11.3 ************************************
11.5 ******************************
11.7 ***********************
11.9 ***************
|
のような結果を返すようにすること.注意点は以下のとおり
- xの値は縦に進む.通常のグラフとは角度が90度回転している.
- 行の左端にxの値を表示する
- グラフの原点を整えるためにはタブによるスペース調整を行う
- 関数の値は*による棒グラフ表示
- 棒グラフの高さは最大で*が40個 (すなわち,三角関数の最大値である1のと
きに40個)
解答例
include Math
x0 = 9.9
str ="*"
a0 = 40*(sin(x0)*sin(x0))
a1 = 40*(sin(x0+0.2)*sin(x0+0.2))
a2 = 40*(sin(x0+0.4)*sin(x0+0.4))
a3 = 40*(sin(x0+0.6)*sin(x0+0.6))
a4 = 40*(sin(x0+0.8)*sin(x0+0.8))
a5 = 40*(sin(x0+1)*sin(x0+1))
a6 = 40*(sin(x0+1.2)*sin(x0+1.2))
a7 = 40*(sin(x0+1.4)*sin(x0+1.4))
a8 = 40*(sin(x0+1.6)*sin(x0+1.6))
a9 = 40*(sin(x0+1.8)*sin(x0+1.8))
a10 = 40*(sin(x0+2)*sin(x0+2))
print x0, "\t", str * a0, "\n"
print x0+0.2, "\t", str * a1, "\n"
print x0+0.4, "\t", str * a2, "\n"
print x0+0.6, "\t", str * a3, "\n"
print x0+0.8, "\t", str * a4, "\n"
print x0+1, "\t", str * a5, "\n"
print x0+1.2, "\t", str * a6, "\n"
print x0+1.4, "\t", str * a7, "\n"
print x0+1.6, "\t", str * a8, "\n"
print x0+1.8, "\t", str * a9, "\n"
print x0+2, "\t", str * a10, "\n"
|
情報科学概論 Bクラス 宿題 2003.5.27 解答例
x が自分の学生番号の下二桁を10で割った小数から0.2ずつ2増えるまでのcos2
x の値をターミナルにグラフ化して表示することを行う.表示結果は以
下のようになるようにし,メールの添付書類として提出すること.
例えば,学生番号の下二桁が99だとすると,cos(9.9)からcos(11.9)まで引数
の値を0.2ずつ増やす.コマンドを次のように動作させると
$ ruby Ruby-taskB-5-27-s034099.rb
9.9 *******************************
10.1 ************************
10.3 ****************
10.5 *********
10.7 ***
10.9
11.1
11.3 ***
11.5 *********
11.7 ****************
11.9 ************************
|
のような結果を返すようにすること.注意点は以下のとおり
- xの値は縦に進む.通常のグラフとは角度が90度回転している.
- 行の左端にxの値を表示する
- グラフの原点を整えるためにはタブによるスペース調整を行う
- 関数の値は*による棒グラフ表示
- 棒グラフの高さは最大で*が40個 (すなわち,三角関数の最大値である1のと
きに40個)
解答例
include Math
x0 = 9.9
str ="*"
a0 = 40*(cos(x0)*cos(x0))
a1 = 40*(cos(x0+0.2)*cos(x0+0.2))
a2 = 40*(cos(x0+0.4)*cos(x0+0.4))
a3 = 40*(cos(x0+0.6)*cos(x0+0.6))
a4 = 40*(cos(x0+0.8)*cos(x0+0.8))
a5 = 40*(cos(x0+1)*cos(x0+1))
a6 = 40*(cos(x0+1.2)*cos(x0+1.2))
a7 = 40*(cos(x0+1.4)*cos(x0+1.4))
a8 = 40*(cos(x0+1.6)*cos(x0+1.6))
a9 = 40*(cos(x0+1.8)*cos(x0+1.8))
a10 = 40*(cos(x0+2)*cos(x0+2))
print x0, "\t", str * a0, "\n"
print x0+0.2, "\t", str * a1, "\n"
print x0+0.4, "\t", str * a2, "\n"
print x0+0.6, "\t", str * a3, "\n"
print x0+0.8, "\t", str * a4, "\n"
print x0+1, "\t", str * a5, "\n"
print x0+1.2, "\t", str * a6, "\n"
print x0+1.4, "\t", str * a7, "\n"
print x0+1.6, "\t", str * a8, "\n"
print x0+1.8, "\t", str * a9, "\n"
print x0+2, "\t", str * a10, "\n"
|