Commit | Line | Data |
---|---|---|
81e70d48 PH |
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. |