program p183323;
const
a = 0;{нижний предел}
b = 1.5708;{верхний предел}
n = 10;{разбиение}
function f(x: real): real;
begin
f := x * sin(x);
end;
function IntegralPriam(a, b: real): real;
{метод прямоугольников}
var
h, k, s: real;
i: Integer;
begin
h := (b - a)/N;
s := 0;
k := a + h/2;
for i := 0 to N - 1 do
begin
s := s + f(k);
k := k + h;
end;
s := s*h;
IntegralRect := s;
end;
function IntegralTrap(a, b: real): real;
{метод трапеций}
var
h, k, s: real;
i: Integer;
begin
h := (b - a)/N;
s := (f(a) + f(b))/2;
k := a;
for i := 1 to N - 1 do
begin
k := k + h;
s := s + f(k);
end;
s := s*h;
IntegralTrap := s;
end;
function IntegralSimpson(a, b: real): real;
{метод симпсона}
var
h, k, s: real;
i: Integer;
begin
h := (b - a)/N;
s := 0;
k := a;
for i := 1 to N - 1 do
begin
k := k + h;
if i mod 2 = 0 then
s := s + 2*f(k)
else
s := s + 4*f(k);
end;
s := (s + f(a) + f(b))*h/3;
IntegralSimpson := s;
end;
begin
writeln('Metodom Piamougolnikov = ', IntegralPriam(a, b):0:5);
writeln('Metodom Trapecij = ', IntegralTrap(a, b):0:5);
writeln('Metodom Simpsona = ', IntegralSimpson(a, b):0:5);
readln
end.
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.