File: INTEGR.PS of Tape: Various/Decus/decus-3
(Source file text)
PROGRAM INTEGRATION(INPUT,OUTPUT); VAR ANFANG,ENDE,FLAECHE: REAL; (************* HIER INTEGRAND DEFINIEREN **************) FUNCTION F(X: REAL): REAL; BEGIN F := SIN(X) END; (******************************************************) FUNCTION INTEGRAL(A,B: REAL): REAL; CONST EPSILON = 1E-8; VAR N,J: INTEGER; DELTA, MITTE, EINF, ZWEIF, VIERF: REAL; SIMPSON, LETZTWERT: REAL; BEGIN N := 1; DELTA := B-A; MITTE := A+DELTA/2; EINF := F(A) + F(B); ZWEIF := 0; VIERF := F(MITTE); SIMPSON := (EINF + 4*VIERF) * DELTA/6; REPEAT LETZTWERT := SIMPSON; N := 2*N; DELTA := DELTA/2; MITTE := A + DELTA/2; ZWEIF := ZWEIF + VIERF; VIERF := 0; FOR J := 0 TO N-1 DO VIERF := VIERF + F(MITTE+J*DELTA); SIMPSON := (EINF + 2*ZWEIF + 4*VIERF) * DELTA/6 UNTIL ABS(SIMPSON-LETZTWERT)<ABS(SIMPSON)*EPSILON; INTEGRAL := SIMPSON END (* INTEGRAL *); BEGIN WRITELN("B E S T I M M T E S I N T E G R A L"); WRITELN; WRITE("INTERVALLGRENZEN"); READ(ANFANG,ENDE); FLAECHE := INTEGRAL(ANFANG,ENDE); WRITELN; WRITELN("WERT DES INTEGRALS: ", FLAECHE :18:10) END.