home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_100 / 164_01 / mathtest.pas < prev    next >
Pascal/Delphi Source File  |  1984-07-05  |  6KB  |  173 lines

  1. {$PAGESIZE:60   $TITLE:'TEST MATH EXT. PRECISION SUBROUTINES'}
  2. {$SUBTITLE:'HIGH SPEED VERSION - WITHOUT TEST DISPLAYS      '}
  3. {$DEBUG-                                                     }
  4. {$INCLUDE:'A:MATH.INT'}
  5.  
  6. PROGRAM MATHTEST (INPUT, OUTPUT);
  7. USES MATH;
  8.  
  9. VAR  A,B,C,D,E,F:                  XINT;
  10.      CA,CB,CC,CD,CE,CF:            XCHAR;
  11.      I:                            INTEGER;
  12.      OVERFLOW:                     BOOLEAN;
  13.      COMPARE_RESULT:               XCOMP_TYPE;
  14.      TIME_OF_DAY:                  STRING (8);
  15.  
  16. procedure time (var s: string);    extern;
  17.  
  18. BEGIN
  19.  
  20.   repeat
  21.  
  22.      writeln ('enter a....');
  23.      reset   (input);
  24.      readln  (input, ca);
  25.      IF   CA [1]  = '.'  THEN BREAK;
  26.      writeln ('enter b....');
  27.      reset   (input);
  28.      readln  (input, cb);
  29.  
  30.      time (TIME_OF_DAY);
  31.      WRITELN;
  32.      WRITELN ('EXTENDED PRECISION MATH  -  TEST - STARTED  ',
  33.               TIME_OF_DAY);
  34.      WRITELN;
  35.  
  36. {*************************************************************}
  37. {*******************                  ************************}
  38. {*******************      X_CTOX      ************************}
  39. {*******************                  ************************}
  40. {*************************************************************}
  41.  
  42.      time (TIME_OF_DAY);
  43.      WRITELN;
  44.      WRITELN ('      X_CTOX      TEST',
  45.               '    STARTED  ', TIME_OF_DAY);
  46.      WRITELN;
  47.  
  48.      X_CTOX (CA, A, OVERFLOW);
  49.      WRITELN
  50.            ('OVERFLOW FROM CONVERSION OF A = ', ORD(OVERFLOW));
  51.  
  52.      X_CTOX (CB, B, OVERFLOW);
  53.      WRITELN
  54.            ('OVERFLOW FROM CONVERSION OF B = ', ORD(OVERFLOW));
  55.  
  56. {*************************************************************}
  57. {*******************                  ************************}
  58. {*******************      X_ADD       ************************}
  59. {*******************                  ************************}
  60. {*************************************************************}
  61.  
  62.      time (TIME_OF_DAY);
  63.      WRITELN;
  64.      WRITELN ('      X_ADD       TEST',
  65.               '    STARTED  ', TIME_OF_DAY);
  66.  
  67.      X_ADD  (A, B, C, OVERFLOW);
  68.      X_XTOC (C, CC);
  69.  
  70.      WRITELN;
  71.      WRITELN ('  ', CA);
  72.      WRITELN ('+ ', CB);
  73.      WRITELN ('= ', CC);
  74.      WRITELN ('OVERFLOW = ', ORD(OVERFLOW));
  75.  
  76. {*************************************************************}
  77. {*******************                  ************************}
  78. {*******************      X_COMP      ************************}
  79. {*******************                  ************************}
  80. {*************************************************************}
  81.  
  82.      time (TIME_OF_DAY);
  83.      WRITELN;
  84.      WRITELN ('      X_COMP      TEST',
  85.               '    STARTED  ', TIME_OF_DAY);
  86.  
  87.      WRITELN;
  88.      COMPARE_RESULT := X_COMP (A,B);
  89.      CASE  COMPARE_RESULT  OF
  90.           X_A_LT_B:  WRITELN (CA, ' IS LESS THAN ',    CB);
  91.           X_A_EQ_B:  WRITELN (CA, ' IS EQUAL TO ',     CB);
  92.           X_A_GT_B:  WRITELN (CA, ' IS GREATER THAN ', CB);
  93.           OTHERWISE  WRITELN ('Otherwise is impossible');
  94.           END;  {CASE}
  95.  
  96. {*************************************************************}
  97. {*******************                  ************************}
  98. {*******************      X_DIV       ************************}
  99. {*******************                  ************************}
  100. {*************************************************************}
  101.  
  102.      time (TIME_OF_DAY);
  103.      WRITELN;
  104.      WRITELN ('      X_DIV       TEST',
  105.               '    STARTED  ', TIME_OF_DAY);
  106.  
  107.      X_DIV  (A,B,C,D,OVERFLOW);
  108.      X_XTOC (C, CC);
  109.      X_XTOC (D, CD);
  110.  
  111.      WRITELN;
  112.      WRITELN ('  ', CA);
  113.      WRITELN ('/ ', CB);
  114.      WRITELN ('= ', CC);
  115.      WRITELN ('REM      = ', CD);
  116.      WRITELN ('OVERFLOW = ', ORD(OVERFLOW));
  117.  
  118. {*************************************************************}
  119. {*******************                  ************************}
  120. {*******************      X_MULT      ************************}
  121. {*******************                  ************************}
  122. {*************************************************************}
  123.  
  124.      time (TIME_OF_DAY);
  125.      WRITELN;
  126.      WRITELN ('      X_MULT      TEST',
  127.               '    STARTED  ', TIME_OF_DAY);
  128.  
  129.      X_MULT (A,B,C,OVERFLOW);
  130.      X_XTOC (C, CC);
  131.  
  132.      WRITELN;
  133.      WRITELN ('  ', CA);
  134.      WRITELN ('* ', CB);
  135.      WRITELN ('= ', CC);
  136.      WRITELN ('OVERFLOW = ', ORD(OVERFLOW));
  137.  
  138. {*************************************************************}
  139. {*******************                  ************************}
  140. {*******************      X_SUB       ************************}
  141. {*******************                  ************************}
  142. {*************************************************************}
  143.  
  144.      time (TIME_OF_DAY);
  145.      WRITELN;
  146.      WRITELN ('      X_SUB       TEST',
  147.               '    STARTED  ', TIME_OF_DAY);
  148.  
  149.      X_SUB  (A, B, C, OVERFLOW);
  150.      X_XTOC (C, CC);
  151.  
  152.      WRITELN;
  153.      WRITELN ('  ', CA);
  154.      WRITELN ('- ', CB);
  155.      WRITELN ('= ', CC);
  156.      WRITELN ('OVERFLOW = ', ORD(OVERFLOW));
  157.  
  158. {*************************************************************}
  159. {*******************                  ************************}
  160. {*******************       TIME       ************************}
  161. {*******************                  ************************}
  162. {*************************************************************}
  163.  
  164.      time (TIME_OF_DAY);
  165.      WRITELN;
  166.      WRITELN ('EXTENDED PRECISION MATH  -  TEST  -  ENDED  ',
  167.               TIME_OF_DAY);
  168.      WRITELN;
  169.  
  170.     UNTIL 1 = 0;  {repeat end}
  171.  
  172. END.
  173.