FUNCTION ada(a,b,eps:real):real; VAR fa,fb,fm, is :real; v:integer; FUNCTION adapt(a,b,fa,fm,fb,is: real): real ; VAR h,m,i1,i2,fml,fmr: real; (*globale Funktion f : real *) BEGIN m := (a+b)/2 ; h := (b-a)/4 ; fml:=f(a+h); fmr:=f(b-h); i1 := h/1.5*(fa+4*fm+fb) ; i2 := h/3*(fa+4*(fml+fmr)+2*fm+fb) ; i1 := (16*i2-i1)/15; IF is + (i1 - i2) = is THEN (*TURBO PASCAL Fehler: is+i1 = is+i2 geht nicht*) BEGIN adapt := i1; writeln(tf,a:10:5,b-a:18,i1:18); END ELSE adapt:=adapt(a,m,fa,fml,fm,is) + adapt(m,b,fm,fmr,fb,is) ; END; BEGIN fa:=f(a); fm:=f((a+b)/2); fb:=f(b); is := (b-a)/6*(fa+4*fm+fb) ; v:=1; IF is<0 THEN v:=-1; is := v*(abs(is)+b-a)/2*eps/1e-11; writeln(tf,'a':5,'b-a':15,'i1':16); ada:= adapt(a,b,fa,fm,fb,is); END;