Показать сообщение отдельно
Старый 01.12.2016, 10:49   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

И Вам тоже здравствовать! Очень рады Вас видеть.
Я не слишком Вас побеспокою, если предложу ознакомиться с решением Вашей задачи? Нет? Ну, не взыщите, если что, просто не откликнуться на столь изысканно-вежливую просьбу о помощи было выше моих сил.
Код:
Var
 AV,a,b,Res,eps:Real;

Function F(t:Real):Real;
begin
 F:=Sqr(Sin(t)/Cos(t))+Sqr(Cos(t)/Sin(t));
end;

Function Antiderivative(t:Real):Real;
begin
 Antiderivative:=-2*(Cos(t*2)/Sin(t*2)+t);
end;

Function Rectangle(Hr:Real):Real;
var
 Sum,x:Real;
begin
 Sum:=0;
 x:=a;
 repeat
  Sum:=Sum+Hr*F(x);
  x:=x+Hr;
 until x>b;
 Rectangle:=Sum;
end;

Procedure Calc_Int(var R:real);
var
 dif,Hc:Real;
begin
 Hc:=b-a;
 repeat
  dif:=Abs(Rectangle(Hc)-Rectangle(Hc/2));
  Hc:=Hc/2;
 until dif<eps;
 R:=Rectangle(Hc);
end;

Begin
 Write('a = ');
 Readln(a);
 Write('b = ');
 Readln(b);
 Write('eps = ');
 Readln(eps);
 Calc_Int(Res);
 Writeln('Result: ',Res:0:8);
 AV:=Antiderivative(b)-Antiderivative(a);
 WriteLn('Accurate value: ', AV:0:8);
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070