Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.24;
Скачать: CL | DM;

Вниз

Подскажите, помогите!   Найти похожие ветки 

 
Dominic   (2007-06-01 13:31) [0]

Скажите, плиз, кто знает, где ошибка в программе! Должен вычисляться синус при заданной точности вычисления...
procedure TForm1.Button1Click(Sender: TObject);
var
  y:real;// вычисляемое значение y
  t:real;// точность вычисления
  n:integer;// номер члена ряда
  f:integer;   // факториал
  h:integer;
  elem:real;// значение члена ряда
  x:real;
  z:real;
  i:integer;
  begin
    h:=0;
    f:=1;
    y:=0;
    n:=1;
    t:=StrToFloat(Edit2.Text);
    x:=StrToFloat(Edit1.Text);
    elem:=1;// чтобы начать цикл
  while elem>=t do
  begin
    h:=h+1;
    f:=f*(2*h+1);
    elem:=((-1)*n*x*(2*n+1))/f;
       if n MOD 2=0
         then y := y - elem
           else
             y:=y+elem;
             n:=n+1;
  end;
    z:=x+y;
    Memo1.Text:=FloatToStr(z);
end;


 
Desdechado ©   (2007-06-01 13:53) [1]

real заменить на extended
точность вроде же определяется разницей соседних членов ряда
где же проверка?


 
MBo ©   (2007-06-01 14:03) [2]


 x2 := -x * x;
 elem := x;
 h := 2;
 y := x;
 while Abs(elem) >= t do begin
   elem := elem * x2 / (h * (h + 1));
   y := y + elem;
   h := h + 2;
 end;


 
Dominic   (2007-06-01 14:08) [3]

неа, всё равно 0 получается:( в формуле синуса ошибка, скорее всего.. А проверка не нужна, вроде..


 
ANB ©   (2007-06-01 14:22) [4]


> Должен вычисляться синус при заданной точности вычисления.
> ..

RoundTo(sin(X), N)
:)


 
MBo ©   (2007-06-01 15:56) [5]

> Dominic  
Я привел код, который считает синус, аргумент  - x, значение синуса в переменной y


 
Dominic   (2007-06-04 19:20) [6]

Спасибо за ответ! Но теперь я не могу для косинуса написать такую же программу... Мне нужно, чтобы считался факториал с оператором FOR и всё это участвовало в вычислении cos"а.. Числовой ряд при разложении cos записывается как (-1)^n*(x^2n)/(2n)! Скажите, плиз, кто знает как сделать!


 
Правильный Вася   (2007-06-04 20:04) [7]

а по образцу


 
Dominic   (2007-06-04 20:26) [8]

C for не получается, не знаю как расписать...


 
Dominic   (2007-06-04 21:26) [9]

Хотя бы подскажите где ошибка, я не понимаю:(
procedure TForm1.Button1Click(Sender: TObject);
var
  y:real;// Вычисляемое значение y
  t:real;// Точность вычисления
  n:integer;//Номер члена ряда
  h:integer;
  elem:real;//Значение члена ряда
  x:real;
  z:real;
  g:real;
  x2:real;
  begin
    h:=0;
    y:=0;
    n:=1;
    t:=StrToFloat(Edit2.Text);
    x:=StrToFloat(Edit1.Text);
   for n:=1 to h do
   begin
      h := h * n;
   end;
   x2 := -x * x;
elem := x;
h := 2;
y := 0;
while Abs(elem) > t do begin
  elem := elem * x2 / h ;
  y := y + elem;
  h := h + 2;
      if n MOD 2=0
        then y := y - elem
          else
            y:=y+elem;
            n:=n+1;
  end;
    z:=x+y;
    Memo1.Text:=FloatToStr(z);
end;


 
MBo ©   (2007-06-05 06:52) [10]

найди 3 отличия


x2 := -x * x;
elem := 1;
h := 1;
y := 1;
while Abs(elem) >= t do begin
  elem := elem * x2 / (h * (h + 1));
  y := y + elem;
  h := h + 2;
end;



Страницы: 1 вся ветка

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
2-1180683587
kyn66
2007-06-01 11:39
2007.06.24
Тип "дата" в записи


2-1180972887
crypt
2007-06-04 20:01
2007.06.24
Как из Memo сохранять и добавлять информацию в файл или в БД?


11-1162961828
avs
2006-11-08 07:57
2007.06.24
Bmp.StretchDrawTransparent


15-1180074579
Jeer
2007-05-25 10:29
2007.06.24
Жара действует.


2-1180708978
FireMan_Alexey
2007-06-01 18:42
2007.06.24
Kak uznat MAC adres udalennogo COMPA?