home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 07 / beilage / n_eck_30.inc < prev    next >
Encoding:
Text File  |  1989-05-09  |  1.5 KB  |  52 lines

  1. (* -------------------------------------------- *)
  2. (*               N-ECK-30.INC                   *)
  3. (*      (C) TOOLBOX & Karl Schlessmann          *)
  4. (* -------------------------------------------- *)
  5.  
  6. { n-Eck-Umfang }
  7.  
  8. FUNCTION n_eck_umfang(n: INTEGER;
  9.                       VAR punkte): REAL;
  10. CONST max      = 4095;
  11. TYPE  typ_wert = REAL;
  12. VAR   k        : INTEGER;
  13.       umfang   : typ_wert;
  14.       punkt    : ARRAY [1 .. max] OF
  15.                    RECORD
  16.                      x, y : typ_wert
  17.                    END ABSOLUTE punkte;
  18. BEGIN
  19.   umfang := 0;
  20.   IF (n < 2) OR (n > max) THEN n := 0;
  21.   FOR k := 1 TO n DO
  22.     WITH punkt [SUCC (k MOD n)] DO
  23.       umfang := umfang +
  24.                 SQRT (SQR (x - punkt [k].x) +
  25.                 SQR (y - punkt [k].y));
  26.   n_eck_umfang := umfang;
  27. END;
  28.  
  29. { n-Eck-Inhalt }
  30.  
  31. FUNCTION n_eck_inhalt(n: INTEGER;
  32.                       VAR punkte): REAL;
  33. CONST max      = 4095;
  34. TYPE  typ_wert = REAL;
  35. VAR   k        : INTEGER;
  36.       inhalt   : typ_wert;
  37.       punkt    : ARRAY [1 .. max] OF
  38.                    RECORD
  39.                      x, y : typ_wert
  40.                    END ABSOLUTE punkte;
  41. BEGIN
  42.   inhalt := 0;
  43.   IF (n < 2) OR (n > max) THEN n := 0;
  44.   FOR k := 1 TO n DO
  45.     WITH punkt [Succ(k MOD n)] DO
  46.       inhalt := inhalt +
  47.                 (x + punkt [k].x) *
  48.                 (y - punkt [k].y);
  49.   n_eck_inhalt := Abs(inhalt/2);
  50. END;
  51. (* -------------------------------------------- *)
  52. (*             Ende von N-ECK-30.INC            *)