| 1 | |
| 2 | PROGRAM INTEGRATION(INPUT,OUTPUT); |
| 3 | |
| 4 | VAR ANFANG,ENDE,FLAECHE: REAL; |
| 5 | |
| 6 | |
| 7 | (************* HIER INTEGRAND DEFINIEREN **************) |
| 8 | FUNCTION F(X: REAL): REAL; |
| 9 | BEGIN |
| 10 | F := SIN(X) |
| 11 | END; |
| 12 | (******************************************************) |
| 13 | |
| 14 | |
| 15 | |
| 16 | FUNCTION INTEGRAL(A,B: REAL): REAL; |
| 17 | |
| 18 | CONST EPSILON = 1E-8; |
| 19 | VAR N,J: INTEGER; |
| 20 | DELTA, MITTE, EINF, ZWEIF, VIERF: REAL; |
| 21 | SIMPSON, LETZTWERT: REAL; |
| 22 | |
| 23 | BEGIN |
| 24 | N := 1; DELTA := B-A; MITTE := A+DELTA/2; |
| 25 | EINF := F(A) + F(B); |
| 26 | ZWEIF := 0; |
| 27 | VIERF := F(MITTE); |
| 28 | SIMPSON := (EINF + 4*VIERF) * DELTA/6; |
| 29 | |
| 30 | REPEAT |
| 31 | LETZTWERT := SIMPSON; |
| 32 | N := 2*N; DELTA := DELTA/2; MITTE := A + DELTA/2; |
| 33 | ZWEIF := ZWEIF + VIERF; |
| 34 | VIERF := 0; |
| 35 | FOR J := 0 TO N-1 DO VIERF := VIERF + F(MITTE+J*DELTA); |
| 36 | SIMPSON := (EINF + 2*ZWEIF + 4*VIERF) * DELTA/6 |
| 37 | UNTIL ABS(SIMPSON-LETZTWERT)<ABS(SIMPSON)*EPSILON; |
| 38 | |
| 39 | INTEGRAL := SIMPSON |
| 40 | END (* INTEGRAL *); |
| 41 | |
| 42 | |
| 43 | BEGIN |
| 44 | WRITELN("B E S T I M M T E S I N T E G R A L"); |
| 45 | WRITELN; |
| 46 | WRITE("INTERVALLGRENZEN"); READ(ANFANG,ENDE); |
| 47 | FLAECHE := INTEGRAL(ANFANG,ENDE); |
| 48 | WRITELN; |
| 49 | WRITELN("WERT DES INTEGRALS: ", FLAECHE :18:10) |
| 50 | END. |