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