Вычисление предела функции

Программа на Паскале, позволяет вычислять предел функции. Предел вычисляется с заданной точностью. Если у вас другая функция, то надо поменять соотвествующую строку. Программу можно доработать: организовать разбор вводимого выражения и тогда получится практически готовая курсовая работа по программированию.
{Вычисление предела функции} 
program predel; 
uses crt; 
const d=1e-8; 
type 
func=function(x:real):real; 
var 
L1,L2,L3,L4, epsilon:real; i:integer; 
{$F+} 
{Четыре разных функции} 
function f1(x:real):real; 
begin 
f1:=sin(x)/x 
end; 
function f2(x:real):real; 
begin 
f2:=sin(5*x)/sin(6*x); 
end; 
function f3(x:real):real; 
begin 
f3:=(sqr(sin(x))-sqr(sqr(sin(x)/cos(x))))/(3*sqr(x)+5*sqr(sqr(x))); 
end; 
function f4(x:real):real; 
begin 
f4:=(sqrt(1-x)-3)/(-exp(ln(-x)/3)+2) 
end; 
function lim(f:func; a:real;eps:real):real; 
{Приближение предела функции f(x) при x стремящемся к a}
{Вычисления до тех пор, пока модуль разности
соседних значений не станет меньше eps} 
var pme:integer; y1, y2, x:real; 
begin 
pme:=-1;y2:=f(a+5); 
i:=1; 
repeat 
y1:=y2; 
pme:=pme*(-1);; 
x:=a+pme/i; 
y2:=f(x); 
i:=i+1; 
until (abs (y2-y1) lim:=y2; 
end; 
Begin 
clrscr; epsilon:=1; 
writeln('Пределы'); 
repeat 
L1:=lim(f1, 0, epsilon); 
L2:=lim(f2, pi, epsilon); 
L3:=lim(f3, 0, epsilon); 
L4:=lim(f4, -8, epsilon); 
writeln ('epsilon=', epsilon:10:8,' L1=',L1:8:5, 
' L2=', L2:8:5,' L3=', L3:8:5,' L4=', L4:8:5 ); 
epsilon := epsilon*0.1; 
until epsilon < d; 
readln; 
End.

Комментарии     


    0
    BlindSage: Господа, не могли бы вы мне помочь? эта программа рассчитана только на отыскание предела в конкретной точке, а как оформить программу нахождения предела на бесконечности? Заранее спасибо за помощь
    Ответ: В программе предельная величина: A. Можно поступить так: задаем стартовое значение A (достаточно большое), добиваемся точности по эпсилон, запоминаем предельное значение LL1, увеличиваем A, опять добиваемся точности, запоминаем предельное значение LL2 и так далее. Сравниваем разницу между LL1, LL2, LL3 и добиваемся чтобы разница опять же не превышала эпсилон.
Онлайн всего: 23
Гостей: 23
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте