- 2次方程式ax^2+bx+c=0の実数解の個数を求めるsolutions(a,b,c). 判別式の値だけでなく、1次方程式になっている場合にも対応せよ。(solutions.rbというファイルを作ろう。)
b**2-4*a*c
end
def solutions(a,b,c)
if a==0 || det(a,b,c)==0 ←"||"は「または」
1
else
if det(a,b,c)>0
2
else
0
end
end
end
- 3つの異なる値x,y,zが与えられたときの中央値を求めるmedian(x,y,z). 中央値とは大きさ順に並べたときに真ん中に来る値のことである。(median.rbというファイルを作ろう)
1)補助関数を使う
def max(x,y) ←二つの大きいほうを出す
if x>y
x
else
y
end
end
def min(x,y) ←二つの小さいほうを出す
if x>y
y
else
x
end
end
def median(x,y,z) ←やっと本題
if max(x,y)<z
max(x,y)
else
if min(x,y)>z
min(x,y)
else
z
end
end
end
2)条件式をがんばる
def median(x,y)
if (y<x && x<z) || (z<x && x<y) ←"&&"は「かつ」
x
else
if (x<y && y<z) || (z<y && y<x)
y
else
z
end
end
end
- 大きさnで中身が全て0であるような1次元配列を作る関数make1d(n)を定義せよ。
a=Array.new(n) ←これで長さnの数列が出来る
for i in 0..(n-1)
a[i]=0
end
end
- h行w列の配列を作るmake2d(h,w)を定義せよ。ただし、作られる配列の中身は全て0にせよ。
def make2d(h,w)
a=Array.new(h)
for i in 0..h-1
a[i]=make1d(w)
end
end
- 次の計算をする関数b(r,x,y)を定義せよ。(x,y)だけでなくrも因数となっていることに注意せよ。
1 (d(x,y)>r)
ちょっと保留。つながりを考えると、d(x,y)の因数がxとyだけじゃダメな気がします。
まあ、[教]練習問題(第三章)の練習3.2見てください。
言ってることがわかると思います。
- show(sphere(20))を実行して表示される画像を確かめよ。
0 件のコメント:
コメントを投稿