Помощь - Поиск - Пользователи - Календарь
Полная версия: Ряд и ещё раз ряд..
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
xlr8
помогите решить ряд...сумму ряда

program Ind_Ryad;
Uses Crt;
Var  x,y:real;

Function my_func(x:real):real;

Var i:integer;
    z,s,p,a,b,k,t:real;

begin
     i:=1;
     a:=1;
     b:=1;
     k:=-1;
     p:=1;
     s:=1;

            while abs(a/b)>0.01 do

begin


	a:=a*abs(k);

	b:=b*(2*i);
  s:=s+((a/b)*p*x);
	p:=-p;
	x:=x*x;
	k:=k+2;
	i:=i+1;

end;
my_func:=s;
writeln('s=',s);
end;
Begin
clrscr;

x:=-1;
      while x<=1 do

      begin
           y:=my_func(x);
           x:=x+0.1;
      end;

readkey;
End.
мисс_граффити
Цитата
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!

xlr8
люди..я знаю и извеняюсь за то что спрашиваю уже давно избитую тему..но всё таки..я вас очень прошу..я же не прошу с нуля всё это делать..пожалуйста, просто подскажите..
volvo
Подсказываю: во-первых, в приведенный тобой ряд функция раскладывается только при 0 <= X <= 1, не забывай это при вводе данных... А во-вторых, я бы делал вот так:

const
  eps = 0.000001;

var
  X, s, p: real;
  p_above: longint;

  next: real;
  n, sign: integer;

begin
  write('X [0 .. 1] = '); readln(X);

  s := 1; p := 1; sign := 1;
  p_above := 1;

  n := 1;
  repeat
    if n <= 2 then p_above := 1 else inc(p_above, 2);
    p := p * X * (p_above / (2 * n));
    s := s + sign * p;

    sign := - sign; inc(n);
  until p < eps;

  writeln('sqrt(1 + x) = ', s:10:6);
  writeln('test: ', sqrt(1 + x):10:6); { <--- Это для теста, можно убрать эту строку }
  readln;
end.
xlr8
спасибки..будем разбиратся..ВОТ только гадость..если вот с таким условием? я прикрепил правильное изображ. просто устный коммент. плз..
xlr8
 Function _func(x:real):real;

Var i:integer;
    sum,p,a,b:extended;

begin
     i:=1;
     a:=1;
     b:=1;
     p:=1;
     sum:=1;

            while abs(a/b*p)>0.00001 do

               begin
                     a:=-a*(2*i-3);
                     p:=p*x;
                     b:=b*2*i;
                     sum:=sum+a/b*p;

                     i:=i+1;
              end;
   _func:=sum;

end;


Всё..вышло..решение собственно вверху..всем спасибо..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.