Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Программирование _ Turbo Pascal

Автор: abc-x Воскресенье, 02 Июля 2006, 6:43

Люди может у кого есть исходник, адо вот такую задачку решить...
Точнее составить на Паскале программу высчитывающую...

Не используя стандартные функции, вычислить с точностью eps>0

y=ln(x+1)=x-(x^2)/2+(x^3)/3-(x^4)/4+... - (((-1)^n-1)*x^n)/n+...

Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше eps; все последующие слагаемые можно уже не учитывать. Вложенные циклы не использовать.

Спасибо.

Автор: H@ns Суббота, 15 Июля 2006, 23:34

на скорую руку, сам не проверял как работает.

Код


var
 f:real;//значение функции
 d:real;// очередное слагаемое - дробь
 ch:real;//числитель
 zn:real;//знаменатель
 x:real;
const
 e=0.00000001; //точность


begin
 writeln("vvedite x");
 readln(x);
 ch:=x;
 zn:=1;
 d:=ch/zn;
 f:=d;
 if d<0  
  then d:=d+(-d)+(-d);// вместо фуннции abs при отрицательном значении дроби
 while d>e do
 begin
   ch:=ch*(-1)*x;// + - будут чередоваться
   zn:=zn+1;
   d:=ch/zn;
   f:=f+d;
   if d<0
     then d:=d+(-d)+(-d);
 end;
 writeln("результат ", f);
 readln;
end.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)