![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите, помогите! [D6, D7, XP]
Dominic © (2007-06-01 13:31:00)Скажите, плиз, кто знает, где ошибка в программе! Должен вычисляться синус при заданной точности вычисления...
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;
MBo (2007-06-05 06:52:00) [1]найди 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;
Dominic (2007-06-04 21:26:00) [2]Хотя бы подскажите где ошибка, я не понимаю:(
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;
Dominic (2007-06-04 20:26:00) [3]C for не получается, не знаю как расписать...
Правильный Вася (2007-06-04 20:04:00) [4]а по образцу
Dominic (2007-06-04 19:20:00) [5]Спасибо за ответ! Но теперь я не могу для косинуса написать такую же программу... Мне нужно, чтобы считался факториал с оператором FOR и всё это участвовало в вычислении cos'а.. Числовой ряд при разложении cos записывается как (-1)^n*(x^2n)/(2n)! Скажите, плиз, кто знает как сделать!
MBo (2007-06-01 15:56:00) [6]> Dominic
Я привел код, который считает синус, аргумент - x, значение синуса в переменной y
ANB (2007-06-01 14:22:00) [7]
> Должен вычисляться синус при заданной точности вычисления.
> ..
RoundTo(sin(X), N)
:)
Dominic (2007-06-01 14:08:00) [8]неа, всё равно 0 получается:( в формуле синуса ошибка, скорее всего.. А проверка не нужна, вроде..
MBo (2007-06-01 14:03:00) [9]
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;
Desdechado (2007-06-01 13:53:00) [10]real заменить на extended
точность вроде же определяется разницей соседних членов ряда
где же проверка?