Цитата:
Сообщение от Бродяга
Функцию я, если Вы не против, возьму для пользования Спасибо за помощь и разъяснение
|
Да не за что.
Могу еще подарить несколько своих библиотечных функций:
Тангенс:
Код:
function Tan(X:Extended):Extended;
BEGIN
Tan:=Sin(X)/Cos(X);
END;
Арксинус:
Код:
function ArcSin(X:Extended):Extended;
BEGIN
IF ROUND(X*10000000)=10000000 THEN ArcSin:=Pi/2 ELSE
IF ROUND(X*10000000)=-10000000 THEN ArcSin:=-Pi/2 ELSE
ArcSin:=ArcTan(X/SQRT(1-X*X));
END;
Арккосинус:
Код:
function ArcCos(X:Extended):Extended;
BEGIN
IF ROUND(X*10000000)=10000000 THEN ArcCos:=0 ELSE
IF ROUND(X*10000000)=-10000000 THEN ArcCos:=Pi ELSE
ArcCos:=(Pi/2)-ArcTan(X/SQRT(1-X*X));
END;
Гиперболические функции:
Код:
function Ch(X:Extended):Extended;
BEGIN
Ch:=(Exp(X)+Exp(-X))/2;
END;
function Sh(X:Extended):Extended;
BEGIN
Sh:=(Exp(X)-Exp(-X))/2;
END;
function Th(X:Extended):Extended;
BEGIN
Th:=(Exp(X)-Exp(-X))/(Exp(X)+Exp(-X));
END;
Обратные гиперболические функции:
Код:
function ArCh(X:Extended):Extended;
BEGIN
ArCh:=Ln(X+SQRT(X*X-1));
END;
function ArSh(X:Extended):Extended;
BEGIN
ArSh:=Ln(X+SQRT(X*X+1));
END;
function ArTh(X:Extended):Extended;
BEGIN
ArTh:=(1/2)*Ln((X+1)/(1-X));
END;
Факториал, двойной факториал:
Код:
function Nfact(n:LongInt):Extended;
VAR
i:LongInt;
fact:Extended;
BEGIN
IF n=0 THEN fact:=1 ELSE
BEGIN
fact:=1;
FOR i:=1 TO n DO
fact:=fact*i;
END;
Nfact:=fact;
END;
function NfactDBL(n:LongInt):Extended;
VAR
i:LongInt;
fact:Extended;
BEGIN
fact:=1;
i:=n;
REPEAT
fact:=fact*i;
DEC(i, 2);
UNTIL i<=1;
NfactDBL:=fact;
END;
Пользуйтесь на здоровье!