Условие:
Найти длину траектории движения тела между точками, A и C, если от точки A(Xa=1) до точки B(Xb=3) тело двигалось по кривой Y1=2*X^2+7, а от точки B до точки C(Xc=8) - по кривой Y2=25*(1-sin(0.*(x-3))).
Дополнение к условию(возможно оно не нужно к этой задаче оно для всех вариантов задания одно):
Интервалы вычислять приближенно с заданной точностью eps>0, для этого пользоваться правилом Рунге: если приближенное вычисление интеграла (In) вычисkятьпри n=n0, 2*n0, 4*n0, 8*n0,...(n0 - некоторое начальное число отрезков деления), тогда при |I2n-In|/3<eps за искомую величину интеграла можно взять I2n
Идея решения такова:
Нужно взять интеграл сначала от точки A до точки B, затем второй интеграл от точки B до точки C, затем их сложить, это и будет решением задачи. Вычисления подинтегральных выражений наверно логичнее вынести в отдельные функции f1 и f2, чтобы вызывать их из функции integral. Возможно идея неправильная.
PROGRAM PRP5;
var
e,x,l: real;
a, b, c:Integer;
{Функция, вычисляющая первое подинтегральное выражение}
FUNCTION f1(n:REAL):REAL;
BEGIN
f1:=2*SQR(n)+7;
END;
{Функция, вычисляющая второе подинтегральное выражение}
FUNCTION f2(m:REAL):REAL;
BEGIN
f2:=25*(1-SIN(0.2*(m-3)));
END;
{Функция, вычисляющая значение интеграла методом трапеций}
FUNCTION integral(d, f, r:INTEGER; z, eps:REAL):REAL;
BEGIN
{понятно что функция должна считать интегралы но как?}
END;
BEGIN
a:=1;
b:=3;
c:=8;
WRITELN('Введите переменную x');
READLN(x);
WRITELN('Введите заданную точность');
READLN(e);
l:=integral(a, b, x, e)+integral(b, c, x, e);
WRITELN('Дина траектории ', l:5:2);
END.