解決済
sqat(式)という使い方はできますか?
c.x.v.tが与えられた時に、x-vt/√1-v^2/c^2を計算して答えを書き出すプログラムなのですが。この場合、sqat()の()に数値でなく、式を入れることはできますか?
2007-11-07 22:21の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
Ads By Google
回答(1)
1.
2007-11-08 03:08:09

sqrt() のこと?
一般に数値を引数とする関数で、式を与えた場合、
関数に渡される前に式の価が計算されて(計算結果が数値になるなら)結果の数値が渡されます。
よって大丈夫だと思います。
一般に数値を引数とする関数で、式を与えた場合、
関数に渡される前に式の価が計算されて(計算結果が数値になるなら)結果の数値が渡されます。
よって大丈夫だと思います。
自信度 : 自信なし 回答レベル : アドバイス
ありがとうございます。 たしかに()内に文字が入っているとうまくいきませんでした。
Ads By Google
コメント(4)
#1. 1987
2007-11-08 12:58:41
この問題に沿うと、sqat(1-v^2/c^2);と書けますか?
#2. 1987
2007-11-08 12:58:59
この問題に沿うと、sqat(1-v^2/c^2);と書けますか?
#3. きゅー
2007-11-08 13:32:53
回答された方の指摘されてるとおり、sqatではなくsqrtが正しいと思います。
また、Cの場合”y^2”みたいな表現では二乗を表現できません。とりあえず"y*y"みたいな感じでお茶を濁してはどうでしょう?
# powという標準関数があり、これだとxのn乗を出力できますが、引数・戻り値ともにdouble型であることを留意する必要があります。
#4. BLUEPIXY
2007-11-09 07:31:51
#3で指摘されているように、Cではv^2を2乗の意味では書けません。(そういう指摘もしておくべきでした)
v*vのように記述しましょう。
あと、計算の順序(演算子の評価順)についても注意しましょう。
v^2/c^2 の意味で
v*v/c*c と書いたら間違いです。
v*v/c/c とかする必要があります。
また、桁数が大きく異なる数値の演算では、有効数字や計算の順序を考慮する必要がある場合があります。

