Помогите с вычислением синуса, косинуса, тангенса и котангенса

Мне их надо вычислить в Делфи через классы. Формула есть но там надо возвести в степень. Нашла как это делается но все равно ничего не помогает. Результат выдается не верный. Вот текст моей программы:
x:= StrToFloat(Edit1.Text); a:=exp(x*ln(exp)); b:=exp((-x)*ln(exp)); sh:=a-b/2; Edit2.Text:=FloatToStr(sh); ch:=a+b/2; Edit3.Text:=FloatToStr(ch); th:=sh/ch; Edit4.Text:=FloatToStr(th); cth:=ch/sh; Edit5.Text:=FloatToStr(cth);
Я уже не знаю что и делать, помогите! С уважением, Panika.
9 ответов

sin=((Exp^x)-(Exp^(-x)))/2.
Сами же написали. А потом пишете:
sh:=a-b/2;
А в скобки кто брать будет?


Спасибо. В скобки взяла, только результат все равно не правильный. А вот эту формулу sin=((Exp^x)-(Exp^(-x)))/2 заменила на exp(x*ln(2.71)) и exp((-x)*ln(2.71)). я уже все перепробовала а результата нет. Совсем не знаю что делать.


А вот эту формулу sin=((Exp^x)-(Exp^(-x)))/2 заменила на exp(x*ln(2.71)) и exp((-x)*ln(2.71)).
(exp(x)-exp(-x))/2 - а так не вариант было написать? имхо лучше разложением в ряд с точностью 0.001 расписывать


(exp(x)-exp(-x))/2 так тоже писала))) но результат почему то все равно не верный


проблема та вся в том что у меня exp в степени x. Тогда получается: Exp(x*ln(exp)). А на повтор exp он ругается. Если заменить на 2.71 то результат опять не верный.


Народ, скажите, а вообще формулы то вычисления у меня правильные??? sin: sh(x)=(Exp^x - Exp^-x)/2 cos: ch(x)=(Exp^x + Exp^-x)/2Если эти формулы проверять и сверять с результами полученнымив Делфи, то результат совпадает. А вот если сравнивать их с вычисление синуса(или косинуса) в калькуляторе, то результаты разные....


кидаем на форму edit и 4 label и button в
procedure TForm1.btn1Click(Sender: TObject);
var I:integer; x,sum,chis:real; sn,Cs,t,ct:Real; const eps=(1E-4);
begin x:=StrToFloat(edit1.text); sum:=1; chis:=-x*x/2; i:=3; repeat sum:= sum+chis; chis:=-chis*x*x/i/(i+1); I:=I+2; until abs(chis/sum)<=eps; cs:=Trunc(sum*100)/100; label1.Caption:='cos(x)='+floattostrF(cs,ffGeneral,4,2); sum:=x; chis:=-x*sqr(x)/2/3; i:=4; repeat sum:= sum+chis; chis:=-chis*x*x/i/(i+1); I:=I+2; until abs(chis/sum)<=eps; sn:=Trunc(sum*100)/100; label2.Caption:='sin(x)='+floattostrF(sn,ffGeneral,4,3); if cs <>0 then begin t:=sn/cs; t:=Trunc(t*100)/100; label3.Caption:='tg(x)='+floattostr(t); end else label3.Caption:='tg(x)-не определен'; if sn <>0 then begin ct:=cs/sn; ct:=Trunc(ct*100)/100; label4.Caption:='ctg(x)='+floattostr(t); end else label4.Caption:='ctg(x)-не определен';
end;
и все!


ОДИНОЧЕСТВО В СЕТИ!!!!!!! Спасибо тебе огромное!!!!!! Если бы не ты!!!!!!!! СПАСИБО!!!!!!