07.06.2008, 16:40
общий
это ответ
Здравствуйте, Пашков Дмитрий Владимирович!
В приложении мое решение этой задачи, выполненное точно по условию. Проверил при х от 0,1 до 1 в Excel. Все сходится и что удивительно сумма к нулю не стремится. Просто при малых х она мало изменяется и нужно брать очень высокую точность, до 8-9 знака, чтобы почуствовать разницу. При х=1, разница при различных е более заметна.
Приложение:
uses crt;var k:word; x,e,sum,y:double;function fakt(t:word):longint;{функция факториал}var i,n:integer;beginn:=1;for i:=1 to t don:=n*i;fakt:=n;end;function Step(a:real;b:word):real;{функция степень}var i:integer;n:real;beginn:=1.0;for i:=1 to b don:=n*a;Step:=n;end;begin {начало программы}clrscr;repeatwrite(‘Vvedite 0<x<=1 x=‘); {проверяем правильность ввода х}readln(x);until (x>0)and(x<=1);write(‘e=‘);readln(e);k:=0;y:=step(x,2*k+1)/(fakt(k)*(2*k+1));sum:=y;while y>=e do {пока очередной элемент<e} begin k:=k+1; y:=step(x,2*k+1)/(fakt(k)*(2*k+1)); if k mod 2=0 then sum:=sum+y {если номер положительный} else if k mod 2<>0 then sum:=sum-y; {если отрицательный} end;writeln(‘Summa=‘,sum:5:5);readlnend.