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

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

Форум «Всё о Паскале» _ Задачи _ вычисление F(x)=(1+x)^(5/2) разложением в ряд

Автор: Szug 8.01.2007 0:08

Уважаемые ПРОФИ!!! Очень прошу проверить правильность моего изваяния. Задача: составить программу вычисления F(x)=(1+x)^(5/2) разложением в ряд при |x|<1 c точностью e=0.0001. Вычисления оформить в виде подпрограммы-функции. Вот тело:

Код

Program KR;

Function F(var x:real):real;
var
Ut,Up,P,e:real;
i,n:integer;
begin
if abs(x)<1+0.001 then begin
i:=0; n:=1;
e:=0.0001;
Up:=1;
P:=1;
repeat  {начало цикла вычисления значений F}
Ut:=Up*(2.5-i)*x/n; {вычисление U(k+1)}
P:=P+Ut;
inc(i); inc(n);
Up:=Ut;
until abs(Ut)<=e+1e-8;    { проверка Е- выход из цикла}
F:=p;
end
else writeln('неверное X');
end;              {конец функции}

var x,Fx:real;
begin
writeln('Введите Х');
readln(x);
Fx:=F(x);
writeln('F = ',Fx);{вывод на экран}
readln;
end.

Укажите мне на имеющиеся ошибки, ПОЖАЛУЙСТА! Срочно надо сдать контрольную. СПАСИБО!!!

Извените, ошибочка вышла в условии, уже исправил

Автор: klem4 8.01.2007 0:44

Считает твоя функция неправильно ... Сделай функцию для проверки и сравнивай значение своего Fx с

function RealFunc(x: real): real;
begin
RealFunc := exp(5 * ln(1 + x)) / 2; // при x = 1, ((x +1)^5) / 2 = 32/2 = 16
end;

Автор: volvo 8.01.2007 1:16

{$TELEPATHY ON}

F(x)=(1+x)^5/2 это

F(x)=(1+x)^(5/2) ?

Автор: Szug 8.01.2007 12:59

Извените, ошибочка вышла. Правильное условие задания F(x)=(1+x)^(5/2) .