Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Как пишутся arcsin, arccos на языке паскаля? (http://www.tehnari.ru/f43/t70578/)

Гульназ.М. 14.03.2012 22:02

Как пишутся arcsin, arccos на языке паскаля?
 
как пишутся на паскале arccos и arcsin? объясните пожалуйста.:tehnari_ru_837:

Léon 14.03.2012 23:28

arcsin(X) = arctan(X/sqrt(1-sqr(X)));
arccos(X) = arctan(sqrt(1-sqr(X))/X);
Не забудьте проверку X на 0.

Vladimir_S 15.03.2012 10:13

Цитата:

Сообщение от 11Angelav (Сообщение 700342)
arcsin(X) = arctan(X/sqrt(1-sqr(X)));
arccos(X) = arctan(sqrt(1-sqr(X))/X);
Не забудьте проверку X на 0.

И на 1 при таком задании арксинуса.
В моем модуле дополнительных функций, содержащем много чего всякого-разного, эти оформлены так:
Код:

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;

И кстати, Анжелика, арккосинус так, как у Вас, задавать нельзя, и вот почему. Область изменения этой функции лежит в диапазоне от 0 до π, в то время как область изменения арктангенса - от -π/2 до π/2. Попробуйте, например, подставить в Вашу формулу Х=-1. Тогда справа получится 0, а должно быть π.

Léon 15.03.2012 15:15

Vladimir_S и Гульназ.М., извините за ошибку.

Гульназ.М. 15.03.2012 18:44

11Angelav ничего страшного, все равно спасибо за внимание, и Vladimir_S спасибо большое.


Часовой пояс GMT +4, время: 09:38.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.