home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / ASM / 8087SMPL.ZIP / EXAMPL.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1987-01-11  |  2.9 KB  |  129 lines

  1. PROGRAM MATH (INPUT,OUTPUT);{$DEBUG-}
  2.     CONST
  3.         two='2.000000';
  4.  
  5.     TYPE
  6.         string=SUPER PACKED ARRAY [1..*] OF char;
  7.         realstr=lstring(20);
  8.     VAR
  9.            X,Y,Z        :REAL;
  10.                M,N        :INTEGER;
  11.         start,stop    :string(20);
  12.         index,count    :word;
  13.         success        :boolean;
  14.         one        :realstr;
  15. PROCEDURE time (VAR T : string);EXTERN;
  16. FUNCTION MAXRQQ(X,Y:REAL):REAL;EXTERN;
  17. FUNCTION RSRRQQ(X,Y:REAL):REAL;EXTERN;
  18. FUNCTION ANNRQQ(X:REAL):REAL;EXTERN;
  19.  
  20. FUNCTION REALC(numstr : realstr):real;
  21.  
  22. VAR
  23.     DUMMY    :BOOLEAN;
  24.     BEGIN
  25.         DUMMY :=DECODE(numstr,realc)        
  26.     END;
  27.  
  28.     BEGIN
  29.         REPEAT
  30.     X:=REALC('2.345');WRITE('X= ');WRITELN(X);
  31.  
  32.     one:= '1.0000';
  33.     success:= DECODE(ONE,X);WRITELN('DECODE',X);
  34.     writeln('success =',success);
  35.     WRITELN(TWO);    
  36.             WRITE ('ENTER NUMBER: ');READLN(X);
  37.             WRITE ('ENTER number of loops: ');READLN(index);
  38.             WRITE ('ENTER NUMBER: ');READLN(Y);
  39.  
  40.             time(start);
  41.             for count := 1 to index DO Z := X + Y;
  42.             time (stop);
  43.  
  44.             WRITE ('sum= ');WRITELN(Z);
  45.             WRITELN ('start= ',start,'end= ',stop);
  46.  
  47.             time(start);
  48.             for count := 1 to index DO Z := X - Y;
  49.             time (stop);
  50.  
  51.             WRITE ('DIFFERENCE= ');WRITELN(Z);
  52.             WRITELN ('start= ',start,'end= ',stop);
  53.  
  54.             time(start);
  55.             for count := 1 to index DO Z := X * Y;
  56.             time (stop);
  57.  
  58.             WRITE ('PRODUCT= ');WRITELN(Z);
  59.             WRITELN ('start= ',start,'end= ',stop);
  60.  
  61.             time(start);
  62.             for count := 1 to index DO Z := X / Y;
  63.             time (stop);
  64.  
  65.             WRITE ('QUOTIENT= ');WRITELN(Z);
  66.             WRITELN ('start= ',start,'end= ',stop);
  67.  
  68.             time(start);
  69.             for count := 1 to index DO Z := SQRT(X);
  70.             time (stop);
  71.  
  72.             WRITE ('sqrt= ');WRITELN(Z);
  73.             WRITELN ('start= ',start,'end= ',stop);
  74.  
  75.             time(start);
  76.             for count := 1 to index DO Z := SQR(X);
  77.             time (stop);
  78.  
  79.             WRITE ('SQUARE= ');WRITELN(Z);
  80.             WRITELN ('start= ',start,'end= ',stop);
  81.  
  82.             time(start);
  83.             for count := 1 to index DO Z := EXP(X);
  84.             time (stop);
  85.  
  86.             WRITE ('EXP= ');WRITELN(Z);
  87.             WRITELN ('start= ',start,'end= ',stop);
  88.  
  89.             time(start);
  90.             for count := 1 to index DO Z := LN(X);
  91.             time (stop);
  92.  
  93.             WRITE ('LN= ');WRITELN(Z);
  94.             WRITELN ('start= ',start,'end= ',stop);
  95.  
  96.  
  97.  
  98.             time(start);
  99.             for count := 1 to index DO Z := SIN(X);
  100.             time (stop);
  101.  
  102.             WRITE ('SIN= ');WRITELN(Z);
  103.             WRITELN ('start= ',start,'end= ',stop);
  104.  
  105.             time(start);
  106.             for count := 1 to index DO Z := RSRRQQ(X,Y);
  107.             time (stop);
  108.  
  109.             WRITE ('X**Y= ');WRITELN(Z);
  110.             WRITELN ('start= ',start,'end= ',stop);
  111.  
  112.             time(start);
  113.             for count := 1 to index DO Z := MAXRQQ(X,Y);
  114.             time (stop);
  115.  
  116.             WRITE ('MAX= ');WRITELN(Z);
  117.             WRITELN ('start= ',start,'end= ',stop);
  118.  
  119.             time(start);
  120.             for count := 1 to index DO Z := COS(X);
  121.             time (stop);
  122.  
  123.             WRITE ('COS = ');WRITELN(Z);
  124.             WRITELN ('start= ',start,'end= ',stop)
  125.  
  126.  
  127.         UNTIL   X=0;
  128.     END.
  129.