Program pr6;
uses crt;
var a, b, eps, I2: real; N: longint;
procedure proc(eps, a, b: real; var I2: real; var N: longint);
var I1: real;
function Intg(a, b: real; N: longint): real;
var x, s, dx: real; i: longint;
function f1(x: real): real;
begin
f1:= (1 + sqrt(x))/sqr(x)
end;
begin
s:= f1(a); x:= a;
dx:= (b-a)/N;
for i:=1 to N do begin
x:= x + dx;
s:= s + f1(x)
end;
Intg:= dx*s
end;
begin
I1:= 0;
N:= 100;
repeat
I2:= Intg(a, b, N);
if abs(I1-I2) < eps then break
else begin
I1:= I2; N:= N + 100
end
until false
end;
begin clrscr;
write('Введите a, b, eps -> ');
readln(a, b, eps);
proc(eps, a, b, I2, N);
writeln(' Результаты : ');
writeln('I2 = ', I2:12:6);
writeln('Кол-во итераций = ', N:10);
readkey
end.
Делаю что-то типа:
Unit lab6_15
interface
var a, b, eps, I2:real;
N:longint;
procedure proc(eps, a, b:real; var I2:real; var N:longint);
function Intg(a, b:real; N:longint):real;
function f1(x:real):real;
implementation
procedure proc;
var I1:real;
function Intg ;
var x, s, dx: real; i:longint;
function f1;
begin
f1:=x*exp(x)*sin(x);
end;
end.
а он 12 ошибку выводит((( понять ничё не могу.