uses crt;
{Функция, площадь которой нужно вычислить}
function f(x: real): real;
begin
f := x*x+3;
end;
var a,b,dx,x,y,y1,y2: real;
n: integer;
g:text;
begin
clrscr;
assign(g,'vector.txt');
rewrite(g);
{Вводим промежуток}
write ('vvedite a:'); readln (a);
write ('vvedite b:'); readln (b);
{Вводим количество частей}
write ('vvedite n:'); readln (n);
{Определяем шаг интегрирования}
dx := (b-a)/n;
y1 := 0; x := a + dx; {x = X1}
while x < b - dx do begin {x < Xn}
y1 := y1 + f(x);
x := x + 2*dx; {x = X1, X3, X5 ... Xn-1}
write(g,x:7:4);
end;
y2 := 0; x := a + 2*dx; {x = X2}
while x < b - 2*dx do begin {x < Xn-1}
y2 := y2 + f(x);
x := x + 2*dx; {x = X2, X4, X6 ... Xn-2}
write(g,x:7:4);
end;
y := ((b-a)/(3*n)) * (f(a)+f(b) + 4*y1 + 2*y2);
writeln (' ploshad po formyle Simpsona: ', y:10:3);
close(g);
readkey;
end.