W
wanty
Delphi: Задание: составить программу вычисления произведения, и закинуть получившееся число в файл, вот два первых члена(n-ый член представлен в самой программе): (1/2-cos|x|)(2/3-cos^2|x|)... (^2 я представил вам степень косинуса).Произведение бесконечное. Вот то что я надумал:
программа работает, но неправильно, например при умножении первых трёх членов друг на друга он выдаёт не правильно число, а при четырёх выдаёт отрицательное число, при том что оно должно быть положительное ! Подскажите что делать, не могу понять, может у меня не правильно составлен код последовательного умножения??? n я в программе заменил на i ! если по заданию то n-ый член выглядит так:
n/(n+1)-exp(n*ln(cos(abs(x))));
Код:
var
n,i:integer;
x,s:double;
f:textfile;
procedure t(var x,s:double;n,i:integer);
begin
s:=1;
for i:=1 to n do
x:=i/(i+1)-exp(i*ln(cos(abs(x))));
s:=s*x;
end;
begin
n:=strtoint(edit1.text);
x:=strtofloat(edit2.text);
assignfile(f,'data.txt');
rewrite(F);
t(x,s,n,i);
writeln(f,s);
closefile(F);
end;
программа работает, но неправильно, например при умножении первых трёх членов друг на друга он выдаёт не правильно число, а при четырёх выдаёт отрицательное число, при том что оно должно быть положительное ! Подскажите что делать, не могу понять, может у меня не правильно составлен код последовательного умножения??? n я в программе заменил на i ! если по заданию то n-ый член выглядит так:
n/(n+1)-exp(n*ln(cos(abs(x))));