home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / sonderh1 / polynom.pas < prev    next >
Pascal/Delphi Source File  |  1979-12-31  |  2KB  |  58 lines

  1. (* ------------------------------------------------------------------------ *)
  2. (*                     Demonstration von MATRIX.INC                         *)
  3. (*                                Polynom                                   *)
  4. (* ------------------------------------------------------------------------ *)
  5.  
  6. PROGRAM Polynom;
  7.  
  8. CONST MaxIndex = 10;
  9.  
  10. {$I MATRIX.INC}
  11.  
  12. VAR P,U  : Matrix;
  13.     x,y,c: Vector;
  14.     z    : REAL;
  15.     n,i,j: INTEGER;
  16.  
  17. BEGIN
  18.   ClrScr;
  19.   Write('Anzahl der Punkte: '); ReadLn(n);
  20.   WriteLn;
  21.   IF n >= MaxIndex THEN
  22.   BEGIN
  23.     WriteLn('Fehler:  Konstante MaxIndex zu klein!');
  24.     Halt;
  25.   END;
  26.   FOR i := 1 TO n DO                             (* Einlesen der Wertepaare *)
  27.   BEGIN
  28.     Write(i, '. Wertepaar (x,y):    ');
  29.     ReadLn(x[i], y[i]);
  30.   END;
  31.   WITH P DO                             (* Besetzen der Koeffizientenmatrix *)
  32.   BEGIN
  33.     Rows := n;
  34.     Columns := n;
  35.     FOR i := 1 TO n DO
  36.     BEGIN
  37.       z := 1;
  38.       FOR j := n DOWNTO 1 DO
  39.       BEGIN
  40.         Coeff[i,j] := z;
  41.         z := x[i] * z;
  42.       END;
  43.     END;
  44.   END;
  45.   SolveSystem(P, y, c, U);
  46.   IF U.Columns <> 0 THEN
  47.   BEGIN
  48.     WriteLn; WriteLn('Eingabe der Wertepaare war nicht korrekt!');
  49.     Halt;
  50.   END;
  51.   WriteLn; WriteLn; Write('Koeffizienten des Polynoms  ');
  52.   FOR i := 1 TO n-2 DO
  53.     Write(Chr(Ord('a')-1+i), 'x**', n-i, ' + ');
  54.     WriteLn(Chr(Ord('a')-2+n), 'x + ', Chr(Ord('a')-1+n), ' :');
  55.   FOR i := 1 TO n DO
  56.     WriteLn(Chr(Ord('a')-1+i), ' = ', c[i]:10:4);
  57. END.
  58.