Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2009, 15:46   #1
Panika
Пользователь
 
Регистрация: 08.11.2009
Сообщений: 28
Восклицание помогите с вычислением синуса, косинуса, тангенса и котангенса

Мне их надо вычислить в Делфи через классы. Формула есть но там надо возвести в степень. Нашла как это делается но все равно ничего не помогает. Результат выдается не верный.
Вот текст моей программы:
Код:
  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.
Panika вне форума Ответить с цитированием
Старый 08.11.2009, 15:48   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Код:
sin=((Exp^x)-(Exp^(-x)))/2.
Сами же написали. А потом пишете:
Цитата:
sh:=a-b/2;
А в скобки кто брать будет?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 08.11.2009, 15:55   #3
Panika
Пользователь
 
Регистрация: 08.11.2009
Сообщений: 28
По умолчанию

Спасибо. В скобки взяла, только результат все равно не правильный.
А вот эту формулу sin=((Exp^x)-(Exp^(-x)))/2 заменила на exp(x*ln(2.71)) и exp((-x)*ln(2.71)).
я уже все перепробовала а результата нет. Совсем не знаю что делать.
Panika вне форума Ответить с цитированием
Старый 08.11.2009, 15:59   #4
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
А вот эту формулу sin=((Exp^x)-(Exp^(-x)))/2 заменила на exp(x*ln(2.71)) и exp((-x)*ln(2.71)).
(exp(x)-exp(-x))/2 - а так не вариант было написать?
имхо лучше разложением в ряд с точностью 0.001 расписывать
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 08.11.2009, 16:03   #5
Panika
Пользователь
 
Регистрация: 08.11.2009
Сообщений: 28
По умолчанию

(exp(x)-exp(-x))/2 так тоже писала)))
но результат почему то все равно не верный
Panika вне форума Ответить с цитированием
Старый 08.11.2009, 16:05   #6
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

реализация на пакале разложения в ряд для sinX и cosX
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 08.11.2009, 16:13   #7
Panika
Пользователь
 
Регистрация: 08.11.2009
Сообщений: 28
По умолчанию

проблема та вся в том что у меня exp в степени x. Тогда получается: Exp(x*ln(exp)). А на повтор exp он ругается. Если заменить на 2.71 то результат опять не верный.
Panika вне форума Ответить с цитированием
Старый 08.11.2009, 16:31   #8
Panika
Пользователь
 
Регистрация: 08.11.2009
Сообщений: 28
По умолчанию

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

Если эти формулы проверять и сверять с результами полученнымив Делфи, то результат совпадает. А вот если сравнивать их с вычисление синуса(или косинуса) в калькуляторе, то результаты разные....
Panika вне форума Ответить с цитированием
Старый 08.11.2009, 16:39   #9
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

кидаем на форму 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;
и все!
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 08.11.2009, 16:52   #10
Panika
Пользователь
 
Регистрация: 08.11.2009
Сообщений: 28
Радость

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите составить программу вычисления матричного синуса, пожалуйста! Lunatik Помощь студентам 6 31.03.2009 16:59
Проблема с вычислением количества дней в феврале функцией getTime(); Max0001 JavaScript, Ajax 1 05.12.2008 07:03
Реализация синуса angol Помощь студентам 5 07.11.2008 22:00