Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Итерационный цикл


Автор: Gigabyte 3.1.2007, 17:25
Дана функция (e^x-e^(-x)+2*x)/sqrt(|x-sin(x)|)
надо найти её предел с точностью до E если ч стремиться к 0
Использовать GOTO запрещено(желательно использовать REPEAT...UNTIL)

Автор: skyboy 3.1.2007, 19:30
Код

function f(const x: extended): extended;
begin
f:= (exp(x) - exp(- x) + 2 * x) / sqrt(abs(x - sin(x))); 
end;

var x0,e: extended;
     deltaLeftNew, deltaLeftOld, deltaRightNew, deltaRightOld: extended;
begin
readln(x0); {значение х, для которого будем искать предел}
readln(e); {погрешность}
deltaLeftOld:= 2;
deltaLeftNew:= 1; {начальное значение аргумента х при подходе к точке слева}
deltaRightOld:= 2;
deltaRightNew:= 1; {начальное значение аргумента х при подходе к точке справа}
while abs(f(x0 - deltaLeftNew) - f(x0 - deltaLeftOld))> e do
 begin
  deltaLeftOld:= deltaLeftNew;
  deltaLeftNew:= deltaLeftNew / 2;
 end;
while abs(f(x0 + deltaRightNew) - f(x0 + deltaRightOld))> e do
 begin
  deltaRightOld:= deltaRightNew;
  deltaRightNew:= deltaRightNew / 2;
 end;
writeln('предел в точке ',x0,' с точностью до ',e,':');
writeln('предел слева: ', f(x0 - deltaLeftNew));
writeln('предел справа: ', f(x0 + deltaRightNew));
readln;
end.      

Автор: Gigabyte 5.1.2007, 16:09
А как решить эту задачу при помощи REPEAT...UNTIL

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