home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------------------------ *)
- (* Demonstration von MATRIX.INC *)
- (* Polynom *)
- (* ------------------------------------------------------------------------ *)
-
- PROGRAM Polynom;
-
- CONST MaxIndex = 10;
-
- {$I MATRIX.INC}
-
- VAR P,U : Matrix;
- x,y,c: Vector;
- z : REAL;
- n,i,j: INTEGER;
-
- BEGIN
- ClrScr;
- Write('Anzahl der Punkte: '); ReadLn(n);
- WriteLn;
- IF n >= MaxIndex THEN
- BEGIN
- WriteLn('Fehler: Konstante MaxIndex zu klein!');
- Halt;
- END;
- FOR i := 1 TO n DO (* Einlesen der Wertepaare *)
- BEGIN
- Write(i, '. Wertepaar (x,y): ');
- ReadLn(x[i], y[i]);
- END;
- WITH P DO (* Besetzen der Koeffizientenmatrix *)
- BEGIN
- Rows := n;
- Columns := n;
- FOR i := 1 TO n DO
- BEGIN
- z := 1;
- FOR j := n DOWNTO 1 DO
- BEGIN
- Coeff[i,j] := z;
- z := x[i] * z;
- END;
- END;
- END;
- SolveSystem(P, y, c, U);
- IF U.Columns <> 0 THEN
- BEGIN
- WriteLn; WriteLn('Eingabe der Wertepaare war nicht korrekt!');
- Halt;
- END;
- WriteLn; WriteLn; Write('Koeffizienten des Polynoms ');
- FOR i := 1 TO n-2 DO
- Write(Chr(Ord('a')-1+i), 'x**', n-i, ' + ');
- WriteLn(Chr(Ord('a')-2+n), 'x + ', Chr(Ord('a')-1+n), ' :');
- FOR i := 1 TO n DO
- WriteLn(Chr(Ord('a')-1+i), ' = ', c[i]:10:4);
- END.