|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"数学関数ArcCos,power,etc."
function ArcCos(x:double):double;{アークコサインをラジアンで返す}
begin {絶対値が1より大きな引き数を与えると,999を返す}
try
ArcCos := ArcTan (sqrt (1-sqr (x)) /x)
except
on EZeroDivide do
ArcCos:=3.141592653589793238/2;
else
ArcCos:=999;
end;
end;
function ArcSin(x:double):double; {アークサインをラジアンで返す}
begin {絶対値が1より大きな引き数を与えると,999を返す}
try
ArcSin := ArcTan (x/sqrt (1-sqr (x)))
except
on Ezerodivide do
ArcSin:=x*3.141592653589793238/2;
else
ArcSin:=999;
end;
end;
function sinh(x:double):double; {sinh.簡単にオーバーフローするので注意}
begin
sinh:=(exp(x)-exp(-x))/2;
end;
function cosh(x:double):double; {cosh.簡単にオーバーフローするので注意}
begin
cosh:=(exp(x)+exp(-x))/2;
end;
function power(x:double; y:double):double; {xのy乗}
begin
try
power:=exp(y*ln(x));
except
power:=0;
end;
end;
他に欲しい関数があれば,メールでご連絡下さい。可能な限り対処します。
--------------- SDI01000@niftyserve.or.jp BLIZZARD ----------------
Original document by BLIZZARD 氏 ID:(SDI01000)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|