--- /dev/null
+PROGRAM NEWTON(INPUT,OUTPUT);
+
+ CONST NMAX=25;
+
+ VAR N,I,J: INTEGER;
+ X,Y,C: ARRAY[0..NMAX] OF REAL;
+ A: ARRAY[-1..NMAX] OF REAL;
+
+BEGIN
+ READ(N); N := N-1;
+ WRITELN;
+ WRITELN("I N T E R P O L A T I O N S P O L Y N O M (NEWTON)");
+ WRITELN(" C0 + C1*X + C2*X^2 + .... + CN*X^N");
+ WRITELN;
+
+(***** EINGABE DER STUETZSTELLEN *****)
+
+ WRITELN("GEGEBENE PUNKTE:");
+ FOR I := 0 TO N DO
+ BEGIN READ(X[I],Y[I]);
+ WRITELN("P",I:1,X[I]:8:2," ,",Y[I]:8:2)
+ END;
+
+(***** BERECHNUNG DER DIVIDIERTEN DIFFERENZEN *****)
+
+ FOR I := 1 TO N DO
+ FOR J := N DOWNTO I DO Y[J] := (Y[J-1]-Y[J])/(X[J-I]-X[J]);
+
+(***** KOMPOSITION DER KOEFFIZIENTEN *****)
+
+ A[-1] := 0;
+ FOR I := 0 TO N DO
+ BEGIN
+ A[I] := 1; C[I] := Y[I];
+ FOR J := I-1 DOWNTO 0 DO
+ BEGIN
+ A[J] := A[J-1] - A[J]*X[I-1];
+ C[J] := C[ J ] + A[J]*Y[ I ]
+ END
+ END;
+
+(***** AUSGABE DER KOEFFIZIENTEN *****)
+
+ WRITELN;
+ WRITELN("DIE KOEFFIZIENTEN SIND:");
+ FOR I := 0 TO N DO WRITELN("C",I:1," =",C[I]:15:8)
+
+END.