home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 03 / fasttrig / fastdemo.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-01-05  |  1.7 KB  |  45 lines

  1. (* ----------------------------------------------------------------------- *)
  2. (*                               FASTDEMO.PAS                              *)
  3. PROGRAM FastDemo;
  4.  
  5. CONST
  6.   anz = 500;                      (* Anzahl durchzufuehrender Berechnungen *)
  7.   (*$I FASTTRIG.CON *)
  8.  
  9. VAR
  10.   W, WBogen, x       : REAL;              (* Winkel im Grad- und Bogenmass *)
  11.   i, t1, t2, m, s, h : INTEGER;
  12.   (*$I FASTTRIG.VAR *)
  13.  
  14. (*$I FASTTRIG.PAS *)
  15. (* ----------------------------------------------------------------------- *)
  16. (*              zur Zeitmessung aktuelle System-Zeit holen                 *)
  17. (*             Hier eine Version in Turbo Pascal und MS-DOS                *)
  18. PROCEDURE Time (VAR Min, Sek, Hdt : INTEGER);
  19. VAR Reg : RECORD ax,bx,cx,dx,bp,di,si,ds,es,flags : INTEGER  END;
  20. BEGIN
  21.   Reg.ax := $100 * $2C;  MsDos (Reg);
  22.   WITH Reg DO BEGIN
  23.     Min := Lo(cx);    Sek := Hi(dx);    Hdt := Lo(dx);
  24.   END;
  25. END;
  26. (* ----------------------------------------------------------------------- *)
  27. BEGIN
  28.   FastTrigInit;
  29.   WriteLn;
  30.   Write('Winkel: ');     ReadLn (W);    WBogen := W * Pi / 180;
  31.   WriteLn('normaler Sinus:');
  32.   Time(m,s,h);   t1 := h + s * 100 + m * 6000;
  33.   FOR i := 1 TO anz DO x := Sin(WBogen);
  34.   Time(m,s,h);   t1 := t1 - h - s * 100 - m * 6000;
  35.   WriteLn('Fertig !!');  WriteLn;  WriteLn('FastSin:');
  36.   Time(m,s,h);   t2 := h + s * 100 + m * 6000;
  37.   FOR i := 1 TO anz DO x := FastSin(W);
  38.   Time(m,s,h);   t2 := t2 - h - s * 100 - m * 6000;
  39.   WriteLn('Fertig !!');
  40.   WriteLn('Geschwindigkeitsfaktor:', (t1/t2):5:1);
  41.   WriteLn('Fehler:',(Sin(WBogen)-FastSin(W)));
  42.   WriteLn;
  43.   WriteLn('norm.: ',Sin(WBogen)); WriteLn(' fast: ',FastSin(W));
  44. END.
  45.